serge_gorshkov


Сергей Горшков - о бизнесе в сфере ИТ

о семантической интеграции, программировании, управлении...


Previous Entry Share Next Entry
О способах группировки объектов в онтологическом моделировании
serge_gorshkov
В ходе наших совместных с maxstroy занятий моделированием, обнаружилась проблема, осознать и разложить которую по полочкам не так просто. Оказывается, группируя объекты, мы используем для этого как минимум два разных способа. Один можно обозначить как описание объектов, однородных в каком-то отношении ("все хвойные деревья имеют иголки"). Другой является описанием группы как единого объекта, причем свойства группы могут определяться свойствами ее элементов ("лес можно вырубить, так как он состоит из деревьев").
Результат анализа я свел в такую таблицу:


Название класс группа (?)
Суть общность объектов, однородных в каком-то отношении единый объект, представляющий собой совокупность других объектов
Назначение сообщение фактов об общих качествах, характеристиках объектов (но не обязательно – о значениях характеристик) описание характеристик группы объектов, как целого (характеристики группы зависят от ее состава)
Способ применения Определив, что некий объект входит в эту группу, мы автоматически получаем знания о нем. Класс самостоятельного прагматического смысла не имеет, он появляется только тогда, когда есть принадлежащий ему объект. Узнав, из чего состоит группа, мы автоматически получаем знания о ней, как о целом. Объекты внутри группы самостоятельного смысла не имеют, они нужны только для того, чтобы определить характеристики группы.
Счетность элементов всегда счетные счетные (деревья в лесу) или не счетные (вода как совокупность молекул воды)
Выражение в OWL класс и входящие в него объекты класс целое и класс типов частей;
объект-целое;
объект-тип частей;
свойство «состоит из» с объекта-целого указывает на объект-тип частей

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

Примеры.
Класс: коты. Прагматика: коты имеют усы => вот этот кот имеет усы.
Группа: лес состоит из деревьев. Прагматика: деревья имеют ствол => лес можно срубить.
Смешение: фонарик использует три батарейки 1.5 V AAA. Прагматика: а) каждая батарейка, которую я извлеку из фонарика, имеет напряжение 1.5V и размер AAA; б) фонарик потребляет напряжение 4.5V.

  • 1
Спасибо за повод для размышлений.

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

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

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

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

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

«Класс самостоятельного прагматического смысла не имеет, он появляется только тогда, когда есть принадлежащий ему объект.»
Тут не все так односложно. Если класс формируется по случайному признаку (все усатые, все красные), то действительно значение класса заключается только в выполнении некоторых операций над объектами класса. Но если это класс "коты" или "автомобили", то таковые имеют самостоятельный смысл как концепты (понятия) и выступают в онтологии как прагматически осмысленные единицы - имеют собственные отношения с другими классами независимо от наличия принадлежащих к ним объектов (скажем, так мы обсуждаем систематику динозавров, мифических животных или еще не произведенных товаров).

Edited at 2015-10-06 09:43 am (UTC)

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

>> «группа (?) - единый объект, представляющий собой совокупность других объектов»

> Это стандартное определение системы. Чтобы не вступать в прения с системной инженерией можно использовать термин "сложный объект"

Терминологический вопрос - всегда самый тяжелый :) Мы рассматривали еще термин "множество" как кандидат на обозначение такой совокупности, но у него еще больше смысловых пересечений. "Сложный объект" - подходит.

> Вообще следовало бы множества объектов классифицировать на: группы, коллекции и системы

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

> Например, знание о составе такой группы как телевизор (о списке его деталей) не дает нам знание о самом телевизоре.

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

> Да, из физики мы знаем, что вода состоит из молекул, но для онтологического описания это не имеет никакого значения

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

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

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

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

«Да, тут коллекции и системы лучше слить. Разница между ними, похоже, в том, что коллекция кажется набором однородных объектов, а система - разнородных, да еще и со сложными связями между собой.»
На мой взгляд, коллекция и система (сложный объект) несливаемые понятия: автомобиль и телевизор не описываются как коллекции деталей. Кстати, в коллекцию могут входить и разнородные объекты (коллекция экспонатов музея-усадьбы). Наиболее точно разницу между коллекцией и системой (сложным объектом) можно выразить так: в коллекции части определяют целое, а в системе - целое определяет части. Изъятие объекта из коллекции ничего не меняет, не делает из нее не коллекцию, а изъятие элемента из системы, превращает ее в коллекцию - простой набор деталей.

