/*****************************************************************************
Copyright (c) 2009
******************************************************************************/
implement main
open core, console
constants
className = "main".
classVersion = "".
clauses
classInfo(className, classVersion).
class facts
mother : (string, string).% nondeterm anyflow.
father : (string, string). %nondeterm anyflow.
male : (string). %nondeterm anyflow.
female : (string).% nondeterm anyflow.
class predicates
man : (string) nondeterm anyflow.
woman : (string) nondeterm anyflow.
son : (string, string) nondeterm anyflow.
grandson : (string, string) nondeterm anyflow.
clauses
mother ("екатерина2","павел1").
mother ("мария ф","александр1").
mother ("мария ф","константин").
mother ("мария ф","николай1").
mother ("александра ф","александр2").
mother ("мария а","александр3").
mother ("дагма","николай2").
mother ("алиса","алексей").
mother ("алиса","анастасия").
father ("петр3","павел1").
father ("павел1","александр1").
father ("павел1","николай1").
father ("александр2","александр3").
father ("николай2","алексей").
female ("анастасия").
male ("алексей").
woman(X):- mother (X, _) ; female(X).
man(X):- father(X,_) ; male(X).
son(X, Y):- man(X) , mother(Y, X) ; man(X) , father(Y, X).
grandson (X, Y):- father(Z, X) , father(Y, Z) ; mother(Z, X) , father(Y, Z) ;
father(Z, X) , mother(Y, Z) ; mother(Z, X) , mother(Y, Z).
clauses
run():-
console::init(), grandson(Vnuk, "петр3"), write(Vnuk), nl, fail;
succeed(). % place your own code here
end implement main