Hvad er Prolog-sprog?
Prolog er et computerprogrammeringssprog, der er baseret på logik. De fleste computersprog er baseret på de trin, der er nødvendige for at løse et problem. Prolog-sproget er på den anden side et "deklarativt" sprog, der angiver de logiske forhold mellem enheder. Måden til at løse problemet overlades til computeren. Navnet Prolog kommer fra den franske PROgrammation en LOGique, det vil sige PROgramming LOGic.
Følgende er et simpelt 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).
Ovenstående program indikerer truismer. Hvis F er far til C, så er F en stamfar til C. Hvis P er far til en person R, der er en stamfar til Q, så er P en stamfar til Q. Der gives derefter et antal rigtige fakta, såsom john er far til jim. Hvis der så stilles et problemspørgsmål om, hvorvidt john er en stamfar til jeff, får vi svaret "Ja" som nedenfor:
? - stamfar (john, jeff).
Ja
Hvis forfædrene til Joshua er af interesse, viser programmet alle forfædre som følger:
? - stamfar (A, Joshua)
A = jason
A = jerry
A = jim
A = john
Bemærk, at i begge ovennævnte tilfælde fortalte programmet ikke, hvordan man foretager evalueringen. For eksempel angav det ikke, om man skulle starte hos den ældre person og arbejde sig hen til den yngre person eller omvendt. Udskift også delene som nedenfor:
stamfar (P, Q): - stamfar (R, Q), far (P, R)
Det ville ikke gøre nogen forskel for programmet, da begge disse dele på højre side skal være sandt for at venstre side skal være sandt.
Prolog-sproget fokuserer således på forholdene og ikke på, hvordan man løser problemet. Under programudførelse opbygger Prolog en række ægte udsagn og skaber en vidensbase. I eksemplet ovenfor ville vidensbasen i ingen særlig rækkefølge have forfader (john, jim), forfader (jim, jerry), forfader (john, jerry), forfader (jim, jason), forfader (john, jason), og så videre. Denne vidensbase kan fortsætte med at opbygge, når programmet udføres, og kan søges effektivt for at få løsninger. Udførelsen kan bruge parallel behandling, samtidig udførelse af flere computere.
Prolog-sproget bruges i en række områder. Det startede i systemer beregnet til naturlige sprog som engelsk; naturligt sprog er et af områdene inden for kunstig intelligens. Prolog-sproget bruges også i symbolsk matematik, inklusive algebra. Det bruges til at bevise sætninger, i ekspertsystemer og i kontrolsystemer blandt mange andre applikationer.