4. Определение классов и иерархии классов
В этой главе говорится о том, за чем нужно следить, и об ошибках, которые легко сделать при определении классов и иерархии классов (Шаг 4 из Главы 3). Как мы уже говорили ранее, для любой предметной области не существует единственной правильной иерархии классов. Иерархия зависит от возможных способов применения онтологии, уровня детализации, необходимого для приложения, личных предпочтений и иногда от требований по совместимости с другими моделями. Тем не менее, мы рассматриваем несколько руководящих принципов, которые нужно учитывать при разработке иерархии классов. После определения значительного количества новых классов полезно остановиться и проверить, соответствует ли возникающая иерархия этим руководящим принципам.
4.1. Обеспечение правильности иерархии классов
Отношение “is-a”[2]
Иерархия классов представляет отношение “is-a”: класс А – это подкласс В, если каждый экземпляр В также является экземпляром А. Например, Chardonnay – подкласс класса Белое Вино. Другой способ подхода к таксономическому отношению – это отношение “kind-of”[3]: Chardonnay –вид Белого вина. Реактивный лайнер –вид самолета. Мясо –вид еды.
Подкласс класса представляет понятие, которое является «разновидностью» понятия, представляемого надклассом.
Отдельно взятое вино не является подклассом всех вин
Распространенная ошибка при моделировании – это включение в иерархию варианта одного и того же понятия как в единственном, так и во множественном числе, сделав первое подклассом второго. Например, будет неправильно определить класс Вина и класс Вино как подкласс класса Вина. Как только вы начинаете считать, что иерархия представляет собой отношение “kind-of”, то ошибка при моделировании становится очевидной: отдельное Вино не является видом Вин. Лучший способ избежать таких ошибок – всегда использовать имена классов или в единственном, или во множественном числе (присваивание имен понятиям подробно рассмотрено в Главе 6).
Транзитивность иерархических отношений
Отношение подкласса транзитивно:
Если В – это подкласс А, а С – подкласс В, то С – подкласс А.
Например, мы можем определить класс Вино, а потом определить класс Белое вино как подкласс класса Вино. Затем мы определяем класс Chardonnay как подкласс класса Белое Вино. Транзитивность отношения подкласса означает, что класс Chardonnay также является подклассом класса Вино. Иногда мы различаем прямые и косвенные подклассы. Прямой подкласс – самый близкий подкласс класса: в иерархии между классом и его прямым подклассом нет других классов. То есть, между классом и его прямым надклассом в иерархии нет других классов. В нашем примере Chardonnay – это прямой подкласс класса Белое вино и не прямой подкласс класса Вино.
Развитие иерархии классов
Поддержание последовательной иерархии классов может вызывать сложности по мере того, как развиваются предметные области. Например, много лет все вина Zinfandel были красными. Поэтому мы определяем класс вин Zinfandel как подкласс класса Красное вино. Тем не менее, производители вин иногда начали выжимать виноград и сразу удалять цветообразующие вещества из винограда, изменяя таким образом цвет получаемого вина. Так мы получаем «белое Zinfandel» розового цвета. Теперь нам нужно разбить класс Zinfandel на 2 класса zinfandel – Белое zinfandel и Красное zinfandel – и классифицировать их как подклассы классов Розовое вино и Красное вино соответственно.
Классы и их имена
Важно различать класс и его имя:
Классы представляют понятия предметной области, а не слова, которые обозначают эти понятия.
Имя класса может измениться, если мы выберем другую терминологию, но сам термин представляет объективную реальность мира. Например, мы можем создать класс Shrimps, а потом переименовать его в Prawns – класс представляет все то же понятие. Вина, которые подходили к блюдам из shrimp, должны подходить к блюдам из prawn[4].
В действительности нужно все время соблюдать правило:
Синонимы одного и того же понятия не представляют различные классы.
Синонимы – всего лишь разные имена понятия или термина. Следовательно, у нас не должно быть класса с именем Shrimp и одновременно с этим класса с именем Prawn, а также класса с именем Crevette[5]. Предпочтительнее будет иметь один класс с именем Shrimp или Prawn. Многие системы позволяют ассоциировать с классом список синонимов, переводов или имен представления. Если система не позволяет осуществлять такие ассоциации, то синонимы всегда можно перечислить в документации к классу.
Избежание циклов классов
Нам следует избегать циклов в иерархии классов. Мы говорим, что в иерархии есть цикл, когда у некоторого класса А есть подкласс В и в то же время В – это надкласс А. Создание такого цикла в иерархии равнозначен объявлению того, что классы А и В эквивалентны: все экземпляры А – это экземпляры В, а все экземпляры В также являются экземплярами А. Действительно, поскольку В – подкласс А, то все экземпляры В должны быть экземплярами класса А. Поскольку А – подкласс В, то все экземпляры А также должны быть экземплярами класса В.
... логики. Поэтому формальная логика и способна оперировать различными объёмами памяти, легко и мгновенно связывая суждения в умозаключения, умозаключения - в концепции и т. д. Глава VI. ВСЕ ПОРОКИ НЕКЛАССИЧЕСКОГО АНТИСУБСТАНЦИАЛИЗМА § 1. Субъективная реальность как эмпирический феномен Декартовская формула «Cogito ergo sum» можно сказать определила основную тематику и направленность ...
... той и другой культуре и определенной отрешенности от обеих12. * * * Заключая разговор о двух великих интеллектуальных традициях Востока, сделаем основные выводы, существенные для замысла этой книги. Обратившись лицом к китайской философской мысли, современная философия может найти в ней совершенно иную модель развития философского умозрения, породившего дискурс, сохранивший исходную модель ...
... философии - особенно с методологических позиций материалистического понимания истории и материалистической диалектики с учетом социокультурной обусловленности этого процесса. Однако в западной философии и методологии науки XX в. фактически - особенно в годы «триумфального шествия» логического позитивизма (а у него действительно были немалые успехи) - научное знание исследовалось без учета его ...
... ; технологическая функция имеет подфункции экономии учебного времени и учебного материала, устранения его дублирования и т.д. ГЛАВА 4. СОДЕРЖАНИЕ ИСНТРУМЕНТАЛЬНО-МЕТОДОЛОГИЧЕСКОГО ОБЕСПЕЧЕНИЯ ПЕДАГОГИЧЕСКОЙ ИНТЕГРАЦИИ 4.1. Типология интегративно-педагогического исследования В связи с поднимаемой в данном параграфе проблемой большой интерес вызывает монография В.М.Полонского "Оценки ...
0 комментариев