Skip to main content

Hvad er prologsprog?

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.Prologsproget er på den anden side et deklarativt sprog, der angiver de logiske forhold mellem enheder.Vejen til at løse problemet overlades til computeren.Navnet Prolog kommer fra den franske programmering og logique, det vil sige programmeringslogik.

Følgende er et simpelt Prolog-program:

Ancestor (F, C):- Far (F, C)
Ancestor (P, Q):- far (P, R), forfader (R, q)
far (John, Jim).
far (Jim, Jerry).
Far (Jerry, Jason).
Far (Jerry, Jeff).
Far (Jason, Joshua).

Ovenstående program viser truismer.Hvis F er far til C, er F en stamfar til C. Hvis P er far til en person R, der er en forfader til Q, er P en forfader til Q. Der gives en række sande fakta, såsom, såsomJohn er far til Jim.Hvis der derefter stilles et problemspørgsmål om, hvorvidt John er en forfader til Jeff, får vi svaret ja som nedenfor:

?- Ancestor (John, Jeff).
Ja

Hvis forfædrene til Joshua er af interesse, så er det afProgrammet viser alle forfædre som følger:

?- Ancestor (A, Joshua)
A ' Jason
A ' Jerry
A ' Jim
A ' John

Bemærk, at programmet i begge ovenstående tilfælde, fortalte programmet ikkehvordan man udfører evalueringen.For eksempel indikerede det ikke, om man skulle starte hos den ældre person og arbejde sin vej til den yngre person eller omvendt.Også udveksling af delene som nedenfor:

Ancestor (P, Q):- Ancestor (R, Q), far (P, R)

Det ville ikke gøre nogen forskel for programmet, da begge disse dele på højre side har brug forAt være sand for at venstre side skal være sandt.

Prologsproget fokuserer således på forholdene og ikke på, hvordan man løser problemet.Under programudførelse opbygger Prolog en række sande udsagn og skaber en KnowledgeBase.I eksemplet ovenfor ville vidensbasen i ingen særlig rækkeog så videre.Denne videnbase 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.

Prologsproget bruges på en række områder.Det startede i systemer, der er beregnet til naturlige sprog som engelsk;Naturligt sprog er et af områderne med kunstig intelligens.Prologsproget bruges også i symbolsk matematik, herunder algebra.Det bruges til at bevise sætninger, i ekspertsystemer og i kontrolsystemer blandt mange andre applikationer.