Простите, если я неправильно понял синтаксис, я давно не играл с Прологом.
Типичное решение состоит в том, чтобы ввести в уровни еще один уровень, например:
married(X, Y) :- wife(X, Y).
married(X, Y) :- wife(Y, X).
, а затем укажите отношения, используя вместо этого предложение жены:
wife(jane, bob).
wife(alice, john).
?- married(jane, X).
X = bob
Более подробную информацию можно найти здесь: CSc 8710, Дедуктивные базы данных и логическое программирование, глава 6 - Логика и базы данных , под 6.5 - Специальные отношения.