Фреймы.
Метод представления знаний с помощью фреймов предложен М.Минским. Фрейм — это структура, предназначенная для представления стереотипной ситуации. Каждый фрейм описывает один концептуальный объект, а конкретные свойства этого объекта и факты, относящиеся к нему, описываются в слотах — структурных элементах данного фрейма. Все фреймы взаимосвязаны и образуют единую фреймовую систему, в которой объединены и процедурные знания. Концептуальному представлению свойственна иерархичность, целостный образ знаний строится в виде единой фреймовой системы, имеющей иерархическую структуру- В слот можно подставить разные данные: числи или математические соотношения, тексты, программы, правила вывода или ссылки на другие слоты данного или других фреймов. Фрейм определяется как структура следующего вида: (ИМЯ ФРЕЙМА; ИМЯ СЛОТА1 (ЗНАЧЕНИЕ СЛОТА1) ИМЯ СЛОТА2 (ЗНАЧЕНИЕ СЛОТА2) ………………………………………………… ИМЯ СЛОТАN (ЗНАЧЕНИЕ СЛОТАN))
Определим, например, фрейм для объекта «Служащий»: (Служащий ФИО (Петров И. П.) Должность (инженер) Категория(2) ……………………………)).
Если значения слотов не определены, то фрейм называют фреймом-прототипом, в противном случае — конкретным фреймом или экземпляром фрейма. В теории фреймов ничего не говорится о методах реализации фрейма. Вслед за появлением теории фреймов появилось целое семейство систем программирования, поддерживающих концепцию фрейм-подхода: KRL, GUS, FRL, OWL и другие. Для большинства фреймовых языков свойственно иерархическое описание объектов предметной области с использованием типовых фреймов. При этом широко используется механизм наследования свойств одного объекта (представленных в виде значений слотов связанного с ним фрейма) другими объектами. Используются такие виды наследования, как класс — подкласс, класс — экземпляр класса. Это позволяет согласовать однотипную информацию различных объектов, а также в дальнейшем обеспечить соответствующее их поведение. Фреймовые системы относят к процедуральной форме представления знаний. Объясняется это тем, что управление выводом во фреймовых системах реализуется путем подключения так называемых присоединенных процедур, разрабатываемых пользователем. Процедуры связываются со слотами и обычно именуются демонами и слугами. Демон - это процедура, которая активизируется автоматически, когда в ее слот подставляется значение или проводится сравнение значений. Слуга — это процедура, которая активизируется по запросу — при возникновении определенного события. С использованием присоединенных процедур можно запрограммировать любую процедуру вывода на фреймовой сети. Механизм управления выводом организуется следующим образом. Сначала запускается одна из присоединенных процедур некоторого фрейма, называемого образцом. Образец — это, по сути, фрейм-прототип, т. е. у него заполнены на все слоты, а только те, которые описывают связи данного фрейма с другими. Затем в силу необходимости, посредством пересылки сообщений, последовательно запускаются присоединенные процедуры других фреймов и таким образом осуществляется вывод. Язык представления знании, основанных на фреймовой модели, эффективен для структурного описания сложных понятий и решения задач, в которых в соответствии с ситуацией желательно применять различные способы вывода. В то же время на таком языке затрудняется управление завершенностью и постоянством целостного образа. В частности, по этой причине существует опасность нарушения присоединенной процедуры, проблема зацикливания процесса вывода. Отметим, что фреймовую модель без механизма присоединенных процедур, а следовательно, и без механизма пересылки сообщений, часто используют как базу данных системы продукций.
|