Структура данных фрейма

Прежде, чем обсуждать вывод во фреймовой системе, рассмотрим подробнее структуру данных фрейма.

Фреймовая система – это иерархическая структура, узлами, которой являются фреймы с определенной структурой данных.

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

2. Имя слота. Это идентификатор, присваиваемый слоту; слот должен иметь уникальное имя во фрейме, к которому он принадлежит. Обычно имя слота не имеет никакой смысловой нагрузки и является лишь идентификатором данного слота, но в некоторых случаях оно может иметь специфический смысл. К таким именам относятся: отношение; указатель прямого дочернего фрейма; дата определения фрейма; дата модификации фрейма и т.п.

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

4. Указатель типа данных (атрибутов слотов). Указывается, что слот имеет численное значение численное значение, либо служит указателем другого фрейма (т.е. показывает имя фрейма). К типам данных относятся указатель, целый, действительный, булевый, присоединенная процедура, текст, список, таблица, выражение и др.

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

6. Процедура – демон. Существуют следующие типы процедур – демонов: если-необходимо, если-изменено, если-добавлено, если-удалено.

Демоном указывается процедура, автоматически запускаемая при выполнении некоторого условия. Т.е. когда изменяет свое значение атрибут в условной части если утверждения о состоянии демона. Процедуры – демоны активизируются при каждой попытке добавления или удаления данных из слота (по умолчанию). Демоны запускаются при обращении к соответствующему слоту. Например, демон если-необходимо запускается, если в момент обращения к слоту его значение не было установлено; если-добавлено запускается при подстановке в слот значения; если-удалено запускается при стирании значения слота. Кроме того, демон является разновидностью присоединенной процедуры.

7. Присоединенная процедура (процедура – слуга). В качестве значения слота можно использовать программу процедурного типа, называемую служебной (в языке LISP) и методом (в языке Smalltalk). В данном случае присоединенная процедура запускается по сообщению, переданному из другого фрейма, или при выполнении условий, определенных пользователем при создании фрейма.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: