Фрейм - структура данных (т.е. декларативное представление); предназначенная для представления некоторой стандартной ситуации. С каждым фреймом ассоциируется разнообразная информация (в том числе и процедуры), например информация о том, как пользоваться данным фреймом, каковы ожидаемые результаты выполнения фрейма, что делать, если ожидания не оправдались, и т.п. Фрейм можно представить в виде сети, состоящей из вершин и отношений (дуг). Верхние уровни фрейма фиксированы и представляют сущности, всегда истинные в ситуации, описываемой данным фреймом. Нижние уровни заканчиваются слотами, которые заполняются конкретной информацией при вызове фрейма. Можно провести аналогию между фреймами и описанием процедур в языках программирования.
Фрейм соответствует описанию процедуры, а означенный фрейм (фрейм-пример) соответствует вызову процедуры. Отличие фреймов от описаний процедур состоит в том, что фреймы могут вызываться не по имени, а по соответствию текущей ситуации той ситуации, которую описывает данный фрейм. Кроме того, фрейм, слоты и механизм их означивания описывают ситуацию в семантических (а не синтаксических) терминах и в метатерминах. С каждым слотом фрейма связаны описания условий, которые должны быть соблюдены, чтобы могло произойти означивание слота. В простейших случаях эти условия могут сводиться к указанию семантических категорий, которым должно удовлетворять значение слота. В более сложных случаях условия могут касаться отношений между значениями, выбираемыми для нескольких слотов.
|
|
Итак, фрейм-пример может быть представлен в виде следующей конструкции:
f = [<r1, v1>, <r2, v2>,.....,<rn, vn>],
где f - имя фрейма, r1 - имя слота, a vi - значение слота. В качестве значений слотов могут выступать имена других фреймов, что обеспечивает связь между фреймами.
Родственные фреймы связываются в систему фреймов. Система содержит описание зависимостей (причинных, временных и т.п.) между входящими в нее фреймами. Для выражения указанных зависимостей фреймы, входящие в некоторую систему, имеют общее множество слотов. Представление зависимостей в явном виде позволяет предсказать переход от одного состояния А (выражаемого фреймом А') к другому зависимому от него состоянию В (выражаемому фреймом В') и осуществить этот переход эффективно, т.е. не вычисляя заново значений всех параметров, характеризующих состояние В, а перечислив только изменившиеся (или новые) параметры.
Системы фреймов, в свою очередь, обычно организуют в информационно-поисковую сеть. Эта сеть используется в случаях, когда предложенный фрейм не удается привести в соответствие с данной ситуацией, т.е. когда слотам не могут быть присвоены значения, удовлетворяющие условиям, связанным с этими слотами. В подобных ситуациях сеть используется для того, чтобы предложить какой-либо другой фрейм.