Non ci sono i commenti al codice, ma vanno messi!!!



descn(X,X,0).

descn(X,Y,N) :- parent(X,Z), descn(Z,Y,M), N is M+1.

desc(X,Y) :- descn(X,Y,N).

common(X,Y,Z) :- desc(X,Z), desc(Y,Z).



degree(X,X,0).

degree(X,Y,N) :- common(X,Y,Z), descn(X,Z,M), descn(Y,Z,K), N is M+K.




Esempio:

parent(anna,giuseppina).
parent(teresa,giuseppina).
parent(franco,anna).
parent(pia,anna).
parent(roberto,teresa).
parent(francesco,pia).
parent(gaia,pia).


