logo search
Учебник_Final

2.2.6. Определение классов и их иерархии

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

Процесс нисходящей разработки начинается с определения самых общих понятий предметной области с последующей конкретизацией понятий. Например, мы можем начать с создания классов для общих понятий «Вино» и «Еда». Затем конкретизируем класс «Вино», создавая его подклассы: «Белое вино», «Красное вино», «Розовое вино». Мы можем еще дальше категоризировать класс «Красное Вино», например, как Syrah, Red Burgundy, Cabernet Sauvignon и т.д.

Процесс восходящей разработки начинается с определения самых конкретных классов, листьев иерархии, с последующей группировкой этих классов в более общие понятия. Например, сначала можно определить классы для вин Pauillac и Margaux, а затем создаем общий надкласс для двух этих классов – Medoc, который, в свою очередь будет подклассом Bordeaux.

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

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

Какой метод ни был бы избран, обычно процесс разработки начинается с определения классов. Из списка, составленного в 2.2.5, прежде всего, выбираются термины, описывающие независимые объекты. В онтологии эти термины станут классами и будут точками привязки в иерархии [1] . Организация классов в иерархическую таксономию осуществляется, как ответ на следующий вопрос: если объект является экземпляром одного класса, будет ли он обязательно (т.е. по определению) экземпляром некоторого другого класса?

В более формализованном виде эту процедуру можно выразить так: если класс А – это надкласс класса В, то каждый экземпляр В также является экземпляром А. Другими словами, класс В представляет собой понятие, являющееся «разновидностью» А.