parent(nariman,zal). parent(zal,sam). parent(sam,rostam). parent(sam,ghazanfar). parent(sam,petros). %---1 parent(sam,petros). parent(sam,zahra). %---1 parent(rodabeh,rostam). parent(tahmineh,sohrab). parent(rostam,sohrab). %---2 parent(rostam,mina). %---2 parent(sodabeh,siyavash). parent(gordafarid,rodabeh). parent(gordafarid,sodabeh). parent(afrasiyab,tahmineh). parent(giv,rodabeh). parent(giv,sodabeh). parent(giv,mehrzad). %---3 parent(giv,arash). %---3 parent(shahrzad,mehrzad). %---4 male(arash). %---4 male(nariman). male(zal). male(sam). male(rostam). male(ghazanfar). male(petros). male(sohrab). male(siyavash). male(afrasiyab). male(giv). %---5 female(mina). female(zahra). %---5 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). %---6 spouse(giv,zahra). spouse(maryam,giv). %---6 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). %---7 havespouses(Y):- setof(X,(spouse(Y,X);spouse(X,Y)),L). have3dauther1son(Y):- setof(X1,(parent(Y,X1),female(X1)),L1), length(L1,N1),N1==3, setof(X2,(parent(Y,X2),male(X2)),L2), length(L2,N2),N2==1. havedautherson(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. havedautherson(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. %---7