Genealogy Design a set of predicates that encode genealogical relationships. • m
ID: 3731911 • Letter: G
Question
Genealogy
Design a set of predicates that encode genealogical relationships.
• male(X) - X is male.
• female(X) - X is female.
• parent(X,Y) - X is the parent of Y.
• mother(X,Y) - X is the mother of Y.
• father(X,Y) - X is the father of Y.
• child(X,Y) - X is the child of Y.
• sibling/2 (reflexive)
• grandparent(X,Y) - X is the grandparent of Y.
• grandmother(X,Y) - X is the grandmother of Y.
• grandfather(X,Y) - X is the grandfather of Y.
• grandchild(X,Y) - X is the grandchild of Y.
• grandson(X,Y) - X is the grandson of Y.
• granddaughter(X,Y) - X is the granddaughter of Y.
Note: Your definitions should avoid infinite recursion and return a single result set. For
example, siblings(X,Y) should queries should return a single result set, i.e. not X=bob,
Y=joe; X=joe, Y=bob.
Explanation / Answer
ANS:-
given that ,
Genealogy:- a set of predicates that encode genealogical relationships.
Note: Your definitions should avoid infinite recursion and return a single result set. For
example, siblings(X,Y) should queries should return a single result set, i.e. notX=bob,
Y=joe; X=joe, Y=bob.
% Knowledge Base
male(adam).
male(bob).
male(brett).
male(charles).
male(chris).
male(clay).
female(ava).
female(barbara).
female(betty).
female(colette).
female(carrie).
parent(adam,bob).
parent(adam,barbara).
parent(ava,bob).
parent(ava,barbara).
parent(bob,clay).
parent(barbara,colette).
?- mother(ava,Kid)
Kid = bob;
Kid = barbara.
?- sibling(X,Y).
X = bob,
Y = barbara;
?- grandparent(GParent,colette).
GParent = adam;
GParent = ava.
.
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.