Рекомендации по организации иерархий классов

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

1. Использование иерархических отношений. Иерархия классов, как правило, реализует отношение «is-a» («является»): класс А – это подкласс В, если каждый экземпляр В также является экземпляром А. Так, «Скрипт-вирусы (вирусы на командных языках)» – подкласс класса «WORMS». Другой способ – использование таксономического отношения «kind-of» («разновидность»). Тогда подкласс класса представляет понятие, которое является «разновидностью» понятия, представляемого надклассом. Например, «WORMS» – это вид сущностей класса «Скрипт-вирусы (вирусы на командных языках)».

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

2. Транзитивность иерархических отношений. Построение иерархии должно сопровождаться контролем за корректностью транзитивных свойств отношений. Отношение подкласса транзитивно: если В – это подкласс А, а С – подкласс В, то С – подкласс А. Иногда различают прямые и косвенные подклассы. Прямой подкласс – самый близкий подкласс класса: в иерархии между классом и его прямым подклассом нет других классов. Аналогично вводятся прямые надклассы.

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

4. Классы и их имена. Необходимо различать класс и его имя. Классы представляют понятия предметной области, а не слова, которые обозначают эти понятия. Имя класса может изменяться в соответствии с принимаемой терминологией, но сам термин будет иметь один и тот же смысл. Соответственно, целесообразно соблюдать правило: синонимы одного и того же понятия не должны представлять различные классы (синонимы – всего лишь разные имена понятия или термина). Многие системы позволяют ассоциировать с классом список синонимов, переводов или имен представления. Если такая возможность отсутствует, то синонимы всегда можно перечислить в документации к классу.

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

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

Классы, находящиеся в корне иерархии (и всегда представленные как прямые подклассы некоторого самого общего класса, такого как «Thing» в Protege-2000), представляют основные деления в предметной области и не должны представлять схожие понятия.

Не существует жестких правил относительно того, сколько прямых подклассов должен иметь класс. Однако следует учитывать 2 соображения:

1) если класс имеет только один прямой подкласс, то, возможно, при моделировании допущена ошибка или онтология неполна;

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

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

7. Множественное наследование. Большинство систем представления знаний позволяют осуществлять множественное наследование в иерархии классов: класс может быть подклассом нескольких классов. Введение множественного наследования значительно повышает гибкость и точность отражения связи понятий в онтологии. При этом рекомендуется следить за тем, чтобы свойства одного и того же класса не наследовались несколько раз (по различным «маршрутам» наследования в иерархии). Подобное дублирование не нарушает корректности иерархических отношений (разумеется, если оно не связано с образованием циклов), но влияет на сложность обработки онтологии, ее наращивания и т. д.

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

1) имеют дополнительные свойства, которых нет у надкласса;

2) имеют ограничения, отличные от тех, которые есть у надкласса;

3) состоят в тех отношениях с другими классами, которых не имеют надклассы.

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

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

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

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

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

9. Экземпляры и классы. Определение того, чем является некоторое понятие (классом в онтологии или отдельным экземпляром), зависит от потенциальных приложений онтологии. Разграничение между классами и отдельными экземплярами начинается с определения нужной глубины детализации в представлении. Глубина детализации, в свою очередь, определяется потенциальным приложением онтологии. Т. е. необходимо установить самые конкретные элементы, которые будут представлены в базе знаний при решении конкретных задач. Если возвратиться к вопросам для проверки компетентности, которые были определены на шаге 1 алгоритма построения иерархии, самые конкретные понятия, которые будут ответами на эти вопросы, лучше всего подойдут на роль индивидных концептов в базе знаний.

Следующее правило может «переместить» некоторые отдельные экземпляры в разряд классов: если понятия формируют естественную (т. е. логически выстроенную по уровням обобщения) иерархию, то предпочтительно представлять их как классы. Приведенное правило обусловлено тем, что в виде иерархии можно представить только множество классов (в системах представления знаний нет категории «подэкземпляр»). Поэтому, если в предметной области существует естественная иерархия понятий, необходимо характеризовать эти понятия как классы, даже если у них нет своих экземпляров.

10. Ограничение масштаба. В целях оценки полноты (законченности) онтологии должны учитываться следующие соображения.

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

2. Онтология не должна содержать все возможные свойства классов и различия между классами в иерархии.

Данные соображения также применимы для установления отношений между понятиями, включаемыми в онтологию. Рассмотрим онтологию, описывающую биологические эксперименты. Эта онтология, вероятно, будет содержать понятие «Биологические организмы». Она также будет содержать понятие «Экспериментатор» (включающее имя, место работы и т. д.). Верно то, что экспериментатор, как человек, также является биологическим организмом. Однако, вероятно, не следует отражать эту информацию в онтологии, делая класс «Экспериментатор» подклассом класса «Биологический организм», поскольку это приведет к появлению у экземпляров «Экспериментатора» избыточных слотов (например, «вес», «возраст», «вид», «семейство» и т. д.), которые относятся к биологическому организму, но неуместны в контексте описания какого-либо эксперимента.

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

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


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



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