Фреймовая модель представления знаний

Фреймовая модель основана на концепции Марвина Мински (Marvin Minsky) – профессора Массачусетского технологического института, основателя лаборатории искусственного интеллекта, автора ряда фундаментальных работ. Фреймовая модель представляет собой систематизированную психологическую модель памяти человека и его сознания.

Фрейм (англ. frame – рамка, каркас) – структура данных для представления некоторого концептуального объекта. Информация, относящаяся к фрейму, содержится в составляющих его слотах.

Слот (англ. slot – щель, прорезь) может быть терминальным (листом иерархии) или представлять собой фрейм нижнего уровня.

Каждый фрейм, как показано на рисунке ниже, состоит из произвольного числа слотов, причем несколько из них обычно определяются самой системой для выполнения специфических функций, а остальные определяются пользователем.

Пояснение:

  • имя фрейма (имя фрейма) – это идентификатор, присваиваемый фрейму. Фрейм должен иметь имя, единственное в данной фреймовой модели (уникальное имя);
  • имя слота (имя слота) – это идентификатор, присваиваемый слоту. Слот должен иметь уникальное имя во фрейме, к которому он принадлежит. Обычно имя слота не несет никакой смысловой нагрузки и является лишь идентификатором данного слота, но в некоторых случаях оно может иметь специфический смысл;
  • указатель наследования – только для фреймовых моделей иерархического типа; они показывают, какую информацию об атрибутах слотов во фрейме верхнего уровня наследуют слоты с такими же именами во фрейме нижнего уровня;
  • указатель атрибутов – указатель типа данных слота.

    К таким типам относятся: (указатель), (целое), (вещественное), (булево), (присоединенная процедура), (текст), (список), (таблица), (выражение) и другие;

  • значение слота – значение, соответствующее типу данных слота и удовлетворяющее условиям наследования;
  • демон – процедура, автоматически запускаемая при выполнении некоторого условия. Демоны запускаются при обращении к конкретному слоту фреймовой модели. Например, демон запускается, если в момент обращения к слоту его значение не было установлено, запускается при подстановке в слот значения, запускается при стирании значения слота.

Пример фреймовой модели иерархического типа представлен на рисунке ниже:

Фреймы образуют иерархию. Иерархия во фреймовых моделях порождает единую многоуровневую структуру, описывающую либо объект, если слоты описывают только свойства объекта, либо ситуацию или процесс, если отдельные слоты являются именами процедур, присоединенных к фрейму и вызываемых при его актуализации.

Формально фрейм – это тип данных вида:

Фреймы подразделяются на:

  • фрейм-экземпляр – конкретная реализация фрейма, описывающая текущее состояние в предметной области;
  • фрейм-образец – шаблон для описания объектов или допустимых ситуаций предметной области;
  • фрейм-класс – фрейм верхнего уровня для представления совокупности фреймов образцов.

Состав фреймов и слотов в каждой конкретной фреймовой модели может быть разный, однако в рамках одной системы целесообразно единое представление для устранения лишнего усложнения.

Разнотипные объекты или объекты, соответствующие концепции «множественности миров», заключающейся, к примеру, в том, что лошадь – животное бескрылое для одного (реального) мира и одновременно крылатое (Пегас в мифическом мире) для другого, могут описываться отличающимися друг от друга фреймами.

В целом фреймовая модель допускает представление всех свойств декларативных и процедурных знаний. Глубина вложенности слотов во фрейме (число уровней) зависит от предметной области и языка, реализующего модель.

Фреймовая модель представления знаний

Фреймы используются в системах искусственного интеллекта (например, в экспертных системах) как одна из распространенных форм представления знаний.

Фрейм — это минимально возможное описание сущности какого-либо явления, события, ситуации, процесса или объекта.Минимально возможноеозначает, что при дальнейшем упрощении описания теряется его полнота, оно перестает определять ту единицу знаний, для которой оно предназначено.

Другими словами, фрейм–это структура,описывающая фрагмент

базы знаний, который в какой-то степени рассматривается и обрабатывается обособленно от других фрагментов.Другие фрагменты,с

которыми он связан, во фрейме представлены только их именами (идентификаторами) так же как и он в них.

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

