Prolog: Факты
Одно из основных понятий в языке Prolog – факты. Факты описываются логическими предикатами с конкретными значениями. В базах знаний на языке Prolog факты представляют конкретные сведения (знания).
male('Максим').
female('Маша').В примере выше мы определили простейшие факты:
- male – мужчина с конкретным значением Максим
- female – женщина с конкретным значением Маша
Важно: аргументы в фактах и правилах должны начинаться с маленькой буквы, иначе интерпретатор Prolog будет воспринимать их, как переменные. Если аргументы начинаются с большой буквы, то они должны быть заключены в кавычки.
Заголовки фактов могут повторяться:
male('Максим').
male('Дмитрий').
female('Маша').В данном примере мы определили несколько фактов:
- male – мужчина с конкретным значением Максим
- male – мужчина с конкретным значением Дмитрий
- female – женщина с конкретным значением Маша
Факты могут включать несколько конкретных значений:
parent('Максим', 'Дмитрий').
parent('Маша', 'Дмитрий').В этом примере определены факты о родителях и детях. Семантический смысл данных фактов может быть разным:
- Если первое значение – родитель, то определены следующие факты:
- Максим – родитель Дмитрия
- Маша – родитель Дмитрия
- Если первое значение – ребенок, то определены следующие факты:
- Максим – ребенок Дмитрия
- Маша – ребенок Дмитрия
Задание
Определите факты:
- pet, как имя питомца
- father, как отношение отец – сын
- mother, как отношение мать – дочь
Полезное
Prolog: Факты
Одно из основных понятий в языке Prolog – факты. Факты описываются логическими предикатами с конкретными значениями. В базах знаний на языке Prolog факты представляют конкретные сведения (знания).
male('Максим').
female('Маша').В примере выше мы определили простейшие факты:
- male – мужчина с конкретным значением Максим
- female – женщина с конкретным значением Маша
Важно: аргументы в фактах и правилах должны начинаться с маленькой буквы, иначе интерпретатор Prolog будет воспринимать их, как переменные. Если аргументы начинаются с большой буквы, то они должны быть заключены в кавычки.
Заголовки фактов могут повторяться:
male('Максим').
male('Дмитрий').
female('Маша').В данном примере мы определили несколько фактов:
- male – мужчина с конкретным значением Максим
- male – мужчина с конкретным значением Дмитрий
- female – женщина с конкретным значением Маша
Факты могут включать несколько конкретных значений:
parent('Максим', 'Дмитрий').
parent('Маша', 'Дмитрий').В этом примере определены факты о родителях и детях. Семантический смысл данных фактов может быть разным:
- Если первое значение – родитель, то определены следующие факты:
- Максим – родитель Дмитрия
- Маша – родитель Дмитрия
- Если первое значение – ребенок, то определены следующие факты:
- Максим – ребенок Дмитрия
- Маша – ребенок Дмитрия
Задание
Определите факты:
- pet, как имя питомца
- father, как отношение отец – сын
- mother, как отношение мать – дочь
Полезное
Ваше упражнение проверяется по этим тестам
:- style_check(-singleton).
:- dynamic error_happened/1.
:- assertz(error_happened('OK')).
user:message_hook(Term, error, _Lines) :-
retract(error_happened('OK')),
assertz(error_happened(error)),
fail.
:- [main].
:- begin_tests(facts).
test(010, [true, nondet]) :-
pet(P),
father(F, S),
mother(M, D),
error_happened(X).
:- end_tests(facts).Решение учителя откроется через:
20:00
