I've never done anything in Prolog, and I'm terribly ignorant of what even the simplest of Prolog programs are doing.
I'm presented with such a Prolog program such as this:
edge(a,b).
edge(b,c).
edge(c,d).
edge(b,e).
edge(a,e).
path(X,Y):- edge(X,Y).
path(X,Z):- edge(X,Y), path(Y,Z).
For the...