Бесплатный курс по prolog. Зарегистрируйтесь для отслеживания прогресса →

Prolog: Факты

Одно из основных понятий в языке Prolog – факты. Факты описываются логическими предикатами с конкретными значениями. В базах знаний на языке Prolog факты представляют конкретные сведения (знания).

male('Максим').
female('Маша').

В примере выше мы определили простейшие факты:

  • male – мужчина с конкретным значением Максим
  • female – женщина с конкретным значением Маша

Важно: аргументы в фактах и правилах должны начинаться с маленькой буквы, иначе интерпретатор Prolog будет воспринимать их, как переменные. Если аргументы начинаются с большой буквы, то они должны быть заключены в ковычки.

Заголовки фактов могут повторяться:

male('Максим').
male('Дмитрий').
female('Маша').

В данном примере мы определили несколько фактов:

  • male – мужчина с конкретным значением Максим
  • male – мужчина с конкретным значением Дмитрий
  • female – женщина с конкретным значением Маша

Факты могут включать несколько конкретных значений:

parent('Максим', 'Дмитрий').
parent('Маша', 'Дмитрий').

В этом примере определены факты о родителях и детях. Семантический смысл данных фактов может быть разным:

  • Если первое значение – родитель, то определены следующие факты:
    • Максим – родитель Дмитрия
    • Маша – родитель Дмитрия
  • Если первое значение – ребенок, то определены следующие факты:
    • Максим – ребенок Дмитрия
    • Маша – ребенок Дмитрия

Задание

Определите факты:

  • pet, как отношение питомец – имя
  • father, как отношение отец – сын
  • mother, как отношение мать – дочь

Советы


Нашли ошибку? Есть что добавить? Пулреквесты приветствуются https://github.com/hexlet-basics
Если вы столкнулись с трудностями и не знаете, что делать, задайте вопрос в нашем большом и дружном сообществе