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