Question
Write a Prolog program by creating a file that contains the following facts: female(pam). female(liz). female(ann). female(pat). male(tom). male(bob). male(jim). parent(pam,bob). parent(tom,bob). parent(tom,liz). parent(bob,ann). parent(bob,pat).
Write a Prolog program by creating a file that contains the following facts: female(pam). female(liz). female(ann). female(pat). male(tom). male(bob). male(jim). parent(pam,bob). parent(tom,bob). parent(tom,liz). parent(bob,ann). parent(bob,pat). parent(pat,jim). here the predicate parent(X,Y) means X is the parent of Y
(a) Load this file into Prolog, usually this is done with the consult file predicate: ?- consult(). On Windows you can load the fact database with the menu point File Consult. Once you have loaded the program pose the following queries: ?- female(ann). ?- female(jim). ?- parent(X,bob). ?- parent(tom,X). ?- parent(X,ann),parent(X,pat). What are the answers to these queries? Beware, for some queries here might be more than one answer. To get all the answers type a ';' at each prompt until you reach the next query prompt ?-.
(b) Now, using the parent predicate formulate the following Prolog queries: 1. Who is Pat's parent? 2. Does Liz have a child? 3. Who is Pat's grandparent?
(c) Given the above facts, extend the program by writing rules defining the following predicates: sister(X,Y) % X is the sister of Y. son(X,Y) % X is the son of Y. father(X,Y) % X is the father of Y. grandmother(X,Y) %X is the grandmother of Y. ancestor(X,Y) % X is an ancestor of Y. See textbook p.392. (Hint: this predicate might come in handy: different(X,Y):- not(X=Y). Some predicate definitions might be recursive.) Demonstrate that your program works by posing the following queries: 4. ?- sister(X,pat). 5. ?- sister(X,Y). 6. ?- son(jim,X). 7. ?- father(X,bob). 8. ?- grandmother(X,ann). 9. ?- ancestor(X,jim).
Hand in the source code of your prolog program and a proof of the program execution (for example, a screenshot).
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started