Zdroj
% rodice(Otec, Matka, Dite)
rodice(jiri, marie, jan).
rodice(jiri, marie, tomas).
rodice(jiri, marie, eva).
rodice(michal, vera, pavel).
rodice(michal, vera, hana).
rodice(jan, alena, karel).
rodice(pavel, eva, jana).
% z databaze: kazda matka je zena
zena(X):- rodice(_,X,_).
% dospecifikujeme pro ostatni
zena(eva).
zena(hana).
zena(jana).
% S je sestra od X
sestra(S, X) :- rodice(Y,Z,S), rodice(Y,Z,X), zena(S), S\==X.
% R je rodic od D
rodic(R, D) :- rodice(R, _, D).
rodic(R, D) :- rodice(_, R, D).
% P je prarodic od V
prarodic(P, V) :- rodic(P, X), rodic(X, V).
% P je libovne vzdaleny potomek X
potomek(P, X) :- rodic(X, P).
potomek(P, X) :- rodic(Y, P), potomek(Y, X).
Dotazy
?- zena(X).
X = marie ;
X = marie ;
X = marie ;
X = vera ;
X = vera ;
X = alena ;
X = eva ;
X = eva ;
X = hana ;
X = jana.
% nektere vysledky lze odvodit vice zpusoby
?- sestra(S, tomas).
S = eva ;
S = eva ;
false.
?- potomek(X, jiri).
X = karel ;
X = jana ;
X = jan ;
X = tomas ;
X = eva ;
false.