Нечто аналогичное применяют специалисты в области баз знаний, вводя механизм окна активизации знаний. С помощью этого «окна» активизируются определенные фрагменты базы знаний. Эти фрагменты используются для проверки условий в продукциях. Для вычленения фрагментов удобно воспользоваться условиями Р, активизирующими ту область продукционной системы, которая оказывается тесно связанной с фрагментом знаний, попавшим в окно активизации знаний. Постусловия позволяют управлять перемещением окна по полю памяти, а также его размерами. Управлять «окном» могут и специальные метапродукции, подобные тем, которые используются для приоритетного выбора из фронта готовых продукций.
Мы рассматривали до сих пор лишь такие продукции, в которых В обязательно следовало при активизации продукции. Однако весьма часто продукции приходится использовать в условиях правдоподобного вывода. Собственно говоря, правдоподобные схемы рассуждений из четвертой главы уже демонстрируют продукции такого сорта. Тем не менее, приведем еще один пример, взяв его из уже упоминавшейся экспертной системы MYCIN. Поскольку в ряде случаев система не может выдать рекомендацию со стопроцентной уверенностью, то она выдает ее с оценкой правдоподобности, о которой мы говорили в предшествующей главе.
При работе с правдоподобными продукциями применяются приемы, аналогичные описанным в четвертой главе. Вместо числового значения оценки правдоподобия в таких продукциях могут встречаться нечеткие квантификаторы, как в D-силлогизмах.
Кроме обычных приемов вывода (как достоверного, так и правдоподобного) для систем продукций могут использоваться и иные способы получения результатов рассуждений. Один из них – это получающий в последнее время распространение вывод на семантической сети.
Вывод на семантической сети
Семантические сети – это наиболее общая модель представления знаний об окружающем интеллектуальную систему мире и способах действий в нем. В самом общем виде семантическая сеть есть множество вершин, каждая из которых соответствует определенному понятию, факту, явлению или процессу, а между вершинами заданы различные отношения, изображаемые дугами. Дуги снабжены именами или описаниями, задающими семантику отношений. Вершины также помечены именами или описаниями, содержащими нужную для понимания семантики вершины информацию.
Прибегнем, как всегда, к наглядному примеру. Известный роман Э. Хемингуэя «Острова в океане» начинается так:
«Дом был построен на самом высоком месте узкой косы между гаванью и открытым морем. Построен он был прочно, как корабль, и выдержал три урагана. Его защищали от солнца высокие кокосовые пальмы, пригнутые пассатами, а с океанской стороны крутой спуск вел прямо от двери к белому песчаному пляжу, который омывался Гольфстримом».
Попробуем отобразить информацию, содержащуюся в этом отрывке, в виде семантической сети. Введем систему понятий, которым для удобства присвоим имена по первым буквам соответствующего слова текста: Д – дом, СВМ – самое высокое место, К – коса, Г – гавань, ОМ – открытое море, КП – кокосовые пальмы, С – солнце, КС – крутой спуск, ДВ – дверь, П – пляж, Г – Гольфстрим. Теперь будем постепенно строить семантическую сеть, вводя нужные отношения и описания. На рис. 33, а показан фрагмент семантической сети, соответствующей первым двум фразам текста. Отношение R1 есть тернарное отношение «быть между». Двойная дужка на нашем рисунке объединяет между собой обе части этого соотношения. «Узкая» входит в описание понятия «коса». Отношение R2 есть отношение «принадлежать». Таким образом фиксируется тот факт, что СВМ принадлежит «косе». Отношение R3 интерпретируется как «находиться на», а текст около вершины, соответствующей понятию «дом», принадлежит описанию этой вершины. На рис. 33, б показан фрагмент сети, соответствующий остальной части текста. Отношения, использованные здесь, интерпретируются следующим образом: R4 – «защищать от», R5 – «соединять», R6 – «омывать». Полное описание текста в виде семантической сети получится, если в построенных двух фрагментах объединить вершины, соответствующие понятию «дом».
Рис. 33.
При переходе имеется определенный произвол в представлении текста, касающийся формирования описаний. Те или иные сведения можно отражать прямо в структуре сети, а можно и в описаниях. Например, в нашем случае не было введено понятие «ураган» или понятие «пассат». Сведения о них содержатся в описаниях. Но можно было бы ввести для них специальные вершины и отразить эти понятия в структуре семантической сети.
В зависимости от того, какую смысловую нагрузку несут отношения в семантической сети, их можно классифицировать по различным типам. Если они, например, отражают каузальные отношения, то мы имеем дело с семантическими сетями, называемыми сценариями, а если эти отношения отражают связи по включению (родовидовые, отношения «состоять из», отношения «элемент-класс» и т.п.), то такие семантические сети будут задавать классификации. Если же, наконец, интерпретация отношений в сети такова, что они связывают между собой аргументы и значения функции, вычисляемые при задании значений аргументов, то такие семантические сети принято называть вычислительными моделями. В последнем разделе третьей главы мы также говорили о семантических сетях, выделив из них тот класс сетей, который связан с задачей вывода. Именно о таких сетях и будем говорить далее, а интересующихся аппаратом семантических сетей в более широком объеме отсылаем к источникам, которые указаны в комментарии к последнему разделу третьей главы.
Вывод на семантической сети можно представить в продукционной системе, в которой каждая продукция имеет вид Fr1
Fr2. Слева и справа в этой продукции стоят фрагменты семантической сети. В зависимости от типа продукции она может описывать изменения в базе знаний или результаты промежуточных шагов вывода в решателе. Но нас эти тонкости интересовать сейчас не будут, так как наша цель – описание самой процедуры вывода на семантической сети. В базах знаний реализация продукции Fr1Fr2 обычно называется процедурой поиска по образцу. В качестве образца при поиске выступает фрагмент Fr1. В зависимости от типа продукции ее выполнение может быть различным. Например, если в базе знаний найден фрагмент Fr1, то он удаляется из базы и в нее добавляется новый фрагмент Fr2. Или если в базе знаний обнаружен фрагмент Fr1, то в решателе утверждению, описываемому фрагментом Fr2, приписывается значение «истина». Возможны и иные варианты. Пусть для определенности тип продукции таков, что она описывает поиск в базе знаний некоторого фрагмента Fr1 и при обнаружении его исключает соответствующую информацию из базы, добавляя в нее информацию, описанную в Fr2.Рис. 34.
На рис. 34 показана такая продукция. Знак вопроса означает, что в качестве имени вершины может выступать любое из тех, которые имеются в базе знаний. Но если знак вопроса заменен какой-то вершиной, то в правой части продукции появляется такое же имя. Исходное состояние базы знаний показано на рис. 35, а. Для облегчения дальнейших рассуждений будем считать, что вершины семантической сети соответствуют некоторым персонажам, отношение R1 имеет смысл «быть отцом», отношение R2 – «быть матерью», а отношение R3 – «носить фамилию». Тогда продукция, показанная на рис. 34, может интерпретироваться следующим образом: «Если в базе знаний есть сведения о детях, для которых D является отцом, а К – матерью, то эту информацию из базы надо убрать, добавив в нее информацию о том, что все эти дети носят фамилию М».