«если уж мы начали рассматривать телевизор не как солидный объект, а именно как набор деталей, значит, нам это для чего-то надо. Скорее всего, для того, чтобы его отремонтировать, или узнать его характеристики (диагональ, уровень энергопотребления и т.п.).»
Вот как раз-то "уровень энергопотребления" мы и не узнаем из анализа набора деталей - это системный параметр, не выводимый из параметров деталей. В этом и отличие коллекции, от системы - коллекция полностью определяется входящими в нее объектами (достаточно привести список), а система - нет (списком не отделаешься, из одного и того же набора деталей можно соорудить разные системы/сложные объекты).

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

> Если в онтологии элементы группы не описаны как самостоятельные объекты, то это и не группа.

В принципе, говоря о лесе, мы тоже деревья не описываем как самостоятельные объекты, однако для понимания промысловых характеристик леса полезно знать, что он состоит из примерно N деревьев такого-то вида...

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

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

>> Есть свойства, которые зависят только от состава молекул, а есть те, которые зависят.

Кроме того, есть проблема выбора объекта, к которому приписывается свойство, особенно если объект максимально детализируется (в пределе как раз до молекул и атомов).
Вот пример из моей практики. К какому из этих объектов отнести телесостояние?:
- к скважине: происходит добыча из неё или нет
- к насосному агрегату в этой скважине: выполняется перекачка жидкости или нет
- к насосу этого насосного агрегата: крутится винт или нет
- к двигателю этого насосного агрегата: включен или нет
- к обмоткам ротора этого двигателя: подано питание или нет
...

Число возможных способов описания гораздо больше двух.

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

При этом возможны прыжки через уровень:
- хвойный лес
- лес срубили на дрова


Ну да, я сказал - "как минимум два" :)

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


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

К классу или группе вы отнесёте это:
- все насосы определенной марки
- все насосы этой марки, выпускаемые определенным заводом
- все насосы, выпускаемые этим заводом
- все насосы, установленные на конкретной котельной
- все насосы, установленные в подпиточном контуре этой котельной
- все насосы, которые устанавливаются на котельных
- все насосы, которые устанавливаются в подпиточном контуре котельных
?


Edited at 2015-10-07 02:13 am (UTC)

Это зависит от того, с какой целью мы вводим в модели каждую из этих группировок. В каждом случае можно решить в любую из сторон. Можно даже и "типизацию" использовать, в терминах прошлого поста.

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

Из общих соображений, я бы разделил так:

Точно "Типизация" (или выражение способом, не связанным с группировкой):
- все насосы, установленные на конкретной котельной
- все насосы, установленные в подпиточном контуре этой котельной

Почти наверняка "типизация":
- все насосы определенной марки
- все насосы, выпускаемые этим заводом
- все насосы этой марки, выпускаемые определенным заводом - тут сочетание двух предыдущих типов

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

Да, этот пост является логическим продолжением предыдущего.

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


Я скорее разделил бы так:

Группы, по которым интересует, например, суммарная электрическая мощность:
- все насосы, установленные на конкретной котельной
- все насосы, установленные в подпиточном контуре этой котельной

Классы с классификацией по конструктивным признакам. По ним интересует, например, номинальное напряжение:
- все насосы определенной марки
- все насосы этой марки, выпускаемые определенным заводом
- все насосы, выпускаемые этим заводом

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

Да, согласен - логично.

«Группы, по которым интересует, например, суммарная электрическая мощность:
- все насосы, установленные на конкретной котельной
- все насосы, установленные в подпиточном контуре этой котельной
»
И тогда требуется еще одно различение - на сложные объекты (системы), как я писал раньше.

Класс - насосы одной марки
Группа/коллекция - насосы конкретной котельной
Сложный объект/система - котельная, включающая группу насосов или сам насос (с позиции его устройства).

>> Это зависит от того, с какой целью мы вводим в модели каждую из этих группировок.

Вы делаете новую модель под новую задачу? Или одну онтологию для нескольких задач?
Например, решая задачи то про фонарики то про его батарейки, объявляете фонарик одновременно и классом и группой?

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

  • 1
?

Log in

No account? Create an account