Display results in Prolog

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • nightxxx
    New Member
    • Apr 2020
    • 1

    Display results in Prolog

    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_fac t(P),!,
    write('solution : '),writeln(P),
    assert(derived_ fact(P)),
    forward ;
    writeln('No more facts').
    new_derived_fac t(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??
Working...