Скачиваний:
122
Добавлен:
21.01.2014
Размер:
706.56 Кб
Скачать

1.7.2. Фреймовые системы и их функционирование

Для иллюстрации работы этого класса СОЗ рассмотрим иерархию понятия отчета, структура которого определена выше, но уже со всеми слотами, их значениями и процедурами (рис. 1.7.3).

Допустим, что некоторые слоты имеют значение по умолчанию. Каким образом можно использовать так организованные данные?

Если системе задан запрос: «Мне нужен финансовый отчет о выполнении проекта по новой технологии», то интерфейсная программа анализирует его и

  1. Вносит «проект по новой технологии» в слот «ТЕМА» следующего пустого узла «Финотчет» (в нашем примере это узел №3). Далее все происходит автоматически:

  2. Процедура «если – добавлено», связанная со слотом «ТЕМА», осуществляет поиск руководителя этого проекта. Допустим, что его фамилия Иванов. Процедура вписывает его фамилию в слот «АВТОР» финансового отчета №3. Если руководитель этой темы не будет найден, в слот «АВТОР» будет наследовано значение класса, а именно текст «РУКОВОДИТЕЛЬ ПРОЕКТА».

Рис. 1.7.3. Функционирование фреймовой системы

  1. Процедура «если – добавлено», связанная со слотом «АВТОР», начинает выполняться, т.к. в слот только что было вписано новое значение. Эта процедура начинает составлять сообщение, чтобы отправить его Иванову, но обнаруживает, что нет нужной даты исполнения.

  2. Процедура «если – добавлено», просматривая слот «ДАТА» и найдя его пустым, активирует процедуру «если – нужно», связанную с этим слотом, которая, анализируя текущую дату (например 12.04.96), решит, что «30 июня» ближайшее к ней и впишет эту дату в слот «ДАТА».

  3. Теперь процедура «если – добавлено», связанная со слотом «АВТОР», найдет, что еще одно значение, которое нужно включить в сообщение, т.е. объем отчета, отсутствует. Слот «ОБЪЕМ» не связан с процедурами и ничем помочь не может. Однако выше узла № 5 существует узел общей концепции финансового отчета, содержащий значение объема. Процедура, используя концепцию наследования свойств класса, использует значение объема и составляет следующее сообщение: «Господин Иванов, подготовьте финансовый отчет по проекту новой технологии к 30 июня объемом 2 страницы».

Если в какой-то момент фамилия Иванов будет удалена из слота «АВТОР», то система автоматически отправит ему сообщение, что его отчет не требуется.

В рассмотренном примере заполнителями служили конкретные экземпляры атрибутов (заполняемые по умолчанию). Вместе с тем, заполнителями слотов могут быть:

имена других фреймов системы, на которые делается ссылка;

фасеты («агрегат», «диапазон», «по умолчанию» и др.).

Расширим рассмотренный выше пример для иллюстрации этих понятий (рис. 1.7.4.):

Рис.1.7.4. Функционирование фреймовой системы

При определении фреймов фасет «агрегат» указывает на то, что должны быть заданы требуемые объекты, а «интервал» - на то, что должен быть выбран один из множества объектов.

Эта информация используется интерфейсной программой при вводе информации.

1.7.3. Обобщенная структура фрейма

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

Таблица 1.7.1

Структура фрейма

ИМЯ ФРЕЙМА

Имя слота

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

Указатель типа

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

слот 1

слот 2

-------

слот N

Слотом фрейманазывается элемент данных для фиксации знаний об объекте, которому отведен данный фрейм.

Перечислим параметры слотов:

Имя слота. Каждый слот должен иметь уникальное имя во фрейме, к которому он принадлежит. Имя слота в некоторых случаях может быть служебным. Среди служебных имен могут быть:

имя пользователя, определяющего фрейм;

дату определения или модификации фрейма;

комментарий.

Указатель наследования. Он показывает, какую информацию об атрибутах слотов во фрейме верхнего уровня наследуют слоты с теми же именами во фрейме нижнего уровня. Типичные указатели наследования:

S(тот же) - слот наследуется с теми же значениями данных;

U(уникальный) - слот наследуется, но данные в каждом фрейме могут принимать любое значение;

I(независимый) - слот не наследуется.

Указатель типа данных. Типом данных, включаемых в слот, могут быть:

FRAME (указатель) - указывает имя фрейма верхнего уровня.

ATOM (переменная);

TEXT (текстовая информация);

LIST (список);

LISP (присоединенная процедура).

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