Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник_Final.doc
Скачиваний:
59
Добавлен:
09.11.2019
Размер:
10.39 Mб
Скачать

2.2.10. Создание экземпляров

Последний шаг – это создание отдельных экземпляров классов в иерархии. Для определения отдельного экземпляра класса требуется выбрать класс, создать отдельный экземпляр этого класса, а затем ввести значения слотов.

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

Пример.

«Онтология об онтологии», выполненная в ИС Protégé (рис. 2.5):

Онтологии (Ontology)

Языки разработки (Languages)

Типы онтологий (Types)

Методы и методологии (Methods and methologes)

Методы (Methods)

Методологии (Methologes)

Интеграция онтологий (Integration)

Среды разработки онтологий (Sredi)

Сравнение сред разработки (Comparing)

Сравнительная таблица средств управление онтологиями (Sredstva)

Сравнительные характеристики систем по работе с онтологиями (Characteristic)

Общие (Obshie)

Онтология (Ontologyes)

Совместное использование (Ispolzovanie).

Представленные классы в свою очередь подразделяются на слоты и экземпляры.

Рис. 2.5. Структура «Онтологии об онтологии» в ИС Protégé

2.3. Модели представления знаний

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

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

2.3.1. Фреймы

Фрейм – это структура данных, предназначенная для представления стереотипных ситуаций [9]. Пример фрейма показан на рис. 2.6.

Рис. 2.6. Структура фрейма «Человек»

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

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

Рис. 2.7. Структура фрейма наследования

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

  • слоты, приводящие к выполнению действий в зависимости от полученных фреймом значений при сопоставлении, называются слотами-слугами;

  • слоты, которые активизируются вне зависимости от значений других слотов, называются слотами-дьяволами.

Таким образом, фрейм может определять исходные состояния, например, состояние А и переход в новое состояние В на основе исходного описания с помощью фрейма А' в новое состояние, описываемое фреймом В'.

При использовании представления в виде фреймов предполагается, что значения верхних слотов фрейма заданы, а значения нижних − заполняются в соответствии с ситуацией. Фреймы можно сравнить с процедурами в традиционных языках программирования. Описание процедуры в программе соответствует понятию фрейма-прототипа, а выполняемое ей действие − понятию фрейм-реализации.

Использование фреймов предполагает реализацию информационной системы на основе объектно-ориентированного подхода, подразумевающем объединение классов в совокупности однотипных объектов. Объекты имеют свойства, характерные для данного класса. При построении иерархии классов устанавливается соответствие между классами, фреймами и характеристиками объектов со слотами. Родственные свойства объектов наследуются, т.е. объект, находящийся на нижнем уровне классификации, имеет все свойства, присущие данному классу объектов.

К главным и самым важным свойствам объектно-ориентированного подхода относятся:

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

  • в соответствии с принципом инкапсуляции, любой класс рассматривается как чёрный ящик. Пользователь класса видит и может использовать только интерфейсную часть класса (т.е. список декларируемых свойств и методов класса) и не вникает в его внутреннюю реализацию. Данные принято инкапсулировать в классе таким образом, чтобы доступ к ним по чтению или записи осуществлялся не напрямую, а с помощью методов. Принцип инкапсуляции (теоретически) позволяет минимизировать число связей между классами и, соответственно, упростить независимую реализацию и модификацию классов. Сокрытие данных — неотделимая часть ООП, управляющая областями видимости и являющаяся логическим продолжением инкапсуляции. Целью сокрытия является невозможность для пользователя узнать или испортить внутреннее состояние объекта. Применительно к представлению в виде фреймов доступ к определенным значениям слотов осуществляется при появлении или отсутствии значений данных в слотах-слугах и слотах-дьяволах;

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

  • наследование – свойство, отражающее возможность порождать один класс от другого с сохранением всех свойств и методов класса-предка (прародителя или суперкласса) с добавлением, при необходимости, новых свойств и методов.

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

Пример.

Слоты фрейма А'

Правило

ОПИСАНИЕ

Нахождение в токсичной зоне. Опасность для жизни.

ЕСЛИ (потенциальная релевантность)

Запах ядовитого вещества?

ЕСЛИ (истинная релевантность)

Нахождение в зоне источника токсичности?

ТО <сообщение пользователю>

<не дышать>/<покинуть зону>

ТО <включить в агенду>

<действия, указанные в экспертной системе, системные указания>

Приоритет

Высокий

Частота использования

Включение в агенду 945

Использование при выводе 4

(т.е. правило рассматривалось 945 в списке конфликтующих правил и не исключалось 4 раза)

Представление правила фреймом характеризуется:

  • наличием не одного, а нескольких условий и действий для различных уровней анализа правила;

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

Информация о правиле хранится в нескольких слотах. Это позволяет использовать разную интерпретацию правил, в зависимости от целей разработки ЭС.

Все модели представления данных предназначены для воплощения их в правилах логического вывода. Это основное назначение модели. Модели в правилах представляются утверждениями.

Фрейм-прототип при реализации утверждения включает понятия пространства утверждения.

Фрейм-реализация – это внешние ссылки пространства утверждения и настройка на конкретную ситуацию (см. 1.5.1).

Сценарий (при обработке изображений) – это совокупность взаимосвязанных сцен (для систем обработки изображений) или фреймов.