Понятие фрейма неразрывно связано с абстрагированием и построением иерархии понятий.

Фрейм имеет почти однородную структуру и состоит из стандартных единиц, называемых слотами. Каждая такая единица — слот

— содержит название и свое значение. Изображается фрейм в виде цепочки:

Фрейм = <слот 1>, <слот 2>, … , <слот N>.

Фреймы подразделяются на два типа:

— фреймы-прототипы (или классы),

— фреймы-примеры (или экземпляры).

Фреймы-прототипы используются для порождения фреймов-примеров.

В качестве примера рассмотрим фрейм для понятия «взятие»:

фрейм «Взятие»: (Субъект, X1);

(Объект, Х2);

(Место, Х3);

(Время, Х4);

(Условие, Х5).

В этом фрейме указаны имена слотов (субъект, объект и т.д.), но вместо их значений стоят переменные (X1, Х2 и т.д.). Этот фрейм означает, что взятие осуществляет X1 в месте Х3 во время Х4, если выполнено условие Х5. Берет X1 нечто, обозначенное как Х2.

В качестве значения слота может выступать новый фрейм, что позволяет на множестве фреймов осуществлять иерархическую классификацию. Это очень удобное свойство фреймов, так как человеческие знания, как правило, упорядочены по общности.

Продукционная форма представления знаний

Основу продукционной модели составляют системы продукций.

Каждая продукция в наиболее общем виде записывается как стандартное выражение следующего вида:

«Имя продукции»: Идентификатор правила;

Область применимости (имя сферы);

Условие применимости ядра;

Ядро: если А, то В;

Постусловие.

Основная часть продукции — ее ядро имеет вид:

«Если А, то В»,

где А – посылка правила, В – заключение правила, имеющие разные значения.

Наиболее часто используемая форма интерпретации продукции – логическая, при которой A является множеством элементарных условий, связанных логическими связками «И», «ИЛИ» и «НЕТ», B – множеством элементарных заключений.

(выполняется B), если посылка A истинна.

Имя сферы указывает ту предметную область, к которой относятся знания, зафиксированные в данной продукции.В интеллектуальной системеможет храниться совокупность знаний (ее называют базой знаний), относящихся к разным областям (например, знания о различных заболеваниях человека или знания из различных разделов математики).

Рассмотренные модели представления знаний широко используются в современных интеллектуальных системах и прежде всего в экспертных системах. Каждая из форм представлений знаний может служить основой

7.1. Понятие фрейма и слота

В сложных семантических сетях, включающих множество понятий, процесс обновления узлов и контроль связей между ними становится затруднительным. При этом количество опосредованных родовидовых связей между понятиями резко возрастает.

Основная идея фреймового подхода к представлению знаний заключается в том, что все, что касается понятия или ситуации, не «размывается по сети», а представляется во фрейме.

Фреймом называется структура для описания понятия или ситуации, состоящая из характеристик этой ситуации и их значений.

Фрейм можно рассматривать как фрагмент семантической сети, предназначенный для описания понятий со всей совокупностью присущих им свойств. Так, например, понятие о деловом отчете в системе, основанной на фреймах, может иметь вид, аналогичный приведенному на рис. 7.1.


Рис. 7.1. Модель описания делового отчета.

Графически это выглядит аналогично семантической сети, но принципиальное отличие состоит в том, что каждый узел во фреймовой системе имеет обобщенную структуру, аналогичную представленной на рис. 7.2.


Рис. 7.2. Обобщенная структура фрейма.

Автор идеи фреймового подхода Марвин Минский дал такое определение:

«Фрейм – это структура данных, представляющая стереотипную ситуацию, вроде присутствия внутри жилой комнаты или сбора на вечеринку. К каждому фрейму присоединяется несколько видов информации. Часть информации о том, как использовать фрейм. Часть о том, чего можно ожидать далее, и что следует делать, если ожидания не подтвердятся».

Особенность фреймовых моделей представления знаний состоит в том, что все понятия, описываемые в каждом из узлов модели, определяются набором атрибутов и их значениями, которые содержатся в слотах фрейма.

Слот — это атрибут, который связывается с узлом в системе, основанной на фреймах.

