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

Самая старая модель, предложенная американским Марвином Минским в 1975 г. Для представления и описания стереотипных ситуаций и объектов. По определению Минского, фрейм - минимальная структура информации, необходимая для представления класса объектов, явлений, процессов.

В наиболее общем виде фрейм - конструкция следующего вида:

{имя_фрейма, (имя_слота1, значение_слота1, [<имя присоединенной процедуры >], ….) }

фрейм - прототип - интенсиональное описание (аналог структурного шаблона в С) и фрейм - экземпляр (заполненной конкретной информацией) - экстенсиональное описание (аналог структурной переменной в С).

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

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

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

В СИИ работающих на фреймах можно выделить несколько типовых процессов:

1)В создании фрейм экземпляров и наполнении их информацией;

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

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

Существует большое количество фреймовых языков. Большая часть базируется на LISPе (LISP - язык обработки списков). В качестве примера рассмотрим некоторые конструкции языка.

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

(F <S1> <S2>…)

(S <A1> <A2>…)

F - фрейм; S - слот; A - аспект.

Есть зарезервированные аспекты

$ VALUE <…> - значение;

$ DEFAULT <…> - значение по умолчанию;

$ IF_ADDED(имя присоединённой процедуры(параметры)) - запускается при добавлении значения.

Данные тоже список.

(D <имя комментария> : <комментарий>) (…)

Фрейм

(Яблоко *1

(сорт

($ VALUE (антоновка))

)

(вкус

($ VALUE

(кислый (когда: лето))

(кисло-сладкий (когда: осень))

)

Hosted by uCoz