Вопросы

Факты

Простейшим видом утверждения является факт. Факты используются для констатации того, что выполнено некоторое отношение между объектами. Например:

отец(авраам, исаак).

Этот факт утверждает, что Авраам является отцом Исаака или, что выполнено отношение отец между индивидами, названными авраам и исаак. Другое название для отношения – предикат. Имена индивидов называются атомами. Аналогично факт плюс(2,3,5) означает, что имеет место отношение «2 плюс 3 равно 5» Известно отношение плюс может быть задано с помощью множества фактов определяющих таблицу сложения. Вот начальный фрагмент таблицы:

плюс(0,0,0), плюс(0,1,1), плюс(0,2,2), плюс(0,3,3).

плюс(1,0,1), плюс(1,1,2), плюс(1,2,3), плюс(1,3,4).

 

отец(фарра, авраам). мужчина(фарра).

отец(фара,нахор). мужчина(авраам).

отец(фарра,аран). мужчина(нахор).

отец(авраам,исаак). мужчина(аран).

отец(аран,лот) мужчина(исаак).

отец(аран,милка). мужчина(лот).

отец(аран,иска).

женщина(сара).

мать(сара,исаак). женщина(милка).

женщина(иска).

Программа 1.1. База данных библейской семьи.

 

Конечное множество фактов образует программу. Это простейший вид логической программы. Множество фактов, с другой стороны, составляет описание ситуации. Такой подход лежит в основе программирования баз данных, рассматриваемого в следующей главе. Пример базы данных семейных отношений в Библии приведен в программе 1.1. Предикаты отец, мать, мужчина и женщина выражают очевидные отношения.

Второй формой утверждения в логической программе является вопрос. Вопрос – это средство извлечения информации из логической программы. С помощью вопроса выясняется, выполнено ли некоторое отношение между объектами. Например, с помощью вопроса отец (авраам,исаак)? выясняется, верно ли, что выполнено отношение отец между объектами авраам и исаак? Исходя из фактов программы 1.1, ответ на этот вопрос – да.

Синтаксически вопросы и факты выглядят одинаково, однако их можно различить по контексту. В тех случаях, когда возможна неоднозначность, конец факта будет обозначаться точкой, а конец вопроса – вопросительным знаком. Объект без точки и вопросительного знака мы называем целью. факт Р. утверждает, что цель Р является истинной. В вопросе Р? спрашивается, является ли истинной цель Р. Простой вопрос состоит из одной цели.

Что касается программы, то поиск ответа на вопрос состоит в том, чтобы определить, является ли вопрос логическим следствием программы. Логические следствия выводятся путем применения правил. Простейшее правило вывода совпадение: из Р выводимо Р. Вопрос является логическим следствием тождественного с ним факта.

Если используется программа, содержащая факты, подобно программе 1.1, то процедура поиска ответа на простой вопрос выполняется непосредственно. В программе ищется факт, предполагаемый в вопросе. Если факт, тождественный вопросу, найден, то ответ – да.

Ответ нет дается в том случае, когда факт, тождественный вопросу, не найден, поскольку данный факт не является логическим следствием программы. Такой ответ не подвергает сомнению истинность вопроса, он просто показывает, что нам не удалось доказать истинность вопроса с помощью программы. На оба вопроса – женщина (авраам)? и плюс(1,0,2)? программа 1.1 ответит нет.