Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a Prolog program by creating a file that contains the following facts: fem

ID: 3697689 • Letter: W

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).
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).

Explanation / Answer

parent(pam, bob).

parent(tom, bob).

parent(tom, liz).

parent(bob, ann).

parent(bob, pat).

parent(pat, jim).

female(pam).

male(tom).

male(bob).

female(liz).

female(pat).

female(ann).

male(jim).

we save the file name with family.pl

and to upload the file we use consult in query tool

a)

?- female(ann).

true.

?- female(jim).

false

?- parent(X,bob).

X=tom,

X=pam;

?- parent(tom,X).

X=bob,

X=liz;

?- parent(X,ann),parent(X,pat).

X=bob,

X=bob;

b)

1.

?- parent(X,pat)

X=bob.

3

?- grandparent(pat).

it will return true or false

c)

4.ann

5.

?- sister(X, Y).

X = Y, Y = liz ;

X = Y, Y = ann ;

X = ann,

Y = pat ;

X = pat,

Y = ann ;

X = Y, Y = pat ;

false.

7.

tom

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote