Kas yra Prolog kalba?

Prolog yra kompiuterio programavimo kalba, pagrįsta logika. Dauguma kompiuterių kalbų yra pagrįstos veiksmais, kurių reikia norint išspręsti problemą. Kita vertus, „Prolog“ kalba yra „deklaracinė“ kalba, nurodanti loginius ryšius tarp esybių. Problemos sprendimo būdas paliekamas kompiuteriui. Pavadinimas Prolog kilęs iš prancūzų kalbos PROgrammation en LOGique, tai yra, PROgramming LOGic.

Tai paprasta „Prolog“ programa:

protėvis (F, C): – tėvas (F, C)
protėvis (P, Q) :- tėvas (P, R), protėvis (R, Q)
tėvas (Jonas, Džimas).
tėvas (Džimas, Džeris).
tėvas (Džeris, Džeisonas).
tėvas (Džeris, Džefas).
tėvas (Jasonas, Džošua).

Aukščiau pateikta programa nurodo tikrus dalykus. Jei F yra C tėvas, tai F yra C protėvis. Jei P yra kurio nors asmens R tėvas, kuris yra Q protėvis, tai P yra Q protėvis. Tada pateikiama keletas tikrųjų faktų, pvz. Jonas yra Džimo tėvas. Jei tada pateikiamas probleminis klausimas, ar Džonas yra Džefo protėvis, gauname atsakymą „Taip“, kaip nurodyta toliau:

?- protėvis (Jonas, Džefas).
taip

Jei domina joshua protėviai, programa rodo visus protėvius taip:
?- protėvis (A, Joshua)
A = Jasonas
A = Džeris
A = Džimas
A = Jonas
Atminkite, kad abiem aukščiau nurodytais atvejais programa nenurodė, kaip atlikti vertinimą. Pavyzdžiui, nebuvo nurodyta, ar pradėti nuo vyresnio žmogaus ir pereiti prie jaunesnio, ar atvirkščiai. Taip pat dalių keitimas, kaip nurodyta toliau:
protėvis (P, Q):- protėvis (R, Q), tėvas (P, R)
Programai tai neturėtų įtakos, nes abi šios dalys dešinėje turi būti teisingos, kad kairioji pusė būtų teisinga.
Taigi Prolog kalba sutelkia dėmesį į santykius, o ne į tai, kaip išspręsti problemą. Vykdydamas programą, „Prolog“ sukuria daugybę teisingų teiginių, sukurdamas žinių bazę. Aukščiau pateiktame pavyzdyje žinių bazė, be jokios konkrečios eilės, turėtų protėvius (džonas, džimas), protėvį (džim, Džeris), protėvį (džonas, Džeris), protėvį (džim, jasonas), protėvį (džonas, jasonas), ir taip toliau. Ši žinių bazė gali būti toliau kuriama, kai programa vykdoma, ir galima efektyviai ieškoti sprendimų. Vykdymui gali būti naudojamas lygiagretus apdorojimas, vienu metu vykdomas keli kompiuteriai.
„Prolog“ kalba naudojama daugelyje sričių. Jis prasidėjo sistemose, pritaikytose natūralioms kalboms, tokioms kaip anglų; natūrali kalba yra viena iš dirbtinio intelekto sričių. Prolog kalba taip pat naudojama simbolinėje matematikoje, įskaitant algebrą. Jis naudojamas įrodant teoremas, ekspertų sistemose ir valdymo sistemose, be daugelio kitų programų.