Vad är prologspråk?
Prolog är ett datorprogrammeringsspråk som är baserat på logik. De flesta datorspråk är baserade på de steg som behövs för att lösa ett problem. Prologspråket är å andra sidan ett "deklarativt" språk som indikerar de logiska förhållandena mellan enheter. Sättet att lösa problemet lämnas till datorn. Namnet Prolog kommer från den franska programmationen en logique, det vill säga programmeringslogik.
Följande är ett enkelt prologprogram:
förfäder (f, c):- far (f, c)
förfader (p, q):- far (p, r), förfader (r, q)
Fader (John, Jim).
Fader (Jim, Jerry).
Fader (Jerry, Jason).
Fader (Jerry, Jeff).
Fader (Jason, Joshua).
Ovanstående program indikerar truismer. Om F är far till C, är F en förfader till C. Om P är far till någon person R som är en förfader till Q, är P en förfader till Q. Ett antal riktiga fakta ges sedan, till exempel John som Jim. Om en problemfråga ställs om huruvida John ärEn förfader till Jeff, vi får svaret "ja" som nedan:
?- förfader (John, Jeff).
Ja
Om förfäderna till Joshua är av intresse, visar programmet alla förfäder på följande sätt:
?- Ancestor (A, Joshua)
A = Jason
A = Jerry
A = Jim
A = John
Observera att programmet i båda ovanstående fall inte berättade hur man gör utvärderingen. Till exempel indikerade det inte om man skulle börja på den äldre personen och arbeta sig till den yngre personen eller vice versa. Utbyte också delarna enligt nedan:
Ancestor (P, Q):- Ancestor (R, Q), Father (P, R)
Det skulle inte göra någon skillnad för programmet, eftersom båda dessa delar på höger sida måste vara sanna för att vänster sida ska vara sant.
Prologspråket fokuserar således på relationerna och inte på hur man löser problemet. Under programmet bygger Prolog upp ett antal riktiga tillståndments, skapa en kunskapsbas. I exemplet ovan skulle kunskapsbasen, i ingen särskild ordning, ha förfader (John, Jim), förfader (Jim, Jerry), förfader (John, Jerry), förfader (Jim, Jason), förfader (John, Jason) och så vidare. Denna kunskapsbas kan fortsätta bygga upp när programmet körs och kan sökas effektivt för att få lösningar. Exekveringen kan använda parallellbehandling, samtidig exekvering av flera datorer.
Prologspråket används i ett antal områden. Det började i system inriktade på naturliga språk som engelska; Naturligt språk är ett av områdena med konstgjord intelligens. Prologspråket används också i symbolisk matematik, inklusive algebra. Det används för att bevisa teorem, i expertsystem och i kontrollsystem, bland många andra applikationer.