Definir gráfico en Prolog: borde y ruta, para encontrar si hay una ruta entre dos vértices

Soy muy nuevo en Prolog. Definí engraph.pl el siguiente gráfico:

Y aquí está mi código Prolog:

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).

Lo entiendo así:hay un camino entre el vérticeX y vérticeY solo si hay un borde entre el vérticeX y vérticeZ Y hay un camino entre el vérticeZ y vérticeY (algún tipo de recursión).

¿Es correcto para el gráfico presentado? Cuando le pregunto a Prolog sobre el camino entre el vérticeA y vérticeF me datrue ... que ni siquiera está bien! ¿Qué podría estar mal en este código?

Respuestas a la pregunta(4)

Su respuesta a la pregunta