Vad är Prolog-språk?
Prolog är ett datorprogrammeringsspråk som är baserat på logik. De flesta datorspråk är baserade på stegen 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 PROgrammation en LOGique, det vill säga PROgramming LOGic.
Följande är ett enkelt Prolog-program:
förfader (F, C): - far (F, C)
förfader (P, Q): - far (P, R), förfader (R, Q)
far (john, jim).
far (jim, jerry).
far (jerry, jason).
far (jerry, jeff).
far (jason, joshua).
Ovanstående program indikerar truismer. Om F är far till C, så ä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 anges sedan, t.ex. john är far till jim. Om det då ställs en problemfråga om john är en förfader till jeff, får vi svaret "Ja" enligt 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:
? - förfader (A, Joshua)
A = jason
A = jerry
A = jim
A = john
Observera att programmet i båda ovanstående fall inte berättade för utvärderingen. Till exempel indikerade det inte om man skulle börja hos den äldre personen och arbeta sin väg till den yngre personen eller vice versa. Byt också ut delarna enligt nedan:
förfader (P, Q): - förfader (R, Q), far (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å förhållandena och inte på hur man löser problemet. Under programutförandet bygger Prolog upp ett antal riktiga uttalanden och skapar ett 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 byggas upp när programmet körs och kan sökas effektivt för att få lösningar. Exekveringen kan använda parallellbehandling, samtidigt exekvering av flera datorer.
Prolog-språket används på ett antal områden. Det började i system inriktade på naturliga språk som engelska; naturligt språk är ett av områdena för konstgjord intelligens. Prolog-språ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.