Самостоятельная работа № 1

Задача: составить базу знаний семья по приведенной ниже схеме (для простоты примем, что в семье только мужчины). Составить факты, правила родственных отношений и поставить вопросы к системе.

По приведенной схеме составим факты:

отец("Лев","Андрей").

отец("Лев","Петр").

отец("Андрей","Алексей").

отец("Петр","Михаил").

отец("Петр","Дмитрий").

 Теперь по той же схеме можно составить правила:

 сын(x,y):-отец(y,x).

дедушка(x,y):-отец(x,z),отец(z,y).

внук(x,y):-дедушка(y,x).

брат(x,y):-отец(z,x),отец(z,y),не(равно (x,y)).

дядя(x,y):-брат(x,z),отец(z,y).

племянник(x,y):-дядя(y,x).

кузен(x,y):-сын(x,z),дядя(x,y).

 Теперь можно составить и вопросы системе

 ?отец("Лев","Андрей").         -> машина даст ответ ДА или НЕТ

?внук("Алексей","Лев").         -> машина даст ответ ДА или НЕТ

?сын("Дмитрий","Андрей").  -> машина даст ответ ДА или НЕТ

?отец("Петр",x).                      -> система даст ответ на вопрос кто сын у Петра

?сын(y,"Петр").                       -> система даст ответ кто отец у Петра

 Вот так будет выглядеть программа:

А вот так будут выглядеть все ответы системы: