Вопрос 4. Структура данных фрейма . Описать структуру данных фрейма на примере фреймовой модели для класса объектов «Аудитория».


Добавил:DMT
Дата создания:30 декабря 2007, 19:05
Дата обновления:22 января 2008, 21:12
Просмотров:18289 последний сегодня, 23:16
Комментариев: 0
Вопрос 4. Структура данных фрейма . Описать структуру данных фрейма на примере фреймовой модели для класса объектов «Аудитория».

Фрейм, как показано на рис. 3.6, представлен определенной структурой данных. Фреймовая система - это иерархическая структура, узлами которой являются подобные фреймы. Значение каждого элемента, показанного на рис. 3.6, рассмотрено ниже.

1) Имя фрейма - это идентификатор, присваиваемый фрейму. Фрейм должен иметь имя, единственное в данной фреймовой системе (уникальное имя). Каждый фрейм как показано на рис. 3.6, состоит из произвольного числа слотов, причем несколько из них обычно определяются самой системой для выполнения специфических функций, а остальные определяются пользователем. В их число входят слот IS-А, показывающий фрейм-родитель данного фрейма, слот указателей дочерних фреймов, который является списком указателей этих фреймов, слот для ввода имени пользователя, даты определения, даты изменения, текста комментария и другие слоты. Каждый слот, в свою очередь, так же представлен определенной структурой данных.

Имена фреймов: занятия, аудитория, вид занятия, полугодие и пр.

Дополнить родительским слотом (для заниятия - аудитория), дочерние слоты (для занятия – вид занятия, время), имя пользователя, дата определения, дата изменения.

2) Имя слота - это идентификатор, присваиваемый слоту. Слот должен иметь уникальное имя во фрейме, к которому он принадлежит. Обычно имя слота не несет никакой смысловой нагрузки и является лишь идентификатором данного слота, но в некоторых случаях оно может иметь специфический смысл. К таким именам, помимо IS-А (отношение IS-А), DDESENDANTS (указатель прямого дочернего фрейма), FINEDBY (пользователь, определяющий фрейм), DEFINEDON (дата определения фрейма), MODIFIEDON (дата модификации фрейма), COMMENT (комментарий) и т. п., относятся имена, используемые для представления структурированных объектов, например, HASPART, RELATIONS и другие. Эти слоты называются системными и используются при редактировании базы знаний и управлении выводом.

Имена слотов: полугодие, неделя, номер пары, предмет преподаватель и т.д.

DDESENDANTS – во фрейме занятия такое имя имеют слоты вид занятия и время.

FINEDBY – нет

MODIFIEDON – в данной фреймовой системе нет

COMMENT - комментариев нет.

3) Указатели наследования. Эти указатели касаются только фреймовых систем иерархического типа, основанных на отношениях “абстрактное - конкретное”, они показывают, какую информацию об атрибутах слотов во фрейме верхнего уровня наследуют слоты с такими же именами во фрейме нижнего уровня. Типичные указатели наследования: Unique ( U : уникальный), Same ( S : такой же), Range ( R : установление границ), Override ( O : игнорировать) и т. п.

U показывает, что каждый фрейм может иметь слоты с различными значениями; S - что все слоты должны иметь одинаковые значения, R - значения слотов фрейма нижнего уровня должны находиться в пределах, указанных значениями слотов фрейма верхнего уровня, О - при отсутствии указания значение слота фрейма верхнего уровня становится значением слота фрейма нижнего уровня, но в случае определения нового значения слотов фреймов нижних уровней указываются в качестве значений слотов.    О выполняет одновременно функции указателей U и S . Несмотря на то, что в большинстве систем допускается несколько вариантов указания наследования, существует немало и таких, где допускается только один вариант. В данном случае можно считать, что используется указатель О значения по умолчанию. На рис. 3.7 показаны три варианта указания наследования и приведены значения, выдаваемые при запросе значений слотов соответствующих фреймов.

Пример: U - каждый фрейм «номер» должен быть уникальным, S – если фреймовая система используется например для описания аудиторий определенной кафедры, то каждый слот кафедра имеет одно и о же значение. R – можно указать во фрейме Аудитория ограничение на дочерний слот к слоту номер номера корпусов 1 и 3, тогда в дочернем фрейме будут описаны номера 1 и 3 корпусов, O – по умолчанию полугодие может быть 1 или 2, но если во фрейм полугодие добавить значение 3 полугодие, то оно будет принято во фреймах верхних уровней.

4) Указание типа данных. Указывается, что слот имеет численное значение, либо служит указателем другого фрейма (т.е. показывает имя фрейма). К типам данных относятся FRAME (указатель), INTEGER (целый), REAL (действительный), BOOL (булев), LISP (присоединенная процедура), ТЕХТ (текст), LIST (список), TABLE (таблица), ЕXРRESSION (выражение) и другие.

Пример: FRAME (указатель) – слоты номер, занятия и пр. LIST (список) – вид, полугодие, неделя, вид занятия, INTEGER (целый) - № аудитории, № корпуса, количество мест, ТЕХТ (текст) – кафедра.

5) Значение слота. Пункт ввода значения слота. Значение слота должно совпадать с указанным типом данных этого слота, кроме того, должно выполняться условие наследования.


