Пролог и отношения предков

Я должен написать небольшую прологическую программу, которая проверяет, является ли данный человек предком второго. Вот факты и правила:

mother(tim, anna).
mother(anna, fanny).
mother(daniel, fanny).
mother(celine, gertrude).
father(tim, bernd).
father(anna, ephraim).
father(daniel, ephraim).
father(celine, daniel).

parent(X,Y) :- mother(X,Y).
parent(X,Y) :- father(X,Y).

Проверка, является ли человек предком другого человека, проста:

ancestor(X, Y) :- parent(X, Y).
ancestor(X, Y) :- parent(X, Z), ancestor(Z, Y).

Но теперь я должен написать предок метода (X, Y, Z), который также распечатывает отношения между двумя людьми. Это должно выглядеть так

?- ancestor(ephraim, tim, X).
false.
?- ancestor(tim, ephraim, X).
X = father(mother(tim)).

И это проблема: я понятия не имею, как поступить с этим.

Ответы на вопрос(3)

Ваш ответ на вопрос