Verzeihen Sie mir, wenn ich die Syntax falsch, ist es schon eine Weile her, dass ich mit Prolog gespielt.
Eine typische Lösung ist eine andere Ebene zu den Klauseln einzuführen, wie folgt aus:
married(X, Y) :- wife(X, Y).
married(X, Y) :- wife(Y, X).
und spezifiziert dann die Beziehungen der Frau Klausel statt mit:
wife(jane, bob).
wife(alice, john).
?- married(jane, X).
X = bob
Weitere Informationen finden Sie finden Sie hier: CSc 8710, Deductive Databases and Logic Programming, chapter 6 - Logic and databases, unter 6.5 - Special Relations.