Теория концептуальной зависимости
Рис. 6.6. Основные концептуальные зависимости, использованные в теории (1974)
Рассмотрим примеры нескольких предложений и их записи с помощью теории концептуальной зависимости:
В примере 1 буква P над связью исполнителя и действия указывает на прошедшее время в предложении.
Достоинства теории:
1) уменьшение проблем, связанных с двусмысленностью естественного языка;
2) представление синтаксически идентичными графами предложений с одинаковым смыслом.
Недостатки:
1) невозможность алгоритмизации процесса преобразования предложений в каноническую форму;
2) вычислительная сложность преобразования предложений в набор примитивов низкого уровня;
3) сами примитивы не позволяют охватить многие понятия.
Сценарии первоначально были предложены в 1977 году Шенком и Абельсоном (Roger Schank; Robert P. Abelson) как средство для организации структур концептуальной зависимости в описаниях типовых ситуаций.
Далее рассмотрим пример сценария посещения ресторана. Каждый сценарий включает следующие компоненты:
Сценарий посещения ресторана можно представить в следующем виде.
Таким образом, программа, построенная на основе сценариев, могла понимать текст на естественном языке в рамках рассматриваемой ситуации.
Позднее Шенком была создана подобная программа, способная интерпретировать сообщения, поступающие по каналам новостей.
Другой пример описания абстрактного образа:
Комната – это жилое помещение с четырьмя стенами, полом, потолком, окнами и дверью, площадью 6—25 м2.
Из этого описания также ничего нельзя убрать (например, убрав окна, мы получим уже чулан, а не комнату), но в приведенном описании есть незаполненные значения для некоторых атрибутов — например, количество окон, цвет стен, высота потолка, покрытие пола и др.
Далее приведем строгое определение фрейма.
Выделяют следующе виды фреймов, в зависимости от области их хранения:
1) фреймы-образцы (хранятся в базе знаний);
2) фреймы-экземпляры (создаются для отображения реальных ситуаций на основе поступающих данных).
Также фреймы разделяют на виды, в зависимости от объекта, описываемого фреймом:
1) фреймы-структуры (используются для обозначения объектов и понятий). Например, фрейм понятия залог или фрейм понятия вексель.
2) фреймы-роли (используются для обозначения профессий, социальных и социально-демографических ролей). Например, фрейм профессии менеджера или фрейм, описывающий клиента.
3) фреймы-сценарии (типовая структура для некоторого действия, понятия, события). Например, фрейм-сценарий для события – празднования дня рождения ребенка.
4) фреймы-ситуации (используется для описания обстановки, ситуации, обстоятельств). Например, фрейм, описывающий ситуацию тревоги, или фрейм, описывающий аварию.
Рассмотрим следующий пример сети фреймов.
На верхнем уровне иерархии находится фрейм, содержащий наиболее общую информацию, истинную для всех остальных фреймов.
Фрейм «Ученик» имеет ссылки на вышестоящие фреймы – «Ребенок», «Человек». Поэтому на вопрос: «Может ли ученик мыслить?» - ответ будет положительным, так как этим свойством обладает вышестоящий фрейм «Человек».
Например, возраст из фрейма «Ученик» не наследуется из вышестоящего фрейма «Ребенок», так как это же свойство указано в самом фрейме «Ученик».
Связи AKO иногда обозначают как IS-A. В русскоязычном варианте название не изменяется (связь «это»), смысл связей остается тем же.
Рассмотрим другое представление в виде взаимосвязанных фреймов:
Иногда структуру фрейма представляют в более подробном виде:
Слот фрейма может содержать не только конкретное значение, но процедуру, позволяющую вычислить значение слота по заданному алгоритму. Также слот может хранить правила, которые вызываются при необходимости вычисления значения слота.
Кроме этого, слоты могут включать компонент, называемый фасетом, который задает диапазон или перечень возможных значений слота.
Структура данных фрейма может содержать следующие атрибуты:
1) имя фрейма
2) имя слота (должно быть уникальным в пределах одного фрейма).
Примеры имен системных слотов: IS-A, HASPART и др.
3) указатели наследования (показывают, какую информацию об атрибутах слотов из фрейма верхнего уровня наследуют слоты с аналогичными именами в данном фрейме).
– U (Unique) — значение слота не наследуется;
– S (Same) — значение слота наследуется;
– R (Range) — значения слота должны находиться в пределах интервала значений, указанных в одноименном слоте родительского фрейма;
– O (Override) — при отсутствии значения в текущем слоте оно наследуется из фрейма верхнего уровня.
4) указатель типа данных (тип значения слота). Например, вещественное число, целое число, логический тип, фрагмент текста, таблица и др.
5) значение слота (должно соответствовать указанному типу данных и условию наследования).
6) демоны. Демон – процедура, которая автоматически вызывается при изменении значения какого-то определенного слота.
Основные типы демонов:
– IF-NEEDED (запускается, если в момент обращения к слоту, значение слота не было установлено).
– IF-ADDED (запускается при попытке изменения значения слота).
– IF-REMOVED (запускается при попытке удаления значения слота).
– IF-DEFAULT (запускается по умолчанию).
7) присоединенная процедура (запускается по сообщению, переданному из другого фрейма). Присоединенная процедура может использоваться в качестве значения слота.
Использование в системах на основе фреймов такого понятия, как демон,
позволяет явно выразить отличия от систем на основе семантических сетей – пока демон неактивен, фреймы практически совпадают с семантическим сетями; однако автоматическая активизация демона при наступлении определенного события значительно расширяет возможности фреймов и отличает их от семантических сетей.
Рассмотрим фрагмент описания из "мира блоков" (рис. 2.1) в виде фреймов.
Рис. 2.1."Мир блоков"
(frame (name (Cube))
(isa (Block World))
(length (NULL))
(width (IF-DEFAULT (use length)))
(height (IF-DEFAULT (use length))))
(frame (name (B1))
(isa (Cube))
(color (red))
(length (80)))
(frame (name (B2))
(isa (Cube))
(color (green))
(length (65))
(who_put (value (NULL))
(IF_NEEDED (askuser))))
Слот isa указывает на то, что объекты B1 и B2 являются подтипом объекта Cube и наследуют его свойства, а именно, length = width = height.
Демон IF_NEEDED запускается автоматически, если понадобится узнать, кто поставил B2 на стол. Полученный ответ будет подставлен в значение слота who_put.
Недостатки фреймовых систем:
– высокая сложность;
– малая производительность работы механизма вывода;
– высокая трудоемкость внесения изменений в родовую иерархию.
Достоинства фреймов:
– наглядность представления знаний;
– гибкость теории фреймов;
– согласованность с современными представлениями о хранении информации в памяти человека.
В целом, использование фреймов положило начало движению от исключительно декларативных подходов к представлению знаний о предметной области в сторону использования процедур, манипулирующих знаниями.
В системах на основе фреймов знания представляются как с помощью принципов классификации понятий, построенных с использованием наследования и значений по умолчанию, так и с помощью вызова набора процедур, манипулирующих понятиями.
Однако формализм фреймов не может быть эффективно использован самостоятельно для организации полной вычислительной модели, реализующей
все значимые элементы интеллектуальной системы. Например, с помощью
фреймов неудобно задавать правила выбора процедур, подходящих для решения определенной проблемы. Для этой цели лучше использовать продукционные системы. Кроме того, фреймы сами по себе не могут ответить на вопрос:
достигнута ли цель (найдено ли решение) в ходе работы системы.
Таким образом, мощь формализма фреймов наилучшим образом выявляется в том случае, когда они используются совместно с каким-нибудь иным методом представления знаний.