Procura de caminho de gráfico de prólogo com caminho cíclico

Eu sou um novato completo em Prolog. Estou tentando descobrir um problema em que preciso verificar se o caminho está presente entre as bordas. Eu sou feito com o código de gráfico acíclico para cíclico meu código está indo para o loop infinito.

path(Start, End) :- edge(Start, End).
path(Start, End) :- edge(Start, Z), path(Z, End).

Eu preciso lidar com este caso, definindo um novo predicado: new_path (Start, End, path) que deve eliminar o loop infinito. Por favor, deixe-me saber como proceder.

questionAnswers(2)

yourAnswerToTheQuestion