6 ) Демон . Здесь дается определение демонов типа IF-NEEDED, IF-ADDED, IF-REMOVED и т. д. Демоном называется процедура, автоматически запускаемая при выполнении некоторого условия. Демоны запускаются при обращении к соответствующему слоту. Например, демон IF-NEEDED запускается, если в момент обращения к слоту его значение не было установлено, IF-ADDED запускается при подстановке в слот значения, IF-REMOVED запускается при стирании значения слота. Кроме того, демон является разновидностью присоединенной процедуры.

IF-NEEDED – если номер аудитории не указан, то выводится сообщение, что его нужно указать.

IF -ADDED – при занесении № корпуса во фрейм номера аудитории проверяется есть ли такой корпус (если не 1, 2, 3, 4, 5, то указывается сообщение об ошибке).

IF-REMOVED – вывод подтверждения об удалении значения.

7) Присоединенная процедура. В качестве значения слота можно использовать программу процедурного типа, называемую служебной (servant) (в языке Лисп) или методом (в языке Смолток). В данном случае присоединенная процедура запускается по сообщению, переданному из другого фрейма (поскольку состояние выполнения в этом случае такое же, как и в объектно-ориентированном языке, то язык фреймового типа называют еще объектно-ориентированным языком, однако во избежание путаницы с языком типа Смолток, обычно выделяют название “язык фреймового типа”). Когда мы говорим, что в моделях представления знаний фреймами объединяются процедурные и декларативные знания, то считаем демоны и присоединенные процедуры процедурными знаниями. Кроме того, в языке представления знаний фреймами отсутствует специальный механизм управления выводом, поэтому пользователь должен реализовать данный механизм с помощью присоединенной процедуры. 

Во фреймовых системах используют три способа управления выводом:

1) с помощью механизма наследования;

2) с помощью демонов;

3) с помощью присоединённых процедур.

1) На рис. 3.8 показан простой пример иерархической структуры интеллектуальной системы планирования.

Эта структура базируется на отношениях IS-А между фреймами, описывающими некоторую конференцию,

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

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


В момент обращения к слоту “тема” из фрейма 3 запускается механизм управления наследованием, с помощью которого осуществляется поиск и применение значения этого слота в соответствующий фрейм верхнего уровня. Если оно отсутствует, обращение осуществляется к фрейму более верхнего уровня.

Пример:

Пусть во фрейме Аудитория отдельно указан номер аудитории и корпус, тогда аудитории можно разделить на аудитории 1 корпуса и аудитории 3 корпуса, у аудиторий разных корпусов свой список кафедр, к которым они прикреплены.

2) На рис. 3.9 приведен пример управления выводом с помощью демонов.

Демон If–added с именем “забронировать” автоматически запускается при подстановке в слот значения “конференц-зал”. Демон IF–NEEDED с именем “Кто?”, присоединён к слоту “выступающие”. Если при обращении к данному слоту его значение было равно нулю, генерируется запрос “Кто выступает на международной конференции по нейрокомпьютерам?”. Ответ передаётся при подстановке входных данных пользователя в качестве значения слота. Демоны запускаются автоматически при обращении к ним.

Демон «проверить по расписанию» устанавливается автоматически при указании времени проведения занятий для предотвращения накладки занятий .

Демон «Кто?» вызывается если не указан преподаватель.


3) На рис. 3.10 представлен пример управления выводом с помощью присоединенных процедур.


Присоединённая процедура – служебная функция (команда) MSG служит для передачи сообщений.

Структура: MSG(имя фрейма, имя слота, параметр, …)

 Механизм передачи/приёма сообщений

Если по сообщению от другого фрейма инициируется процедура “вычислить” фрейма AA, то с помощью MSG фрейму BB передаётся сообщение, которое инициирует процедуру MEAN. С её помощью вычисляется d – среднее арифметическое. Результат передаётся во фрейм AA.

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

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

Общие требования, определяемые в среде исследований по искусственному интеллекту, можно назвать основными свойствами, которые имеет язык представления знаний фреймами:

1) Для систематизированного управления сложными знаниями большого объёма желательно организовывать все знания на основе концептуальных объектов.

2) В целях повышения гибкости системы следует сделать возможным представление в виде комбинаций декларативных и процедурных знаний для описания связанных с ними концептуальных объектов.

3) Так как концепт обычно имеет иерархическую структуру, связанную с некоторой степенью абстракции, то и для представления знаний необходимо применять иерархическую структуру.

4) При решении сложных проблем считается, что различные состояния вывода применяются в комбинациях в соответствии с ситуацией. Поэтому в представлении знаний необходимой функции это учитывается.

5) Пригодность любого способа управления выводом данных определяется свойствами проблемы, целями и способами её решения. Поэтому в среде исследования интеллектуальных систем решения проблем с использованием метода проб и ошибок должна быть предусмотрена возможность свободного проектирования и использования пользователями разных способов управления выводом.

6) Для создания универсальной исследовательской среды недостаточно лишь высокой универсальности её языка, - необходимо обеспечить возможность простого дополнения её различными функциями (открытость). Язык должен быть расширяем.

up