Составители:
Рубрика:
122
Существуют два типа утверждений:
- факт — это одиночная цель, которая, безусловно, истинна;
- правило — состоит из одной головной цели и одной или более
хвостовых целей, которые истинны при некоторых условиях.
Правило обычно имеет несколько хвостовых целей в форме
конъюнкции целей.
Конъюнкцию можно рассматривать как логическую функцию И. Таким
образом, правило согласовано, если согласованы все его хвостовые цели.
Примеры фактов:
собака(рекс). родитель(голди.рекс).
Примеры правил:
собака (X) :- родитель (X.Y),собака (Y). человек(Х) :-
мужчина(Х).
Разница между правилами и фактами чисто семантическая. Хотя для
правил мы используем синтаксис операторов (более подробное рассмотрение
операторного и процедурного синтаксисов выходит за рамки нашего курса),
нет никакого синтаксического различия между правилом и фактом.
Так, правило
собака (X) :- родитель(Х,У),собака(У).
может быть задано как
:-собака (X) ',' родитель(Х.У) .собака (Y).
Запись верна, поскольку
:-
является оператором
"при условии, что"
,
а
','
— это оператор конъюнкции. Однако удобнее записывать это как
собака (X) :-родитель (X.Y),собака (Y).
и читать следующим образом: " Х — собака при условии, что родителем Х
является Y и Y — собака".
14.3 Запросы
После записи утверждений в базу данных вычисления могут быть
инициированы вводом запроса.
Запрос выглядит так же, как и целевое утверждение, образуется и
обрабатывается по тем же правилам, но он не входит в базу данных
(программу). В Прологе вычислительная часть программы и данные имеют
одинаковый синтаксис. Программа обладает как декларативной, так и
процедурной семантикой. Мы отложим обсуждение этого вопроса до
последующих лекций. Запрос обозначается в Прологе утверждением ?-,
имеющим арность 1. Обычно запрос записывается в операторной форме: за
Существуют два типа утверждений:
- факт — это одиночная цель, которая, безусловно, истинна;
- правило — состоит из одной головной цели и одной или более
хвостовых целей, которые истинны при некоторых условиях.
Правило обычно имеет несколько хвостовых целей в форме
конъюнкции целей.
Конъюнкцию можно рассматривать как логическую функцию И. Таким
образом, правило согласовано, если согласованы все его хвостовые цели.
Примеры фактов:
собака(рекс). родитель(голди.рекс).
Примеры правил:
собака (X) :- родитель (X.Y),собака (Y). человек(Х) :-
мужчина(Х).
Разница между правилами и фактами чисто семантическая. Хотя для
правил мы используем синтаксис операторов (более подробное рассмотрение
операторного и процедурного синтаксисов выходит за рамки нашего курса),
нет никакого синтаксического различия между правилом и фактом.
Так, правило
собака (X) :- родитель(Х,У),собака(У).
может быть задано как
:-собака (X) ',' родитель(Х.У) .собака (Y).
Запись верна, поскольку :- является оператором "при условии, что",
а ',' — это оператор конъюнкции. Однако удобнее записывать это как
собака (X) :-родитель (X.Y),собака (Y).
и читать следующим образом: " Х — собака при условии, что родителем Х
является Y и Y — собака".
14.3 Запросы
После записи утверждений в базу данных вычисления могут быть
инициированы вводом запроса.
Запрос выглядит так же, как и целевое утверждение, образуется и
обрабатывается по тем же правилам, но он не входит в базу данных
(программу). В Прологе вычислительная часть программы и данные имеют
одинаковый синтаксис. Программа обладает как декларативной, так и
процедурной семантикой. Мы отложим обсуждение этого вопроса до
последующих лекций. Запрос обозначается в Прологе утверждением ?-,
имеющим арность 1. Обычно запрос записывается в операторной форме: за
122
Страницы
- « первая
- ‹ предыдущая
- …
- 121
- 122
- 123
- 124
- 125
- …
- следующая ›
- последняя »
