parent(tom, bob). parent(tom, liz). parent(bob, ann). parent(bob, pat). parent(pat, jim). grandparent(X, Z) :- parent(X, Y), parent(Y, Z). ancestor(X, Y) :- parent(X, Y). ancestor(X, Y) :- parent(X, Z), ancestor(Z, Y). :- initialization(main). main :- write('Grandparents of jim: '), findall(X, grandparent(X, jim), Grandparents), write(Grandparents), nl, write('Ancestors of jim: '), findall(X, ancestor(X, jim), Ancestors), write(Ancestors), nl.