In questo caso l'ordine di subgoal e' importante.
Il Prolog cerca di soddisfare i subgoal nell'ordine in cui sono elencati
nella clausola.

Nel primo caso, chiedendo all'interprete se esiste un Y che sia cugino
di roberto, l'interprete cerca per prima cosa un nonno di roberto. 
Se lo trova, cerca un nipote di tale nonno di roberto.
Se lo trova, cerca di dimostrare che questo nipote e roberto siano fratelli.
Se non riesce a dimostrare che sono fratelli (negation as failure), cerca di
dimostrare che non sono la stessa persona, nel qual caso il nipote trovato viene
presentato come cugino di roberto. Con il meccanismo di backtracking troviamo poi
gli altri cugini.

Nel secondo caso, invece, chiedendo all'interprete se esiste un Y che 
sia cugino di roberto, l'interprete cerca per prima cosa di dimostrare se 
esiste un fratello di roberto. Poiche' esiste un fratello di roberto (paola),
il valore di fratello(roberto,Y) e' true, e quindi not(fratello(roberto,Y))
e' false. L'interprete trovando che il primo subgoal e' false, restituisce false
come risultato della sua ricerca.

