?- possiede(giovanni,casa)."Adriano possiede un ristorante?"
?- possiede(adriano,ristorante)."Adriano e' fratello di Giovanni? "
?- fratelli(adriano,giovanni)."Paolo e' fratello di Adriano?"
?- fratelli(paolo,adriano).(spiegare per che nel primo caso la risposta è "si" mentre nel secondo è "no").
"Roma è in Italia ?"
?- in_italia(roma)."New York e' in Usa? "
?- in_usa(new_york)."Chicago è in Italia? "
?- in_italia(chicago)."Cosa possiede Carlo"
?- possiede(carlo,Y)."Chi e' fratello di paolo? "
?- fratelli(Y,paolo)."Quali citta' ci sono in Italia? "
?- in_italia(X).
% ?- sorella(alice,X),sorella(paola,Y),amiche(X,Y).
fratello(X,Y) :- figlio(X,Z),figlio(Y,Z).Se si vuole evitare che una persona sia fratello di sè stessa la regola deve essere così modificata:
fratello(X,Y) :- figlio(X,Z),figlio(Y,Z),X\=Z.
Dopo aver definito la regola:
nonno(X,Y) :- figlio(Z,X),figlio(Y,Z).il risultato di
?- trace, nonno(pam,N).è il seguente:
GOAL: trace,nonno(pam,N),notrace. N = bob Yes Call: ( 14) nonno(pam, _G1961) ? Call: ( 15) genitore(pam, _L158) ? Exit: ( 15) genitore(pam, tom) ? Call: ( 15) genitore(tom, _G1961) ? Exit: ( 15) genitore(tom, bob) ? Exit: ( 14) nonno(pam, bob) ?
puo_consultare_libro(Y,X):-
tesserato(Y),
in_schedario(X),
non_in_prestito(X).
Scrivete ora la domanda: "Rossi puo' consultare Gorki Park? "
?- puo_consultare_libro(rossi,gorki_park).Spiegare quali passi compie il Prolog per rispondere alla domanda precedente.