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.