Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 3_самостоятельно.doc
Скачиваний:
6
Добавлен:
26.08.2019
Размер:
185.86 Кб
Скачать

3.2.4. Фреймы

Фрейм (англ, frame - каркас или рамка) предложен М.Минским в 70-е гг.

Minsky в своей работе [29] определил фрейм как "структуру данных для представления стереотипных (стандартных) ситуаций". Эту структуру он наполнил самой разнообразной информацией: об объектах и событиях, которые следует ожидать в этой ситуации, и о том, как использовать информацию, имеющуюся во фрейме. Идея состояла в том, чтобы сконцентрировать все знания о данном классе объектов или событий в единой структуре данных, а не распределять их между множеством более мелких структур вроде логических формул и порождающих правил. Такие знания либо сосредоточены в самой структуре данных, либо доступны из этой структуры (например, хранятся в другой структуре, связанной с фреймом) [119].

С каждым фреймом ассоциируется разнообразная информация (в том числе и процедуры); например, информация о том, как пользоваться данным фреймом, ка­ковы ожидаемые результаты выполнения фрейма, что делать, если ожидания не оправдались, и т.п. Фрейм можно представить в виде сети, состоящей из вершин и отношений (дуг). Верхние уровни фрей­ма фиксированы и представляют сущности, всегда истинные в ситуа­ции, описываемой данным фреймом. Нижние уровни заканчиваются слотами, которые заполняются конкретной информацией при вызове фрейма.

С каждым слотом фрейма связаны описания условий, которые должны быть соблюде­ны, чтобы могло произойти означивание слота. В простейших случаях эти условия могут сводиться к указанию семантических категорий, которым должно удовлетворять значение слота.

Преимущества подхода, основанного на фреймах, заключаются в следующем [21]: концепция фреймов естественным образом интегрируется с концептуаль­ным моделированием предметной области; структуры фреймов хорошо описываются средствами объектно-ориентированного проектирования; эффективно поддерживаются возможности наследования; обеспечивается иерархическое представление пред­метной области.

<Имя фрейма> Таблица 3.2

Имя слота

Указатель наследования

Указатель атрибутов

Значение слота

Демон

Слот 1

Слот 2

Слот N

Таблица 3.3

Описание слотов (терминалов)

Имя слота

Имя фрейма

<имя дерева>

Тип данных

Указатель наследования

Указатель атрибутов

<параме-тры>

Слот 1

Фрейм1

Слот 2

-‘’-

Слот М

-‘’-

Слот 1

Фрейм2

-‘’-

Слот N

-‘’-

В скобках < > указаны необязательные поля.

Предположим, что цепочка «КВАДРАТ  ПРЯМОУГОЛЬНИК  ПАРАЛЛЕЛОГРАММ  ТРАПЕЦИЯ  ЧЕТЫРЕХУГОЛЬНИК  МНОГОУГОЛЬНИК» представляет знания о плоских геометрических фигурах, которые можно использовать для логических рассуждений о форме участков. Каждый узел в этой цепи имеет связанную с ним структуру записей (фрейм), формат которой приведен ниже.

NAME (ИМЯ):

Number of sides (Количество сторон):

Length of sides (Длины сторон):

Size of Angles (Углы):

Area (Площадь):

Price (Цена):

Практически все слоты фрейма Многоугольник придется оставить незаполненными, по­скольку ничего нельзя сказать о сторонах и углах типичного многоугольника. Однако для слота Количество сторон в качестве значения по умолчанию можно установить 4, поскольку подавляющее большинство земельных участков имеет форму четырехугольника. Таким обра­зом, все земельные участки, информация о форме контура которых отсутствует, будут пола­гаться четырехугольными. Слот Площадь также нельзя заполнить, но известно, как вычислить площадь многоугольника, располагая другой информацией о нем. Любой n-сторонний много­угольник можно разбить на п-2 треугольника, вычислить их площади и затем просуммиро­вать результаты. Программу, реализующую эту процедуру, можно подключить к слоту Площадь. Процедуры, подключенные к структуре данных и запускаемые на выполнение при появлении запроса или обновлении информации в структуре, называют демонами. Те демоны, которые по запросу вычисляют некоторые значения, называются демонами по тре­бованию (IF-NEEDED) [119].

Полезно также иметь демон, который при заполнении слота Площадь сразу вычислял бы цену участка. Эта процедура относится к другому типу демонов — демонам добавления (IF-ADDED) — и подключается также к слоту Площадь. Теперь при обновлении или установке значения слота Площадь автоматически будет вычислена цена участка, а результат будет помещен в слот Цена.

Перейдем к следующему уровню в иерархии фреймов. Для фрейма Четырехугольник совершенно очевидно нужно установить значение 4 в слот Количество сторон. Это значение будет наследо­ваться фреймами на каждом из последующих уровней иерархии. Вычислять площадь и цену всех фигур, представленных фреймами последующих уровней, можно тем же способом, что и для много­угольника. Поэтому описанные выше демоны также могут быть унаследованы всеми последующими фреймами.

Фреймы, представляющие все последующие разновидности четырехугольников, на­следуют значение из слота Количество сторон фрейма Четырехугольник. Но в каждом из этих фреймов можно реализовать свою процедуру вычисления площади, лучше учи­тывающую особенности именно данного вида фигур. Например, площадь трапеции мож­но вычислить как произведение высоты на среднюю длину оснований, а фреймы прямо­угольника и квадрата могут унаследовать эту процедуру у параллелограмма, площадь ко­торого равна произведению основания на высоту.