Чт. Мар 28th, 2024

Рассмотрим конкретные структуры моделей представления знаний фреймами, основанные на изложенных выше концепциях теории фреймов. Теория фреймов — это теория научных концепций и, хотя модели представления знаний фреймами основываются на этой теории, она полностью не охватывает их. В последнее время вместо названия фреймовый используются названия объектно-ориентированный, структурированный объект и т. п. Эти названия, как далее будет показано, характерны для языка типа Смолток, относящегося к так называемым объектно-ориентированным языкам, в которых имеется много общего со структурой программ и механизмами управления выполнением.

Другими словами, переменные (структуры данных) и касающиеся их процедуры обработки образуют объект, а схожие объекты имеют иерархическую структуру типа IS-А. Это напоминает рассмотренную ранее иерархическую структуру, основанную на отношениях IS-А между объектами. Управление исполнением производится с помощью передачи сообщений между объектами, что почти аналогично механизму управления выводом с помощью передачи сообщений между фреймами. Однако в отличие от объектно-ориентированного языка, который имеет парадигмы для универсального программирования, модели представления знаний фреймового типа имеют парадигмы для управления представлением знаний (или памятью) и выводами, т.е. по основным идеям и конкретной реализации они имеют много отличий.

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

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

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

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

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

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

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

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

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

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

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

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

От content

Ads Blocker Image Powered by Code Help Pro

Обнаружен блокировщик рекламы! Пожалуйста, обратите внимание на эту информацию.

We\'ve detected that you are using AdBlock or some other adblocking software which is preventing the page from fully loading.

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

Пожалуйста, добавьте tehnar.info к вашему белому списку блокирования объявлений или отключите программное обеспечение, блокирующее рекламу.

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock