Фреймы
Этот термин введен М. Минским для обозначения минимальной структуры, описывающей некоторое понятие или объект. Фрейм имеет имя (название) и состоит из частей, обычно называемых слотами; изображается фрейм в виде цепочки:
Фрейм = <слот 1><слот 2>…<слот N>.
Слот представляет собой пару атрибут (имя слота) — значение. В качестве значения могут выступать константные факты, выражения, содержащие переменные, ссылки на другие слоты, ссылки на фреймы и т. п.
Поэтому фрейм является рекурсивной структурой.
Рассмотрим в качестве примера фрейм "Битва". Цепочка этого фрейма выглядит так:
Битва = <кто?><с кем?><когда?><где?><результат>.
Представленный фрейм называется фреймом-прототипом. Во фреймах такого вида слоты имеют переменные значения. Например:
Битва = <Герой><Антигерой><утром><в чистом поле><победил>.
В этом случае, по крайней мере, слоты Герой и Антигерой - переменные, их значения могут уточняться. В результате такого уточнения получается фрейм-экземпляр:
Битва = <Царевич><Кощей Бессмертный><утром><в чистом поле><победил>.
Исключение из фрейма любого слота делает его принципиально неполным, иногда бессмысленным и не соответствующим названию фрейма.
Для автоматизированной обработки фреймов создан ряд языков, таких, например, как KPL, FPL. Близкое к понятию фрейма понятие объекта реализовано в объектно-ориентированном программировании.
Частным случаем фреймов являются скрипты, представляющие собой описание стереотипного сценария действия с участием определенных объектов. Скрипты связаны с текущей культурой и необходимым знанием для понимания таких предложений "Я вошел в ресторан, официантка принесла мне меню". Они могут вызывать другие скрипты и обладают большими, чем фреймы, возможностями для описания динамических аспектов знания.