Kaj je jezik Prolog?

Prolog je računalniški programski jezik, ki temelji na logiki. Večina računalniških jezikov temelji na korakih, potrebnih za rešitev težave. Po drugi strani je jezik Prolog »deklarativni« jezik, ki označuje logična razmerja med entitetami. Način reševanja težave je prepuščen računalniku. Ime Prolog izhaja iz francoskega PROgrammation en LOGique, torej PROgramming LOGic.

Sledi preprost program Prolog:

prednik (F, C) :- oče (F, C)
prednik (P, Q) :- oče (P, R), prednik (R, Q)
oče (John, Jim).
oče (jim, jerry).
oče (jerry, jason).
oče (jerry, jeff).
oče (Jason, Joshua).

Zgornji program nakazuje resnice. Če je F oče C, potem je F prednik C. Če je P oče neke osebe R, ki je prednik Q, potem je P prednik Q. Nato so podana več resničnih dejstev, kot npr. john je jimov oče. Če se potem postavi problemsko vprašanje, ali je john prednik jeffa, dobimo odgovor »da«, kot je prikazano spodaj:

?- prednik (john, jeff).
Da

Če so predniki Joshua zanimivi, program prikaže vse prednike na naslednji način:
?- prednik (A, joshua)
A = Jason
A = jerry
A = jim
A = Janez
Upoštevajte, da v obeh zgornjih primerih program ni povedal, kako narediti oceno. Na primer, ni navedlo, ali naj se začne pri starejši osebi in nadaljuje do mlajše osebe ali obratno. Prav tako zamenjajte dele, kot sledi:
prednik (P, Q) :- prednik (R, Q), oče (P, R)
Za program ne bi bilo nobene razlike, saj morata biti oba dela na desni strani resnična, da bi bila leva stran resnična.
Jezik Prolog se tako osredotoča na odnose in ne na to, kako rešiti problem. Med izvajanjem programa Prolog ustvari številne resnične izjave in ustvari bazo znanja. V zgornjem primeru bi zbirka znanja brez posebnega vrstnega reda imela prednika(john, jim), prednika(jim, jerry), prednika(john, jerry), prednika(jim, jason), prednika(john, jason), in tako naprej. Ta zbirka znanja se lahko še naprej nadgrajuje, ko se program izvaja, in jo je mogoče učinkovito iskati, da dobite rešitve. Izvajanje lahko uporablja vzporedno obdelavo, hkratno izvajanje z več računalniki.
Jezik Prolog se uporablja na številnih področjih. Začelo se je v sistemih, prilagojenih naravnim jezikom, kot je angleščina; naravni jezik je eno od področij umetne inteligence. Jezik Prolog se uporablja tudi v simbolni matematiki, vključno z algebro. Uporablja se pri dokazovanju izrekov, v ekspertnih sistemih in v kontrolnih sistemih med številnimi drugimi aplikacijami.