/* ese7.mar  */
/* GOAL possiede(luigi,libro(X),autore(rossi))
        possiede(carlo,L,Y) 
        possiede(X,L,autore(rossi)) */
        
nowarnings

domains
nome = symbol
libro =libro(nome)
autore=autore(nome)

predicates
possiede(nome,libro,autore)
azione
goal azione.
clauses
azione:-makewindow(1,7,1,"",1,1,20,78),
possiede(X,Y,Z),
write(X),nl,write(Y),nl,write(Z),nl,
write("-----------------------"),nl,fail;
readchar(_),clearwindow,
possiede(luigi,L,autore(rossi)),
write(luigi),nl,
write(L),nl,
write(rossi),nl,fail;
readchar(_),clearwindow,
possiede(carlo,L,A),
write(carlo),nl,
write(L),nl,
write(A),nl,
fail;readchar(_),clearwindow.


possiede(luigi,libro(chimica),autore(rossi)).
possiede(luigi,libro(fisica),autore(bassi)).
possiede(carlo,libro(fisica),autore(grasso)).
possiede(carlo,libro(geologia),autore(zanella)).
possiede(carlo,libro(scienze),autore(rossi)).

+----------------------------------------
¦+---------------------------------------
+¦-----------------------
+¦luigi
¦¦libro("fisica")
¦¦autore("bassi")
¦¦-----------------------
¦¦carlo
¦¦libro("fisica")
¦¦autore("grasso")
¦¦-----------------------
¦¦carlo
¦¦libro("geologia")
¦¦autore("zanella")
¦¦-----------------------
¦¦carlo
¦¦libro("scienze")
+¦autore("rossi")
+¦-----------------------
¦¦
¦+---------------------------------------
¦possiede
¦possiede
+---------------------
¦+--------------------
+¦carlo
+¦libro("fisica")
¦¦autore("grasso")
¦¦carlo
¦¦libro("geologia")
¦¦autore("zanella")
¦¦carlo
¦¦libro("scienze")
¦¦autore("rossi")
¦¦
¦¦
¦¦
ritorna