Co je jazyk Prolog?
Prolog je počítačový programovací jazyk založený na logice. Většina počítačových jazyků vychází z kroků potřebných k vyřešení problému. Na druhou stranu jazyk Prologu je „deklarativním“ jazykem, který označuje logické vztahy mezi entitami. Způsob řešení problému je ponechán na počítači. Název Prolog pochází z francouzského programu PROgrammation en LOGique, tedy PROgramming LOGic.
Následuje jednoduchý program Prolog:
předchůdce (F, C): - otec (F, C)
předek (P, Q): - otec (P, R), předek (R, Q)
otec (john, jim).
otec (jim, jerry).
otec (jerry, jason).
otec (jerry, jeff).
otec (jason, joshua).
Výše uvedený program označuje truismy. Jestliže F je otec C, pak F je předek C. Pokud P je otec nějaké osoby R, která je předkem Q, pak P je předchůdcem Q. Pak je uvedeno mnoho skutečných skutečností, jako je john je jejich otcem. Pokud je pak položena problémová otázka, zda je john předkem Jeffa, dostaneme odpověď „Ano“, jak je uvedeno níže:
? - předek (john, jeff).
Ano
Pokud jsou předci joshua zájmu, program zobrazí všechny předky následovně:
? - předek (A, joshua)
A = jason
A = jerry
A = jim
A = john
Všimněte si, že v obou výše uvedených případech program neřekl, jak provést hodnocení. Například neuvedl, zda začít u starší osoby a postupovat k mladší osobě nebo naopak. Rovněž si vyměňte součásti níže:
předek (P, Q): - předek (R, Q), otec (P, R)
Programu by to nijak nezměnilo, protože obě tyto části na pravé straně musí být pravdivé, aby byla levá strana pravdivá.
Jazyk Prologu se tedy zaměřuje na vztahy, nikoli na to, jak problém vyřešit. Během provádění programu Prolog vytváří řadu pravdivých příkazů a vytváří databázi znalostí. Ve výše uvedeném příkladu by znalostní databáze měla v žádném konkrétním pořadí předka (john, jim), předka (jim, jerry), předka (john, jerry), předka (jim, jason), předka (john, jason), a tak dále. Tato znalostní databáze může pokračovat v budování, jak se program spouští, a lze jej efektivně prohledávat a získat řešení. K provedení může být použito paralelní zpracování, současné spuštění více počítači.
Jazyk Prologu se používá v řadě oblastí. Začalo to v systémech zaměřených na přirozené jazyky, jako je angličtina; přirozený jazyk je jednou z oblastí umělé inteligence. Prolog jazyk je také používán v symbolické matematice, včetně algebry. Používá se při dokazování vět, v expertních systémech a v řídicích systémech, mezi mnoha dalšími aplikacemi.