ИСПОЛЬЗОВАНИЕ ЛОГИКИ ПЕРВОГО ПОРЯДКА

Теперь, после того как мы определили выразительный логический язык, можно приступить к изучению способов его использования. Лучше всего можно сделать это с помощью примеров. Выше уже были приведены некоторые простые высказывания, иллюстрирующие различные аспекты этого логического синтаксиса; в данном разделе будут показаны более систематические представления некоторых простых проблемных областей. В проблематике представления знаний проблемной областью считается некоторая часть мира, о которой необходимо выразить некоторые знания.
Начнем с краткого описания интерфейса Tell/Ask для базы знаний в логике первого порядка. Затем рассмотрим проблемную область семейных отношений, чисел, множеств и списков, а также мира вампуса. В следующем разделе приведен более развернутый пример (электронные схемы), а в главе 10 рассматривается все, что касается данной области науки.
Утверждения и запросы в логике первого порядка
Высказывания вводятся в базу знаний с помощью операции Tell, точно так же, как и в пропозициональной логике. Такие высказывания называются утверледениями. Например, можно ввести утверждения, что Джон — король и что короли — люди:
Tell(KB, King(John))
Tell (KB, Vx King(x) => Person(x) )
Мы можем задавать вопросы о содержимом базы знаний с использованием операции Ask. Например, следующее выражение:
Ask (KB, King(John))
возвращает true. Вопросы, заданные с помощью операции Ask, называются запросами, или целями (которые не следует путать с целями, используемыми при описании желаемых состояний агента). Вообще говоря, на любой запрос, который логически следует из базы знаний, должен быть получен утвердительный ответ. Например, если в ней содержатся два утверждения, приведенные в предыдущем абзаце, то следующий запрос:
Ask(KB, Person(John))
должен также возвратить true. Кроме того, можно задавать запросы с кванторами, такие как следующий:
Ask (KB, Зх Person(x) )
На этот запрос должен быть получен ответ true, но этот ответ — ни полезный, ни забавный. (Его можно сравнить с получением ответа "Да" на вопрос: "Можете ли вы сказать мне, который час?") Запрос с переменными, на которые распространяется квантор существования, имеет смысл: "Существует ли такое значение х, что...", и мы решаем его, предоставляя соответствующее значение х. Стандартная форма для ответа такого рода представляет собой подстановку, или список связывания, который является множеством пар "переменная—терм". В данном конкретном случае, при наличии только двух утверждений, ответом должно быть {x/John}. А если имеется больше одного возможного ответа, может быть возвращен список подстановок.







Материалы

Яндекс.Метрика