Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % Some simple test Prolog programs
- % --------------------------------
- % Knowledge bases
- male('Haakon VII').
- male('Olav V').
- male('Harald V').
- male('Haakon').
- female('Martha').
- female('Mette-Marit').
- female('Maud').
- female('Sonja').
- parent('Haakon VII','Olav V').
- parent('Maud','Olav V').
- parent('Olav V','Harald V').
- parent('Martha','Harald V').
- parent('Harald V','Haakon').
- parent('Sonja','Haakon').
- father(X, Y) :-
- parent(X, Y),
- male(X).
- mother(X, Y) :-
- parent(X, Y),
- female(X).
- sibling(X, Y) :-
- parent(Z, X),
- parent(Z, Y).
- brother(X, Y) :-
- sibling(X, Y),
- male(X).
- sister(X, Y) :-
- sibling(X, Y),
- female(X).
- spouse(X, Y) :-
- parent(X, Z),
- parent(Y, Z).
- % X is the brother-in-law of Y
- brother_in_law(X, Y) :-
- male(X),
- sibling(X, A),
- spouse(A, Y).
- sister_in_law(X, Y) :-
- female(X),
- sibling(X, A),
- spouse(A, Y).
- uncle(X, Y) :-
- male(X),
- sibling(X, A),
- parent(A, Y).
- aunt(X, Y) :-
- female(X),
- sibling(X, A),
- parent(A, Y).
- grandmother(X, Y) :-
- female(X),
- parent(X, A),
- parent(A, Y).
- grandfather(X, Y) :-
- male(X),
- parent(X, A),
- parent(A, Y).
- cousin(X, Y) :-
- uncle(A, X),
- aunt(A, X),
- parent(A, Y).
- ancestor(X, Y) :-
- parent(X, Y).
- ancestor(X, Y) :-
- parent(X, Z),
- ancestor(Z, Y).
- descendant(X, Y) :-
- parent(Y, X).
- descendant(X, Y) :-
- parent(Z, X),
- descendant(Z, Y).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement