Prolog jest deklaratywnym językiem programowania opartym na logice pierwszego rzędu.
Program w Prologu składa się z faktów oraz klauzul. Fakty definiują wiedzę prawdziwą bezwarunkowo; są to stwierdzenia opisujące prawdziwe relacje.
Klauzule definiują reguły wnioskowania. Sa to zdania warunkowe, o konstrukcji typu 'if … then …'.
Przykład programu w Prologu:
man(plato). man(socrates). mortal(X):- man(X).
Dwa pierwsze wiersze to fakty (stwierdzenia): 'Platon jest człowiekiem' oraz 'Sokrates jest człowiekiem'.
Ostatnia linia to klauzula: 'Każdy człowiek jest śmiertelny', a bardziej dosłownie: 'X jest śmiertelny jeżeli X jest człowiekiem'.
Stałe w Prologu zaczynają się małymi literami, napisy rozpoczynające się dużymi literami to zmienne.
Każdy fakt jest postaci:
p(t1,t2,...,tn).
gdzie p
jest symbolem relacji n-argumentowej (predykatu), a t1,t2,…,tn
są argumentami.
Każda klauzula jest postaci:
h :- p1,p2,...,pm.
Klazulę można interpretować jako regułę: h
pod warunkiem (if, , że p1,p2,…,pm
.
Z zadeklarowanej powyżej wiedzy interpreter Prologu potrafi wydedukować, że:
mortal(plato). mortal(socrates).
Bardziej rozbudowany przykład obejmuje definicje danych i relacji rodzinnych:
ojciec(jacek,wojtek). ojciec(jan,ewa). ojciec(jan,tomek). ojciec(jan,jacek). m(tomek). m(jacek). k(ewa). brat(B,X) :- ojciec(P,X), ojciec(P,B), m(B), B \= X. wuj(U,X) :- ojciec(P,X), brat(U,P).