% List of parent relationships parent(kim,holly).  parent(margaret,kim).  
parent(herbert,margaret). parent(john,kim). parent(felix,john).  
parent(albert,felix). parent(albert,dana). parent(felix,maya).



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

greatgrandparent(X,Y) :- parent(X,Z),grandparent(Z,Y).







has_family(X) :- parent(X,_).
has_family(X) :- parent(_,X).








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






ancestor1(X,Y) :- ancestor1(X,Z), parent(Z,Y).
ancestor2(X,Y) :- parent(X,Y).








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


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








sibling1(X,Y) :- not(X=Y),parent(P,X),parent(P,Y).

sibling2(X,Y) :- parent(P,X), parent(P,Y),not(X=Y).

sibling3(X,Y) :- X\=Y,parent(P,X),parent(P,Y).








