1.3. Интеллектуальный доступ к данным
В настоящее время растет количество информации, хранимой в электрон- ном виде. Компьютерные сети представляют пользователям огромные массивы информации, причем со временем экспоненциально растет как количество этой информации, так и число людей, получивших к ней доступ, благодаря сети
Internet.
Модель состояния мира
Абстрактные знания
Семантический анализ
Синтаксический анализ
Коррекция и пополнение знаний
Модель мира
Подсистема восприятия
Подсистема управления
Предварительная обработка информации
Датчики
Исполнительская подсистема
Планирование действий
Планирование движений
Управление приводами
11
Появилось также огромное количество поисковых систем, облегчающих доступ к ней. Как правило, они используют ту или иную модификацию поиска по ключевым словам. Большое количество информации хранится в реляцион- ных таблицах различных типов, к которым доступ осуществляется посредством специальных языков типа SQL.
Для того, чтобы избавиться от неудобств, связанных с ограниченностью языка SQL и сложностью поиска информации по ключевым словам в локаль- ных и распределенных в Internet базах данных, разрабатываются средства дос- тупа к данным на естественном языке.
Применительно к локальной базе данных комплекс из таких средств и са- мой БД может быть назван интеллектуальным банком данных. Его обобщенная структура показана на рис. 2.
Рис. 2. Структура интеллектуального банка данных
База знаний содержит знания о языке общения, а также о предметной об- ласти, необходимые для понимания запроса к базе данных. Лингвистический процессор должен обеспечивать синтаксический, семантический анализ и прагматический анализ запроса (вопроса) на естественном языке. В идеале он должен реализовывать "активный диалог" с пользователем, в ходе которого инициатива должна переходить от пользователя к системе и обратно с целью уточнения вопроса.
Примером программного обеспечения для доступа к базам данных на ес- тественном языке является пакет InBase, разработанный в Российском научно- исследовательском институте искусственного интеллекта (Москва – Новоси- бирск).
СУБД
Лингвистический процессор
Пользователь
БД
БЗ
12
1.4. Интеллектуальные системы обработки текстовой информацииВ настоящее время все чаще появляются прикладные программы для ав- томатизации офисной деятельности, претендующие на право называться ин- теллектуальными, т.е. использующими методы искусственного интеллекта. На исследования в области искусственного интеллекта с целью создания таких программ ведущие компании, производящие ПО, в частности Microsoft, тратят миллионы и миллиарды долларов.
Этот класс прикладных систем искусственного интеллекта можно разде- лить на следующие типы программ:
•
текстовые редакторы со встроенными средствами проверки орфогра- фии и стилистики (например, всем известная программа Word фирмы Micro- soft);
•
программы-переводчики (например, Stylus и ПРОМТ фирмы ПРОМТ);
•
программы для распознавания и ввода печатных и рукописных доку- ментов (программные продукты GuniForm и FineReader российских фирм
Cognitive Technologies и ABBYY, соответственно);
•
программы для поиска
информации в электронных документах по смыслу, в том числе, в Internet (например, программный продукт "Следопыт"
российской фирмы MediaLingua);
•
программы для реферирования текстовых документов (например, Tex- tAnalist фирмы "Микросистемы").
•
программы для обработки и классификации по смыслу электронной почты (например, программа MLExpert фирмы MediaLingua).
Те или иные из перечисленных выше типов программ встраиваются в со- временные системы документооборота (например, ЕВФРАТ фирмы Cognitive
Technologies).
1.5. Экспертные системыЭкспертные системы – это прикладные системы ИИ, в которых база зна- ний представляет собой формализованные эмпирические знания высококвали- фицированных специалистов (экспертов) в какой-либо узкой предметной об- ласти. Экспертные системы предназначены для замены при решении задач экс- пертов в силу их недостаточного количества, недостаточной оперативности в решении задачи или в опасных (вредных) для них условиях.
Обычно экспертные системы рассматриваются с точки зрения их приме- нения в двух аспектах: для решения каких задач они могут быть использованы и в какой области деятельности. Эти два аспекта накладывают свой отпечаток на архитектуру разрабатываемой экспертной системы.
Можно выделить следующие основные классы задач, решаемых эксперт- ными системами:
•
диагностика;
13
•
прогнозирование;
•
идентификация;
•
управление;
•
проектирование;
•
мониторинг.
Наиболее широко встречающиеся области деятельности, где используются экспертные системы:
•
медицина;
•
вычислительная техника;
•
военное дело;
•
микроэлектроника;
•
радиоэлектроника;
•
юриспруденция;
•
экономика;
•
экология;
•
геология (поиск полезных ископаемых);
•
математика.
Примеры широко известных и эффективно используемых (или использо- ванных в свое время) экспертных систем:
DENDRAL
–
ЭС для распознавания структуры сложных органических молекул по результатам их спектрального анализа (считает- ся первой в мире экспертной системой);
MOLGEN
–
ЭС для выработке гипотез о структуре ДНК на основе экс- периментов с ферментами;
XCON
–
ЭС для конфигурирования (проектирования) вычислитель- ных комплексов VAX 11 в корпорации DEC в соответствии с заказом покупателя;
MYCIN
–
ЭС диагностики кишечных заболеваний;
PUFF
–
ЭС диагностики легочных заболеваний;
MACSYMA
–
ЭС для символьных преобразований алгебраических выра- жений;
YES/MVS
–
ЭС для управления многозадачной операционной системой
MVS больших ЭВМ корпорации IBM;
DART
–
ЭС для диагностики больших НМД корпорации IBM;
PROSPECTO
R
–
ЭС для консультаций при поиске залежей полезных иско- паемых;
POMME
–
ЭС для выдачи рекомендаций по уходу за яблоневым са- дом;
набор экспертных систем для управления планированием, запуском и полетом космических аппаратов типа "челнок";
AIRPLANE
–
экспертная система для помощи летчику при посадке на авианосец;
14
ЭСПЛАН
–
ЭС для планирования производства на Бакинском нефтепе- рерабатывающем заводе;
МОДИС
–
ЭС диагностики различных форм гипертонии;
МИДАС
–
ЭС для идентификации и устранения аварийных ситуаций в энергосистемах;
NetWizard
–
ЭС для проектирования локальных систем.
15
2. МЕТОДЫ ПРЕДСТАВЛЕНИЯ ЗНАНИЙ2.1. Виды знаний"Не в совокупности ищиединства, но более вединообразии разделения".Козьма Прутков
В основе представления знаний лежат понятия семиотики – науки о знако- вых системах (искусственных и естественных языках). В семиотике различают следующие разделы: синтактику, имеющую дело со структурой (синтаксисом)
знаковых систем, семантику, рассматривающую смысл (интерпретацию) знако- вых систем (другими словами, соответствие знаковой системы другой знаковой системе), прагматику, имеющую дело с целенаправленностью знаковых систем.
Другими словами синтактика отвечает на вопрос: как выглядит знание (как оно структурировано или как формализовано), семантика отвечает на вопрос "что означает знание", прагматика отвечает на вопрос "зачем" или "почему" необхо- димо (или передается) знание. Таким образом, имея дело со "знанием" необхо- димо уметь различать его синтаксис, семантику и прагматику. В этом разделе
(методы представления знаний) рассматривается в основном синтаксис (струк- тура знаний). Методы обработки знаний в основном характеризуют их семан- тику. Прагматика знаний в основном выражается в архитектуре интеллектуаль- ной системы – особенностях реализации методов представления и обработки знаний, реализации интерфейсов системы с внешним миром.
С точки зрения глубины различают экстенсиональные (конкретные, по- верхностные) и интенсиональные (абстрактные, глубинные) знания. Экстен- сиональные знания представляют собой факты об объектах реального мира.
Примером их являются реляционная база данных, утверждения вида:
"Иванов имеет автомобиль";
"Расстояние от Земли до Солнца 150 млрд. км";
"Треугольник – есть геометрическая фигура".
Интенсиональные знания представляют собой правила, связывающие ме- жду собой факты, или закономерности реального мира. Примерами их являют- ся продукционная база знаний (см. 2.3), утверждения вида:
"человек может иметь собственность, например, автомобиль";
"планета, на которой может быть жизнь, должна находиться от
Солнца на расстоянии 100-300 млрд. км";
"если геометрическая фигура имеет три угла, то это треугольник".
Иногда разделение на экстенсиональные и интенсиональные знания ус- ловно и зависит от уровня абстрагирования. Например, при необходимости оперировать с правилами типа "если ... то" как с фактами, они выступают в ро- ли экстенсиональных знаний, а интенсиональные знания, предназначенные для
16
этого, обычно называют метазнаниями. Примером метазнания может быть ут- верждение "Если мы имеем дело с Евклидовой геометрией, то справедливо утверждение "Сумма углов треугольника равна 180 градусов".
По используемым методам представления знания подразделяются на дек- ларативные и процедурные.
Декларативные знания содержат описание объектов и отношений между ними. Их интерпретация или обработка осуществляется программами. Говорят,
что при декларативном представлении семантические и синтаксические знания отделены друг от друга, что придает этой форме представления большую по сравнению с другими универсальность и общность.
Процедурные знания содержат в явном виде описание процедур, т.е. яв- ляются самоинтерпретируемыми. В этих процедурах могут быть запрограмми- рованы действия, связанные с изменением предметной области и ее модели в базе знаний. При этом текущее состояние представляется в виде набора спе- циализированных процедур, обрабатывающих определенный участок базы знаний. Это позволяет отказаться от хранения описаний всех возможных со- стояний предметной области, требуемых для работы системы ИИ, и ограни- читься хранением исходного состояния и процедур, обеспечивающих преобра-
зование модели предметной области, т.е. порождение всех других состояний из исходного. Процедурные представления реализуются, как правило, специаль- ными языками программирования (например, PLANNER [19]). Включение се- мантики в базу знаний позволяет повысить эффективность поиска решений с использованием базы знаний. Но это достигается ценой специализации базы знаний, ориентации ее на особенности решаемых задач. Процедурные знания уступают декларативным в возможностях для накопления и коррекции знаний.
Разделение методов представления знаний на процедурные и декларатив- ные является в определенной степени условным. "Чисто" декларативные или процедурные знания практически не используются. Пример чисто процедурно- го знания – программа, написанная на алгоритмическом языке (но не объектно- ориентированном). Пример чисто декларативного знания – реляционная база данных. В конкретных реализациях баз знаний присутствуют элементы и тех и других способов представления знаний.
Наиболее распространенными вариантами декларативного представления являются семантические сети и фреймы. Иногда говорят о реляционных базах знаний, не отличая их существенно от соответствующих баз данных. Среди процедурных методов представления знаний выделяются средства работы со списковыми структурами и исчисление высказываний первого порядка.
По степени формализации различают логические и эвристические методы представления знаний. Логические методы могут быть описаны в виде фор- мальной теории (системы)
S=
,
17
где: B
– алфавит,
F – формулы-факты,
A – формулы-аксиомы,
R – правила-вывода.
Примеры логических методов представления знаний: исчисление выска- зываний (логика предикатов) 1-го порядка, различные псевдофизические логи- ки, продукционные модели представления знаний.
Эвристические методы представления знаний основаны на применении ряда приемов, принципов или подходов для описания знаний в удобном для понимания человеком или обработки компьютером виде. Примерами таких ме- тодов являются: семантические сети, фреймы, объектно-ориентированное представление. Эвристические методы являются более высокоуровневыми ме- тодами представления знаний и, как правило, могут быть описаны с помощью какого-либо логического метода с потерей ряда свойств, например, таких как наглядность, обозримость, универсальность.
Несколько в стороне от логических и эвристических методов представле- ния и обработки знаний находятся нейронные сети. Их обычно не относят к методам инженерии знаний, а рассматривают в рамках нейрокибернетики
(нейроинформатики). Их принципиальным отличием от методов инженерии знаний является то, что в них знания содержатся не в формализованном и ло- кализованном виде, а в виде состояния множества нейроподобных элементов и распределены между этими элементами. Нейронная сеть обладает, как говорят,
голографическими свойствами, т.е. порча какого-либо элемента распределен- ного в них знания не приводит к порче всего знания, а всего лишь – к некото- рому ухудшению его характеристик.
2.2. Логика предикатов первого порядка
ЛОГИКА – искусство мыслить
и рассуждать в строгом со-
ответствии с ограниченно-
стью и несостоятельностью
человеческих заблуждений.
А. Бирс. Словарь Сатаны
Логика предикатов является развитием алгебры логики (или логики выска- зываний). В логике высказываний для обозначения фактов используются буквы
(имена или идентификаторы), не имеющие структуры, и принимающие значе- ния "1" или "0" ("да" или "нет"). В логике предикатов факты обозначаются n- арными логическими функциями – предикатами F(x
1
,x
2
,...,x m
), где F – имя пре- диката (функтор) и x i
– аргументы предиката. Имена предикатов неделимы, т.е.
являются так называемыми атомами. Аргументы могут быть атомами или функциями f(x
1
,x
2
,...,x m
), где f – имя функции, а x
1
,...,x m
, так же как и аргументы
18
предикатов являются переменными или константами предметной области. В
результате интерпретации (по-другому, конкретизации) предиката функторы и аргументы принимают значения констант из предметной области (строк, чисел,
структур и т.д.). При этом следует различать интерпретацию на этапе описания предметной области (создания программ и баз знаний) и на этапе решения за- дач (выполнения программ с целью корректировки или пополнения баз зна- ний). В дальнейшем при работе с предикатами мы будем иметь дело с резуль- татом их интерпретации в первом смысле, т.е. с их привязкой к некоторой предметной области.
Предикат с арностью n > 1 может использоваться в инженерии знаний для представления n-арного отношения, связывающего между собой n сущностей
(объектов) – аргументов предиката. Например, предикат отец("Иван", "Петр
Иванович") может означать, что сущности "Иван" и "Петр Иванович"
связаны родственным отношением, а именно, последний является отцом Ивана или на- оборот. Уточнение семантики этого предиката связано с тем, как он использу- ется, т.е. в каких операциях или более сложных отношениях он участвует и ка- кую роль в них играют его 1-й и 2-й аргументы. Предикат компьютер(память,
клавиатура, процессор, монитор) может обозначать понятие "компьютер" как отношение, связывающее между собой составные части компьютера.
Предикат с арностью n=1 может представлять свойство сущности (объек- та), обозначенного аргументом или характеристику объекта, обозначенного именем предиката. Например, кирпичный(дом), оценка(5), улица("Красный проспект"), дата_рождения("1 апреля 1965 г."), быстродействие("1 Мфлопс").
Предикат с арностью n=0 (без аргументов) может обозначать событие,
признак или свойство, относящееся ко всей предметной области. Например,
"конец работы".
При записи формул (выражений) помимо логических связок "конъюнк- ция" (&), "дизъюнкция" (
∨
), "отрицание" (
¬
), "следование" ("импликация")
(
→
), заимствованных из логики высказываний, в логике предикатов использу- ются кванторы всеобщности (
∀
) и существования (
∃
). Например, выражение
∀
(x,y,z) (отец(x,y) & (мать(x,z))
→
родители(x,y,z) означает, что для всех зна- чений x,y,z из предметной области справедливо утверждение "если y – отец и z
– мать x , то y и z – родители x; выражение (
∃
x) (студент(x) & долж- ность(x,"инженер") означает, что существует хотя бы один студент, который работает в должности инженера.
Переменные при кванторах называются связанными переменными в отли- чие от свободных переменных. Например, в выражении
(
∀
x) (владелец(x,y)
→
частная_собственность(y))
x – связанная переменная, y – свободная переменная.
Логика предикатов 1-го порядка отличается от логик высших порядков тем, что в ней запрещено использовать выражения (формулы) в качестве аргу- ментов предикатов.
19
Решение задач в логике предикатов сводится к доказательству целевого утверждения в виде формулы или предиката (теоремы), используя известные утверждения (формулы) или аксиомы.
В конце 60-х годов Робинсоном для доказательства теорем в логике пре- дикатов был предложен метод резолюции, основанный на доказательстве "от противного". Целевое утверждение инвертируется, добавляется к множеству аксиом и доказывается, что полученное таким образом множество утверждений является несовместным (противоречивым). Для выполнения доказательства ме- тодом резолюции необходимо провести определенные преобразования над множеством утверждений, а именно, привести их к совершенной конъюнктив- ной нормальной форме (СКНФ).
Приведение формул к СКНФ состоит из следующих этапов, легко реали- зуемых на ЭВМ.
1. Устранение импликации с помощью замены ее на отрицание и дизъ- юнкцию применением формулы
A
→
B = A \/ B;
2. Ограничение области действия символов отрицания, т.е. продвижение отрицания внутрь формулы с помощью закона де Моргана, т.е. применяя фор- мулы
¬
= ¬ ∨ ¬
( & ) (
) (
)
A BAB ;
¬ ∨
= ¬
¬
(
) (
)&(
)
A BAB ;
¬ ∃
= ∀ ¬
¬ ∀
= ∃ ¬
( ) ( ) (
)
( );
(
) ( ) ( )
( ).
x F xxF xx F xxF x3. Стандартизация или разделение переменных.
На этом этапе в каждой формуле переименовываются
связанные перемен- ные так, чтобы они стали уникальными для каждого квантора, с которым они связаны. Это делается на основании того факта, что связанную переменную в области действия квантора можно заменить на любую другую, не встречаю- щуюся переменную, не изменив этим значение истинности формулы.
Например, (
∀
x) (P(x) \/ Q(y)) & (
∀
x) (F(x))
преобразуется в (
∀
x) (P(x) \/ Q(y)) & (
∀
z) (F(z)).
4. Исключение кванторов существования.
На этом этапе квантор существования заменяется так называемой функци- ей Сколема g(x) или перечислением предикатов с аргументами – константами из области определения переменной-аргумента.
Примеры преобразования:
исходная формула
(
∀
x) y
(
∀
x) (
∀
y) z
(
∃
x) (F(x))
результирующая формула g(x)
g(x,y)
F(a),F(b)...,
20
где a и b – константы. Функция Сколема задает отображение областей опреде- ления других переменных на область определения переменной, связанной с квантором существования.
5. Вынесение кванторов всеобщности в начало формулы.
6. Исключение кванторов всеобщности.
Исключение достигается просто удалением кванторов в предположении,
что если в формуле есть некоторая переменная x, то формула справедлива для всех ее значений из области определения.
7. Собственно приведение формулы к СКНФ применением закона дистри- бутивности
A
B C
A B
A C
∨
=
∨
∨
( & ) (
)&(
) .
8. Исключение символов &. Это достигается заменой формулы вида
(A&B) на множество формул вида {A,B}.
Предположим надо привести к СКНФ формулу
)]}}
(
)
,
(
)[
(
&
))]
,
(
(
)
(
)[
{(
)
(
){
(
y
P
y
x
Q
y
y
x
f
P
y
P
y
x
P
x
→
∀
¬
→
∀
→
∀
Исключив импликацию, получим
(
){
( ) {(
)[
( )
( ( , ))]& (
)[
( , )
( )]}}
∀ ¬
∨ ∀ ¬
∨
¬ ∀ ¬
∨
x
P x
y
P y
P f x y
y
Q x y
P y
Продвинув внутрь отрицание, получим
(
){(
( )&{(
)[
( )
( ( , ))]&[( )[ ( , )&
( )]}}
∀
¬
∀ ¬
∨
∃
¬
x
P x
y
P y
P f x y
y Q x y
P y
Разделив переменные, получим
(
){(
( )&{(
)[
( )
( ( , ))]&[(
)[ ( , )&
( )]}}.
∀
¬
∀ ¬
∨
∃
¬
x
P x
y
P y
P f x y
w Q x w
P w
Заменив переменную w на сколемовскую функцию g(x), исключим кван- тор существования и получим
(
){(
( )&{(
)[
( )
( ( , ))]&[ ( , ( ))&
( ( ))]}}.
∀
¬
∀ ¬
∨
¬
x
P x
y
P y
P f x y
Q x g x
P g x
Вынесем кванторы всеобщности в начало формулы и получим
(
)(
){(
( )&{[
( )
( ( , ))]&[ ( , ( ))&
( ( ))]}}.
∀ ∀
¬
¬
∨
¬
x
y
P x
P y
P f x y
Q x g x
P g x
Применив закон дистрибутивности, получим
(
)(
){[ ( )
( )
( ( , ))]&[
( )
( , ( ))]&
&[
( )
( ( ))]}.
∀ ∀
∨ ¬
∨
¬
∨
¬
∨ ¬
x
y
P x
P y
P f x y
P x
Q x g x
P x
P g x
Исключив кванторы всеобщности и заменив конъюнкцию формул их множеством, получим множество следующих формул (предложений):
¬
∨ ¬
∨
¬
∨
¬
∨ ¬
P x
P y
P f x y
P x
Q x g x g x
P x
P g x
( )
( )
[ ( , )],
( )
[ , ( , ( )],
( )
[ ( )].
21
Логика предикатов 1-го порядка легла в основу языков логического про- граммирования, самым распространенным из которых является Prolog (различ- ные его диалекты). Точнее, язык Prolog основан на модифицированной логике предикатов 1-го порядка (логике Хорна или логике дизъюнктов). Логика Хорна отличается от классической логики предикатов 1-го порядка тем, что она опе- рирует уже почти преобразованными к применению метода резолюции форму- лами без кванторов всеобщности и существования, представляющими собой множество дизъюнктов (предложений или клауз Хорна). "Почти" объясняется тем, что клаузы Хорна
содержат импликацию и выглядят какAB→
,
где A
– предикат,
B – предикат или конъюнкция или дизъюнкция предикатов (такое пред- ставление части B предложения возможно, т.к. конъюнкция и дизъюнкция рас- сматриваются как частные случаи предикатов).
Доказательство некоторого утверждения (целевого предиката) в логиче- ском программировании сводится к процессу унификации, с помощью которо- го происходит рекурсивный перебор всех возможных подстановок значений переменных в целевом предикате, управляемый ограничениями, заданными множеством предложений. Множество предложений обычно в Прологе назы- вается базой данных Пролога. База данных состоит из предложений-правил вывода вида
AB→
и предложений-фактов, представляющих собой отдельные предикаты. При этом в предикатах-фактах параметрами могут только констан- ты, а в предикатах-правилах – константы и неконкретизированные перемен- ные. Последнее относится и к целевому предикату. В этом случае, если пара- метром является переменная, то это означает, что ее значение необходимо най- ти при доказательстве целевого предиката.
Унификация основана на сравнении (сопоставлении с образцом) целевого предиката, который надо доказать, с предикатами-фактами и предикатами- правилами из базы данных Prolog-программы. При этом успешность сопостав- ления двух предикатов определяется следующими условиями, упорядоченными в порядке их проверки:
•
имена предикатов совпадают;
•
количество параметров у предикатов совпадает;
•
каждая пара сравниваемых параметров сопоставима.
Последнее условие для некоторой пары параметров истинно при трех ва- риантах:
•
параметры являются константами (любого типа) и они равны;
•
один параметр из пары является константой, а другой – переменной, в этом случае переменной присваивается значение константы;
•
оба параметра являются неконкретизированными переменными, в этом случае эти переменные становятся "связанными", т.е. в дальнейшем при интер- претации программы рассматриваются как одна и та же переменная.
22
При унификации целевого предиката с правилом, сопоставлению подвер- гается сначала левая часть правила, а затем, в случае успешной унификации,
последовательно
проверяются предикаты, находящиеся в правой части. Т.е.
правило в Прологе с точки зрения унификации рассматривается как предикат с именем "::=" (импликация) и с параметрами A и B, а B рассматривается в свою очередь как предикат "," (конъюнкция) или ";" (дизъюнкция) с параметрами- предикатами правой части правила.
Cледующий фрагмент программы (на Эдинбургской версии Пролога)
описывает поведение гипотетического робота-манипулятора и может являться частью программного обеспечения его системы управления.
/* описание объектов, с которыми работает робот */
куб("кубик", 10).
цилиндр("прут", 100, 3).
/* описание их местоположения */
объект("кубик", "стол").
объект("прут", "коробка").
/* описание некоторых действий робота (команд) */
взять(_):- в_схвате(_), /* проверка занятости схвата */
write("Схват занят"),
nl,
!.
взять(X):- объект(X,Y), /*определение положения объекта X*/
повернуть_к(Y),
выбрать_объект(X,Coord_X,Coord_Y),
позиционировать_схват(Coord_X,Coord_Y),
взять, /* включение схвата */
assert(в_схвате(X)). /*запоминание что в схвате*/
положить(X,Y):- в_схвате(Z), /* определение, что в схвате*/
Z<>X,
write("Схват занят"),
nl,
!.
положить(X,Y):- в_схвате(X),
повернуть_к(Y),
центр(Y, Coord_X,Coord_Y),
позиционировать_схват(Coord_X,Coord_Y),
отпустить,
retract(в_схвате(X)),
!.
положить(X,Y):- not(в_схвате(_)),
объект(X,Y),
write("Объект "),
23
write(X),
write(" уже находится в "),
write(Y),
nl,
!.
положить(X,Y):- not(в_схвате(_)),
взять(X),
положить(X,Y).
Здесь операторы (встроенные предикаты) assert(X) и retract(X) использу- ются для добавления и удаления предиката-факта X, соответственно, оператор
! используется для аннулирования попыток альтернативной унификации при неуспешной текущей унификации.
К недостаткам логики предикатов 1-го порядка как метода представления знаний можно отнести следующее:
•
монотонность логического вывода, т.е. невозможность пересмотра по- лученных промежуточных результатов (они считаются фактами, а не гипотеза- ми);
•
невозможность применения в качестве параметров предикатов других предикатов, т.е. невозможность формулирования знаний о знаниях;
•
детерминированность логического вывода, т.е. отсутствие возможности оперирования с нечеткими знаниями.
Но логику предикатов 1-го порядка можно использовать как основу для конструирования более сложных и удобных логических методов представления знаний. В этом качестве она используется в модальных и псевдофизических логиках.