Он является основной составляющей фрейма. Имя слота соответствует конкретному типу атрибута, а значением слота может быть:

  • экземпляр этого атрибута,
  • ссылка на другой фрейм
  • или фасет.

С каждым слотом может быть связана одна или несколько процедур, которые выполняются, когда изменяются значения слотов. Чаще всего со слотами связываются процедуры:

  • ЕСЛИ-ДОБАВЛЕНО (IF-ADDED) — выполняется в том случае, когда новая информация помещается в слот;
  • ЕСЛИ-УДАЛЕНО (IF-REMOVED) — выполняется при удалении информации из слота;
  • ЕСЛИ-НУЖНО (IF-NEEDED) — выполняется при запросе информация из слота в том случае, когда слот пуст.

Эти процедуры следят за изменением информации, приписываемой данному узлу, и проверяют, что при изменении тех или иных значений производятся соответствующие действия.

7.2. Фреймовые системы и их функционирование

Фреймовые системы позволяют использовать объектно-ориентированный подход к представлению знаний. Для иллюстрации работы этого класса систем основанных на знаниях, рассмотрим иерархию понятия отчета, структура которого была определена выше (рис. 7.1).

При этои наши представления и знания об объекте «Отчет» детализируем рядом понятий, которые определим через набор атрибутов и возможными типы их значений. Все атрибуты разместим в слотах фрейма, предусмотрев для каждого из них необходимые процедуры обработки (рис. 7.3). При этом допускается, что ряд слотов могут иметь значения по умолчанию (IF-DEFAULT).


Рис. 7.3. Функционирование фреймовой системы.

Каким же образом можно использовать таким образом организованные данные? Для примера рассмотрим случай, когда системе задан запрос:

«Мне нужен финансовый отчет о выполнении проекта по новой технологии».

Интерфейсная программа анализирует структуру модели и на основе фрейма–образца «Фин. отчет» добавляет в свою структуру новый пустой фрейм-экземпляр «Фин. отчет №_» (в примере это узел №3), а после его создания в слот «ТЕМА» этого фрейм-экземпляра, на основании исходного запроса, заносит текст «Проект по новой технологии».

Далее все происходит автоматически:

  1. Процедура «если–добавлено», связанная со слотом «ТЕМА», осуществляет поиск по своей базе данных руководителя этого проекта. Допустим, что его фамилия Иванов. Процедура вписывает его фамилию в слот «АВТОР» финансового отчета №3.
    Если руководитель этой темы не будет найден, в слот «АВТОР» будет наследовано значение класса, а именно текст «РУКОВОДИТЕЛЬ ПРОЕКТА».
  2. Процедура «если–добавлено», связанная со слотом «АВТОР», начинает выполняться, т.к. в слот только что было вписано новое значение. Эта процедура начинает составлять сообщение, чтобы отправить его Иванову, но тут же обнаруживает, что нет нужной даты исполнения.
  3. Процедура «если–добавлено», просматривая слот «ДАТА» и найдя его пустым, активирует процедуру «если–нужно», связанную с этим слотом. Эта процедура, анализируя текущую дату, например 09.05.13, решит, что «30 июня» ближайшее к ней окончание финансового квартала и впишет эту дату в слот «ДАТА».
  4. Теперь процедура «если–добавлено», связанная со слотом «АВТОР», найдет, что еще одно значение, которое нужно включить в сообщение, т.е. объем отчета, отсутствует. Слот «ОБЪЕМ» не связан с процедурами и ничем помочь не может. Однако выше узла № 3 существует узел общей концепции финансового отчета, содержащий значение объема.
    Процедура, используя концепцию наследования свойств класса, использует значение объема и составляет следующее сообщение: «Господин Иванов, подготовьте финансовый отчет по проекту новой технологии к 30 июня объемом 2 страницы».

Если в какой-то момент фамилия Иванов будет удалена из слота «АВТОР», то система автоматически отправит ему сообщение, что его отчет не требуется.

