parent(nariman,zal). parent(zal,sam). parent(sam,rostam). parent(sam,ghazanfar). parent(sam,petros). %---1 parent(sam,petros). %---1 parent(rodabeh,rostam). parent(tahmineh,sohrab). parent(rostam,sohrab). parent(rostam,zahra). parent(rostam,morvarid). parent(sodabeh,siyavash). parent(gordafarid,rodabeh). parent(gordafarid,sodabeh). parent(afrasiyab,tahmineh). parent(giv,rodabeh). parent(giv,sodabeh). parent(giv,mehrzad). parent(giv,arash). parent(shahrzad,mehrzad). male(arash). male(nariman). male(zal). male(sam). male(rostam). male(ghazanfar). male(petros). male(sohrab). male(siyavash). male(afrasiyab). male(giv). female(zahra). female(morvarid). female(rodabeh). female(tahmineh). female(sodabeh). female(gordafarid). female(mehrzad). female(shahrzad). grand(X,Y) :- parent(X,Z), parent(Z,Y). grand(X):- parent(X,Z), parent(Z,Y). grand(X,Z,Y):- parent(X,Z), parent(Z,Y). grandmother(X,Y) :- grand(X,Y), female(X). grandfather(X,Y) :- grand(X,Y), male(X). grandfather(X,Y) :- parent(X,Z), parent(Z,Y), male(X). grandparent(X,Y) :- grand(X,Z), parent(Z,Y). grandparent(X,Y) :- parent(X,Z1), parent(Z1,Z2), parent(Z2,Y). spouse(bizhan,manizheh). spouse(giv,zahra). spouse(maryam,giv). spouse(X,Y) :- parent(X,Z), parent(Y,Z), X\=Y. father(X,Y):- parent(X,Y), male(X). mother(X,Y):- parent(X,Y), female(X). brother(X,Y):-parent(Z,X), parent(Z,Y), male(X), male(Y), X\=Y. sisterbrother(X,Y):- parent(Z,X), parent(Z,Y), female(X), male(Y), X\=Y. brothersister(X,Y):- parent(Z,X), parent(Z,Y), male(X), female(Y), X\=Y. sister(X,Y):- parent(Z,X), parent(Z,Y), female(X), female(Y), X\=Y. sister(X):- parent(Z,X), parent(Z,Y), female(X), X\=Y. sister_tani(X,Y):- parent(Z1,X), parent(Z1,Y), parent(Z2,X), parent(Z2,Y), Z1\=Z2, female(X), female(Y), X\=Y. sister_natani(X,Y):- parent(Z1,X), parent(Z2,Y), parent(Z,X), parent(Z,Y), Z1\=Z2, Z1\=Z, Z2\=Z, female(X), female(Y), X\=Y. aunt_m(X,Y):- sister(X,Z), %khale mother(Z,Y). aunt_f(X,Y):- sisterbrother(X,Z), %ameh father(Z,Y). uncle_m(X,Y):- brothersister(X,Z), %dayee mother(Z,Y). uncle_f(X,Y):- brother(X,Z), %amoo father(Z,Y). havespouse(Y,L):- setof(X , (spouse(X,Y);spouse(Y,X)), L). have2daughter1son(Y):- setof(X1, (parent(Y,X1),female(X1)) ,L1), length(L1,N1),N1==2, setof(X2, (parent(Y,X2),male(X2)) ,L2), length(L2,N2),N2==1. havedaughterson(Y,D,S):- setof(X1, (parent(Y,X1),female(X1)) ,L1), length(L1,N1),N1==D, setof(X2, (parent(Y,X2),male(X2)) ,L2), length(L2,N2),N2==S. havedaughterson(Y,D,S,L1,L2):- setof(X1, (parent(Y,X1),female(X1)) ,L1), length(L1,N1),N1==D, setof(X2, (parent(Y,X2),male(X2)) ,L2), length(L2,N2),N2==S.