Fara í innihald

Prolog

Úr Wikipediu, frjálsa alfræðiritinu

Prolog (franska: PROgramation et LOGique) er forritunarmál sem á rætur að rekja til hóps í kringum franska tölvunarfræðinginn Alain Colmerauer við háskólans í Marseille-Aix og kom fram árið 1972. Þróun þess er nátengd rannsóknum í gervigreind og tungutækni, einkum málgreiningu, en það hefur líka verið notað meðal annars við þróun sérfræðikerfa, hugbúnaðar fyrir sjálfvirkar sannanir, leiki og símsvörunarkerfi.

Prolog tilheyrir flokki rökforritunarmála. Það eru einungis þrjár „byggingareiningar“ í Prolog: staðreyndir, reglur og fyrirspurnir. Safn af staðreyndum og reglum er kallað þekkingargrunnur og lýsir venslum í því viðfangsefni sem þekkingargrunnurinn snýst um. Forritun í Prolog snýst um það að skrifa slíka þekkingargrunna. Notkun Prolog-forrita felst í því að spyrja þekkingargrunninn um þær upplýsingar sem í honum eru.

Staðreyndir

[breyta | breyta frumkóða]

Staðreyndir eru notaðar til þess að setja fram fullyrðingar sem við göngum út frá að séu sannar, t.d.:

nemandi(Helga).
kennirNamskeid(Guðrún,TÖL203).
tekurNamskeid(Helga,TÖL203).

Hér erum við komin með lítinn þekkingargrunn sem segir okkur að Helga sé nemi, Guðrún kenni námskeiðið TÖL203 og Helga sé nemandi í námskeiðinu TÖL203. Nú er hægt að skrifa fyrirspurn og spyrja þekkingargrunninn, t.d.:

nemandi(Helga).

og Prolog-túlkurinn svarar: yes

Ef við sendum fyrirspurnina nemandi(Sigga). á þekkingargrunninn, myndi túlkurinn svara no, vegna þess að Sigga er ekki skilgreind sem nemandi í þekkingargrunninum okkar.

Reglur lýsa upplýsingum sem eru sannar að gefnum ákveðnum skilyrðum. Reglur eru skilgreindar á forminu haus :- stofn og hausinn er ekki sannur nema stofninn sé sannur, t.d.:

kennirNemanda(X,Y) :- kennirNamskeid(X,M), tekurNamskeid(Y,M).

Þessi regla tilgreinir að X sé kennari Y, en aðeins ef þær staðreyndir eru líka sannar að annars vegar X kenni námskeið M og hins vegar að Y taki námskeið M.

Ef við sendum nú fyrirspurn á þekkingargrunninn um það hvort Guðrún sé kennari Helgu:

kennirNemanda(Guðrún,Helga).

svarar Prolog-túlkurinn yes, þar sem stofninn er þegar skilgreindur í þekkingargrunninum sem sannar fullyrðingar, þ.e. að Guðrún kennir TÖL203 og Helga tekur námskeiðið TÖL203.