/* family2.pl * * Another family example for CS 313 */ l :- [family2]. motherOf(amy, anna). motherOf(amy, peter). motherOf(lorle, daniel). motherOf(lorle, felix). motherOf(oma, lorle). fatherOf(daniel, anna). fatherOf(daniel, peter). fatherOf(felix, marius). fatherOf(felix, manon). fatherOf(hans, daniel). fatherOf(hans, felix). fatherOf(opa, lorle). siblings(X, Y) :- motherOf(M, X), motherOf(M, Y), fatherOf(F, X), fatherOf(F, Y), X \= Y. parentOf(X, Y) :- motherOf(X, Y). parentOf(X, Y) :- fatherOf(X, Y). grandmotherOf(X, Z) :- motherOf(X, Y), parentOf(Y, Z). ancestor(X, Y) :- parentOf(X, Y). ancestor(X, Z) :- parentOf(X, Y), ancestor(Y, Z). cousins(X, Y) :- parentOf(PX, X), parentOf(PY, Y), siblings(PX, PY).