В рассмотренном примере заполнителями слотов фрейма служили конкретные экземпляры атрибутов, в том числе и заполняемые по умолчанию (IF-DEFAULT). Вместе с тем, заполнителями слотов могут быть:

  • имена других фреймов системы, на которые делается ссылка;
  • фасеты («агрегат», «диапазон», «по умолчанию» и др.).

Расширим рассмотренный выше пример для иллюстрации этих понятий (рис. 7.4.):


Рис. 7.4. Обобщенная фреймовая структура.

При определении фреймов фасет «агрегат» указывает на то, что должны быть заданы требуемые объекты, а «интервал» — на то, что должен быть выбран один из множества объектов. Эта информация используется интерфейсной программой при вводе информации.

7.3. Обобщенная структура фрейма

В общем случае фрейм представляет собой таблицу, структура и принципы организации которой являются развитием понятия отношения в реляционной модели данных. Обобщенная структура фрейма имеет вид, представленный в табл. 7.1.

Таблица 7.1

Структура фрейма

ИМЯ ФРЕЙМА
Имя слота Указатель наследования Указатель типа Значение слота
слот 1
слот 2
— — —
слот N

Слотом фрейма называется элемент данных для фиксации знаний об объекте, которому отведен данный фрейм. К числу основных параметров определения слотов относятся:

  • Имя слота.
    Каждый слот должен иметь уникальное имя во фрейме, к которому он принадлежит. Имя слота в некоторых случаях может быть служебным. Среди служебных имен могут быть:
    • имя пользователя, определяющего фрейм;
    • дата определения или модификации фрейма;
    • комментарий.
  • Указатель наследования.
    Он показывает, какую информацию об атрибутах слотов во фрейме верхнего уровня наследуют слоты с теми же именами во фрейме нижнего уровня. Типичные указатели наследования:
    • S (тот же) — слот наследуется с теми же значениями данных;
    • U (уникальный) — слот наследуется, но данные в каждом фрейме могут принимать любое значение;
    • I (независимый) — слот не наследуется.
  • Указатель типа данных.
    Типом данных, включаемых в слот, могут быть:
    • FRAME (указатель) — указывает имя фрейма верхнего уровня.
    • ATOM (переменная);
    • TEXT (текстовая информация);
    • LIST (список);
    • LISP (присоединенная процедура).

С помощью механизма управления исследованием по отношениям IS_A осуществляется автоматический поиск и определение значений слотов фрейма верхнего уровня и присоединенных процедур.

7.4. Языки представления знаний на основе фреймов

Специальные языки представления знаний в сетях фреймов позволяют эффективно строить промышленные системы. К числу таких языков следует отнести: FRL (Frame Representation Language), KRL (Knowledge Representation Language), фреймовая оболочка Kappa, PILOT/2 и другие программные средства.

Пример 1. В частности запись фрейма на языке FRL будет иметь вид:

(frame СТОЛ (purpose (value(размещение предметов для деятельности рук))) (type (value(письменный))) (colour (value(коричневый))) )

Пример 2. Запись фреймов на продукционно-фреймовом языке описания знаний PILOT/2, где фреймы John и Mary являются экземплярами фрейма-прототипа Person, будет иметь вид:

; ; ;

Основным преимуществом фреймов как модели представления знаний является то, что она отражает концептуальную основу ор­ганизации па­мяти чело­века, а также ее гибкость и наглядность. Наиболее ярко достоинства фреймовых систем представления знаний проявляются в том слу­чае, если родовидовые связи изменяются нечасто и предметная область насчитывает немного исключений.

В последние годы термин «фреймовый» часто заменяют термином «объектно-ориентированный». Этот подход является развитием фреймового представления. Шаблон фрейма можно рассматривать как класс, экземпляр фрейма — как объект. Языки объектно-ориентированного программирования (ООП) предоставляют средства создания классов и объектов, а также средства для описания процедур обработки объектов (методы).

Языки ООП, не содержащие средств реализации присоединенных процедур, не позволяют организовать гибкий механизм логического вывода, поэтому разработанные на них программы либо представляют собой объектно-ориентированные базы данных, либо требуют интеграции с другими средствами обработки знаний (например, с языком PROLOG). Объектно-ориентированная методология представления знаний реализована в таких системах, как G2, RTWorks.

Добавить комментарий

Закрыть меню