Рекурсивные правила

Для примера исходного текста программы из предыдущего задания описать правила для нахождения ответа на следующие вопросы:

  1. "X является предком Y".
  2. "X является потомком Y".
  3. "X является родственником Y".
  4. "X и Y в принципе могли бы жениться" (они разного пола и не являются родственниками).
  5. "X и Y могут жениться в настоящее время" (они в принципе могли бы жениться и в настоящее время не связаны брачными узами).

В комментариях к программе привести примеры запросов вместе с ответами на них машины вывода Prolog.