Фреймовая модель знаний
В основе теории фреймов лежит фиксация знаний путем сопоставления новых фактов с рамками, определенными для каждого объекта в сознании человека.
Структура в памяти компьютера, представляющая эти рамки, называется фреймом. Все фреймы взаимосвязаны и образуют единую фреймовую систему, в которой объединены и процедурные знания. Каждый фрейм описывает один концептуальный объект. Конкретные свойства этого объекта и факты, относящиеся к нему, описываются в структурных элементах данного фрейма, называемых слотами.
В состав слота входят
-
имя слота,
-
указатель наследования,
-
указатель типа данных,
-
значение слота,
-
определения демонов,
-
присоединенная процедура.
Имя слота должно быть уникальным во фрейме, к которому он принадлежит. Ряд имен слотов резервируется для служебных целей (для редактирования базы знаний, управления выводом). Среди таких слотов, называемых системными, отметим
-
слот, указывающий родительский фрейм данного фрейма,
-
слот со списком дочерних фреймов,
-
слоты для ввода имени пользователя, определяющего фрейм, дат создания и модификации фрейма, комментария.
Указатель наследования касается только фреймовых систем иерархического типа, основанных на отношениях «абстрактное-конкретное». В простейшем случае позволяет разрешить или запретить перекрытие неопределенного значения данного слота на значение слота с тем же именем из родительского фрейма.
Указатель типа данных определяет тип значения слота:
-
integer, real, bool, text,
-
list, table, expression – список, таблица, выражение,
-
LISP – присоединенная процедура,
-
frame –указатель (имя) другого фрейма,
-
и т.д.
Значением слота может быть практически что угодно: числа или математические соотношения, тексты на естественном языке или программы, правила вывода или ссылки на другие слоты данного фрейма или других фреймов. В качестве значения слота может выступать набор слотов более низкого уровня, что позволяет во фреймовых представлениях реализовать «принцип матрешки».
Демон – это процедура, разрабатываемая пользователем, но вызываемая автоматически при выполнении различных операций над значением слота. Типичные демоны:
-
if-needed – вызывается, если в момент обращения к слоту его значение не было определено,
-
if-added – вызывается при подстановке в слот значения,
-
if-removed – вызывается при стирании значения слота.
Присоединенная процедура разрабатывается пользователем и вызывается по сообщению, переданному из другого фрейма. Демон является разновидностью присоединенной процедуры.
Приведем упрощенный пример фрейма:
Служащий
( ФИО (Иванов И. И.),
Должность (инженер),
Категория (2)
)
Если значения слотов не определены, то фрейм называют фреймом-прототипом, в противном случае – экземпляром фрейма.
В моделях представления знаний фреймами объединяются не только декларативные, но и процедурные знания, носителями которых являются демоны и присоединенные процедуры. Они позволяют запрограммировать любую процедуру вывода из фреймовой сети.
Механизм управления выводом организуется следующим образом. Сначала запускается одна из присоединенных процедур некоторого фрейма, называемого образцом. Образец – это, по сути, фрейм-прототип, т.е. у него заполнены не все слоты, а только те, которые описывают связи данного фрейма с другими. Затем в силу необходимости, посредством пересылки сообщений, последовательно запускаются присоединенные процедуры других фреймов и, таким образом, осуществляется вывод.
Фреймовую модель без механизма присоединенных процедур, а следовательно, и без механизма пересылки сообщений, часто используют как базу данных системы продукций.
Из систем программирования, поддерживающих концепцию фреймов, отметим язык представления знаний KRL (Knowledge Representation Language) и язык представления фреймов FRL (Frame Representation Language).
Преимущества фреймовых систем над продукционными:
-
знания организованы на основе концептуальных объектов;
-
допускается комбинация представления декларативных (как устроен объект) и процедурных (как взаимодействует объект) знаний;
-
иерархия фреймов вполне соответствует классификации понятий, привычной для восприятия человеком;
-
система фреймов легко расширяется и модифицируется.
Трудности применения фреймовой модели знаний в основном связаны с программированием присоединенных процедур.