Définir un graphe dans Prolog: edge et path, trouver s'il existe un chemin entre deux sommets

Je suis très nouveau à Prolog. J'ai défini dans graph.pl le graphique suivant:

Définir un graphe dans Prolog: edge et path, trouver s'il existe un chemin entre deux sommets

Et voici mon Prologue code:

edge(a,e).
edge(e,d).
edge(d,c).
edge(c,b).
edge(b,a).
edge(d,a).
edge(e,c).
edge(f,b).
path(X,X).
path(X,Y):- edge(X,Z) ; path(Z,Y).

Je le comprends comme ceci: il y a un chemin entre les vertex X et vertex Y seulement si il existe une arête entre le sommet X et vertex Z ET il y a un chemin entre les vertex Z et vertex Y (une sorte de récursivité).

Est que pour la présentation graphique? Quand je demande Prologue sur le chemin entre le sommet A et vertex F il me donne true ... qui n'est même pas droit! Ce qui ne va pas dans ce code?

source d'informationauteur yak | 2014-01-16