Hva er Prolog-språk?
Prolog er et programmeringsspråk for datamaskiner som er basert på logikk. De fleste dataspråk er basert på trinnene som trengs for å løse et problem. Prolog-språket er derimot et "deklarativt" språk som indikerer de logiske forholdene mellom enheter. Måten å løse problemet overlates til datamaskinen. Navnet Prolog kommer fra den franske PROgrammation en LOGique, det vil si PROgramming LOGic.
Følgende er et enkelt Prolog-program:
stamfar (F, C): - far (F, C)
stamfar (P, Q): - far (P, R), stamfar (R, Q)
far (john, jim).
far (jim, jerry).
far (jerry, jason).
far (jerry, jeff).
far (jason, Joshua).
Programmet ovenfor indikerer truismer. Hvis F er far til C, så er F en stamfar til C. Hvis P er far til en person R som er stamfar til Q, er P en stamfar til Q. Det gis deretter en rekke sanne fakta, som f.eks. john er far til jim. Hvis det da stilles et problemspørsmål om john er en stamfar til jeff, får vi svaret "Ja" som nedenfor:
? - stamfar (john, jeff).
Ja
Hvis forfedrene til Joshua er av interesse, viser programmet alle forfedrene som følger:
? - stamfar (A, Joshua)
A = jason
A = jerry
A = jim
A = john
Legg merke til at i begge de ovennevnte tilfellene fortalte programmet ikke hvordan evalueringen skulle gjøres. For eksempel indikerte det ikke om man skulle begynne hos den eldre personen og jobbe seg frem til den yngre personen eller omvendt. Bytt også delene som nedenfor:
stamfar (P, Q): - stamfar (R, Q), far (P, R)
Det vil ikke gjøre noen forskjell for programmet, da begge disse delene på høyre side trenger å være sanne for at venstresiden skal være sann.
Prolog-språket fokuserer således på relasjonene, og ikke på hvordan du kan løse problemet. Under programgjennomføring bygger Prolog opp en rekke sanne utsagn, og lager en kunnskapsbase. I eksemplet over ville kunnskapsbasen, i ingen spesiell rekkefølge, ha stamfar (john, jim), stamfar (jim, jerry), stamfar (john, jerry), stamfar (jim, jason), stamfar (john, jason), og så videre. Denne kunnskapsbasen kan fortsette å bygge seg opp etter hvert som programmet kjøres, og kan søkes effektivt for å få løsninger. Utførelsen kan bruke parallell behandling, samtidig utførelse av flere datamaskiner.
Prolog-språket brukes på en rekke områder. Det startet i systemer rettet mot naturlige språk som engelsk; naturlig språk er et av områdene for kunstig intelligens. Prolog-språket brukes også i symbolsk matematikk, inkludert algebra. Det brukes til å bevise teoremer, i ekspertsystemer og i kontrollsystemer, blant mange andre applikasjoner.