Задание № 1
Основы языка Пролог: факты, правила, цели, вывод данных
? С помощью базового набора фактов определить элементарные предикаты «родитель»,
«мужчина», «женщина», задающие генеалогическое древо своей (или иной – возможно, вымышленной)
семьи. Для наглядности при сдаче работы представить генеалогическое древо в графическом виде на
бумаге.
? Задать факты с некоторой дополнительной информацией о членах семьи (например, с датой,
местом рождения, возрастом, местом работы, хобби и т.п.);
? Задать правила – новые предикаты – как условия вывода новой связи (отношения) из уже
имеющихся предикатов (которые заданы с помощью фактов или иных правил), описывающие
конкретные родственные отношения, например, «мать», «сын», «брат», «тётя», «дед» и т.д.
? К созданной базе фактов и правил составить цели различных типов (задать разнотипные
вопросы), например:
? односложные постоянные либо с неопределёнными (анонимными) переменными – вопрос типа
«Да/Нет»;
? односложные с переменными – для определения подходящих значений;
? сложные – составленные с использованием логических связок («not()» – отрицание, «,» –
конъюнкция, «;» – дизъюнкция);
? с выводом дополнительных текстовых сообщений (стандартные предикаты write() или
writeln()).
? Задавать цели как нульместные предикаты в тексте программы либо прямо в консоли (для этого
после символов «?-» сразу писать текст правила-цели без префикса-имени цели).
? Снабдить текст программы поясняющими комментариями.
Примечание. Пробуйте задавать предикаты с разным числом аргументов: одно-, двух-,
трёхместные и т.д