By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
454,253 Members | 1,333 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 454,253 IT Pros & Developers. It's quick & easy.

Display results in Prolog

P: 1
if twol then twolegs.
if twoh then twohands
if tenf then tenfingers.
if twof then twofeets.
if smallh then smallhair.
if fourlegs and nohands and nofingers and fourfeets and doghair then dog.
if twolegs and twohands and tenfingers and twofeets and smallhair then person.
if fourlegs and nohands and nofingers and fourfeets and doghair then dog.
if twolegs and twohands and tenfingers and twofeets and smallhair then person.


% forward chaining
forward :-
new_derived_fact(P),!,
write('solution: '),writeln(P),
assert(derived_fact(P)),
forward ;
writeln('No more facts').
new_derived_fact(P) :-
if Cond then P,
\+ fact(P),
\+ derived_fact(P),
truth(Cond).
truth(P) :-
fact(P) ;
derived_fact(P).
truth(P1 and P2) :-
truth(P1),
truth(P2).
truth(P1 or P2) :-
truth(P1) ;
truth(P2).

%database
solution(person, addressx, idp1, house).
solution(person, addressy, idp2, house).
solution(person, addressz, idp3, house).
solution(dog, dogaddressx, dogid1, doghouse).
solution(dog, dogaddressy, dogid2, doghouse).

I have this code in prolog using forward chaining. How to display the result "person" like "address, id, house" from datababase??
4 Weeks Ago #1
Share this question for a faster answer!
Share on Google+

Post your reply

Sign in to post your reply or Sign up for a free account.