Anatoly Levenchuk ([info]ailev) wrote,
@ 2008-11-15 12:25:00
Previous Entry  Add to memories!  Tell a Friend  Next Entry
Кривые онтологии
Как справедливо заметил мне вчера по телефону В.Бардин, основная задача -- научиться работать с абсолютно криво построенными онтологиями, ибо некриво построенных онтологий не бывает по определению. Это полностью совпадает с тем, как когда-то А.Кушниренко говорил мне про среды программирования: "запретить синтаксически неправильную программу в редакторе очень просто. Но люди так не умеют. Нужно позволить иметь в редакторе программу синтаксически неправильную -- вплоть до того момента, пока она не пойдет на исполнение, а может, и после этого момента, ежели исполнение не коснется текста с ошибкой". В онтологиях "исполнение" всегда идет по тексту с ошибками, неточностями, путанностями, неопределенностями, перескоками между иерархиями, ошибками между типами и классами, неверными типами отношений, необщеупотребимым понятиям в качестве основных и т.д.

Поигрался с онтологией, автоматически извлеченной из русской википедии. Морская свинка -- "китообразная", ибо "морская" и "млекопитающая". Тьфу.
Загрузил клиент-браузер онтологии RDL из ISO 15926 (Reference Data Services от POSC Caesar Associations, https://trac.posccaesar.org/wiki/Rds), поглядел на то, как они рассортировали понятия вокруг activities и doing. Тьфу.
Раньше пытался разобраться в Gellish с их цепочкой сортировки activity-act-process-doing плюс то же самое в инфинитиве (который, как выяснилось, имеется не во всех языках). Тьфу.
Думаю, во всех остальных онтологиях (включая естественные языки, которые можно тоже считать онтологиями, и на которые тьфу два раза) не лучше.
Нет в жизни онтологического счастья. Онтология -- не математика, не логика, не физика, никакой красоты в ней нет. Онтология крива по определению, она отражает все родовые предрассудки (начиная от первородного греха), все заплатки и кривые дорожки человеческого разума, все извивы щупалец ума, которыми потихоньку опутывается мир.
Все онтологии -- это замаскированные китайские классификации, ибо именно таковые классификации лежат в основе мира, именно к таким классификациям привыкли люди.

Остается согласиться с Бардиным и научиться пользоваться кривыми онтологиями так же, как мы пользуемся русским языком -- мой самец мыши должен писаться "мышь", а не "мыш" и "это нельзя понять, это нужно только запомнить". Онтологии нельзя понять, их можно только запомнить, это продукт культуры, мифология предметных областей -- со всеми ее несостыковками, а вовсе не высоконаучный продукт каких-то исследований. Ибо предмет исследований крив, как коленвал. Неча на карту пенять, коли сама жизнь крива.

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

Онтологии нужны не сами по себе. Онтологии нужны для того, чтобы мэппить. Не нужно мэппить, не трожь онтологий, не пачкай руки. Нужно мэппить -- пайчай руки, делай дело.
Хотя онтологии можно приспособить и для других дел, но тогда они легко становятся целью, а не средством. Онтология, которая стала целью -- мертвая онтология.
* * *
Программа курса на датамоделлера уровня "желтый пояс": https://trac.posccaesar.org/wiki/ISO15926Course. А на "черный пояс" не учат, просто признают таковым в момент обнаружения.


(27 comments) - (Post a new comment)


[info]bo_ba
2008-11-15 04:31 pm UTC (link)
метафизика - это поиск фундаментальных онтологий - т.е. правильные онтологии - это желаемый результат некоего процесса.

(Reply to this) (Thread)


[info]ailev
2008-11-15 05:51 pm UTC (link)
Метафизика, скорее, про онтологические выборы (свойства онтологий), и онтологии она рассматривает больше как примеры. Сами разработки онтологий (в полном соответствии с осознанными выборами, о которых говорит метафизика) обычно делает методология -- ибо без наличия какой-либо (проектной, устремленной к цели) деятельности любая онтология бесплодна. Если ничего не хочешь с окружающим миром делать, то никакая онтология тебе не нужна, и поэтому неважно, хороша она или плоха.

Датамоделлеры читают книжки по метафизике, делают метафизические выборы. А затем в рамках избранного подхода ваяют кривую онтологию.

Я к тому, что "плохую программу можно написать и на Паскале", как когда-то говорили.

(Reply to this) (Parent)(Thread)


[info]bo_ba
2008-11-15 06:22 pm UTC (link)
А я к тому, что на Паскале можно писать и хорошие программы - в принципе то есть. Но вообще-то, мне показалось, что вы о том, что после "языкового поворота" мы можем только интерпретировать язык и поэтому фундаментально можем получать "кривые" онтологии. На это есть аргумент, однако, что существуют "hard signifiers", которые выводят нас за рамки языка, а, следовательно, могут дать правильные онтологии.

(Reply to this) (Parent)(Thread)


[info]ailev
2008-11-15 07:46 pm UTC (link)
Есть разные причины иметь кривую онтологию:
-- плохие метафизические выборы -- типа 4D или 3D онтология.
-- плохие онтологические выборы на самом верхнем уровне таксономии -- типа обсуждаемых в http://www.jfsowa.com/ontology/psl_pn.htm.
-- несовместимость, дублирование, нестыкуемость выборов кучи онтологов, которых пустили "совместно редактировать" онтологию. Или, что то же самое, плохое качество онтологии, построенной автоматически по набору текстов, написанному профессионалами из какой-то тусовки. Ибо сколько людей, столько и онтологий -- и им вовек не верифицироваться, не валидизироваться, отладиться. Ибо "отладка онтологии" -- это еще придумать нужно, как. "ОК" для одного из соавторов часто будет "полным отстоем" для другого.
-- даже думать не хочу о других причинах (например, прямые ошибки -- описки, забытые места, сбои при наборе ID. Мы уже нашли в Gellish несколько таких ошибок).

Есть не один путь, а много разных способов сделать криво -- в рамках языка, или за его пределами.

(Reply to this) (Parent)


[info]109
2008-11-16 10:57 am UTC (link)
а при чём тут датамоделлеры? любой domain можно десятью разными способами замоделить, в зависимости от requirements. часто полдомена можно вообще выкинуть из модели, ибо эта половина в дизайнируемой системе не используется.

(Reply to this) (Parent)(Thread)


[info]ailev
2008-11-16 08:04 pm UTC (link)
Датамоделеры читают книжки по метафизике. А те, кто десятью разными способами моделят любой domain обычно читают книжки по разным моделированиям, а не по метафизике.

(Reply to this) (Parent)(Thread)


[info]109
2008-11-16 08:31 pm UTC (link)
я не понял ваш пойнт, поэтому повторю свой :)

онтология не может быть кривая "вообще", она может быть кривая только в рамках конкретной модели, сделанной для конкретной системы.

(Reply to this) (Parent)(Thread)


[info]ailev
2008-11-17 05:44 am UTC (link)
В книжках по метафизике обсуждается как раз кривизна "онтологий вообще", и что нужно делать, чтобы этой кривизны не было, когда до конкретной модели еще речь не дошла. В метафизике вопрос об онтологии ставится независимо от каких-либо конкретных моделей. В метафизике и про программирование-то не знают, но об онтологиях рассуждают, и весьма плодотворно.

(Reply to this) (Parent)(Thread)


[info]109
2008-11-17 09:52 am UTC (link)
можете посоветовать какое-нибудь онлайновое чтение по теме?

(Reply to this) (Parent)(Thread)


[info]ailev
2008-11-17 10:15 am UTC (link)
Например, работы http://matthew-west.org.uk/Publications.html, или http://ontolog.cim3.net/cgi-bin/wiki.pl?ConferenceCall_2007_07_05 как раз про стык метафизики и датамоделинга. Типичные рассуждизмы и дискуссии "на стыке" -- http://www.jfsowa.com/ontology/psl_pn.htm

(Reply to this) (Parent)(Thread)


[info]109
2008-11-18 07:52 am UTC (link)
а на какие-нибудь основополагающие работы, более-менее очерчивающие problem domain, есть ссылки? а то западло рассматривать 70 разных презентаций с грамматическими ошибками и пытаться догадаться, о чём всё это.

собственно, набор ссылок в диапазоне от data modelling до differential equations наводит на мысли, что это просто очередной quantum clusterfuck™

(Reply to this) (Parent)(Thread)


[info]ailev
2008-11-18 08:07 am UTC (link)
Нет, мне просто лениво искать ссылки на "основополагающие работы". Мне лично именно места стыка с метафизикой интересно только в одном месте: насколько выбираемые датамоделерами онтологии отходят от парадигмы Bunge-Wade-Weber (а они, насколько я понимаю, все в эту парадигму укладываются -- ибо все датамоделеры достойные наследники entity relationships model).

Если вам интересно раскапывать именно этот стык формальных онтологий в промышленности и метафизики, то можете поискать академические работы людей из списка организаторов этого воркшопа: http://www.fomi2008.di.unito.it/callForPapers.html

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

(Reply to this) (Parent)(Thread)


[info]109
2008-11-18 08:38 am UTC (link)
Bunge-Wade-Weber. под "основополагающими" я полагал не "теоретические" работы (как, видимо, вы меня поняли), а работы основоположников. которые обычно хорошо представляют себе, что они делают (иначе они не становятся основоположниками). например, entity-relationship modelling имеет своим основоположником Кодда и разработанную им реляционную алгебру в качестве языка (dsl, если угодно). так что дихотомии основополагающие/прикладные не существует. академические работы и формальные онтологии меня как раз не интересует. меня интересует, когда я читаю что-то типа It seems to be particularly difficult to come to terms with periods of non-existence.
How can something not exist when I can talk about it? This is understandable, however,
we do not find it difficult to talk about historical things that do not exist now. Perhaps a
better way to understand temporary non-existence is a practical one. If you are a plant
operator, and you are asked to start up P101 when there is nothing installed there, you
will not be able to do it. The reason you will not be able to do it is because at that time
it does not exist
по данной вами ссылке, то зачем я это читаю. "банан большой, а шкурка больше".

(Reply to this) (Parent)(Thread)


[info]ailev
2008-11-18 09:50 am UTC (link)
Как раз West и Partridge и есть основоположники в применении 4D-онтологии в промышленной интеграции данных. Их работы привели к ISO 15926. Приведенные вопросы важны для того, чтобы суметь правильно отображать модели оборудования в информационных системах (кстати, у того же West есть и работы, показывающие разницу между моделями оборудования/систем и моделями предприятия/интеграционными моделями).

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

Собственно, выбор между 4D и 3D -- это выбор, традиционно обсуждаемый в метафизике, а не в моделировании данных. Поэтому обсуждаемые West вопросы как раз лежат на стыке метафизики (и он постоянно цитирует метафизическую литературу) и прикладных вопросов моделирования данных.

Edited at 2008-11-18 09:52 am UTC

(Reply to this) (Parent)


[info]109
2008-11-18 08:39 am UTC (link)
Bunge-Wade-Weber => Bunge-Wand-Weber

(Reply to this) (Parent)(Thread)


[info]ailev
2008-11-18 09:30 am UTC (link)
Ну да, я всегда путаю :) Уже не первый раз :)

(Reply to this) (Parent)


[info]avlasov
2008-11-16 09:44 am UTC (link)
Я вчера тоже морщил репу на счет как жить с кривизной онтологий.
То что онтология должна быть заточена под конкретную цель, а под другую цель будет нужна другая онтология, мне было уже понятно.
А вот как при этом интегрировать приложения заточенные под разные и противоречивые онтологии?
Мне видится перспективным микромодельный подход, в данном случае, микроонтологический, т.е. нужно создавать много маленьких онтологий, каждая из которых будет стабильна с большой вероятностью. А софт соответственно нужно писать так, чтобы при обноружении противоречивости в какой-то из (микро)онтологий он продолжал работать, пусть и с ограниченной функциональностью.
Создание такого софта это конечно тоже головомойная задача, но с применением декларативных языков программирования/DSL она doable. А в случае одной или нескольких больших по размеру онтологий, что делать совершенно не понятно. Либо окружающий мир принудительно форматировать под выбранную онтологию.

(Reply to this) (Thread)


[info]ailev
2008-11-16 08:09 pm UTC (link)
Таким образом описанная кривизна онтологий уже известно как выправляется -- архитектурой онтологической интеграции данных из ISO 18876 (примером такой архитектуры является ISO 15926). В ваших терминах каждой кривой онтологии позволяется жить собственной жизнью, но при необходимости интеграции каждое понятие, которым нужно обменяться, находится не только в собственной онтологии, но и в некоторой "общей" онтологии. При возникновении понятий, которых там еще нет, общая онтология пополняется.

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

(Reply to this) (Parent)(Thread)


[info]avlasov
2008-11-17 08:54 am UTC (link)
Общие стандарты это круто и правильно (сам хорошо понял на примере FIX'а Financial Information eXchange). Но они тоже не все проблемы решают. Скажем, пополнение общей онтологии - процесс сравнительно длительный.
Для распределенных систем нужна идеология частичной несовместимости. Я недавно почитал OWL мануал, они там это явно упоминают, типа нужно заранее готовиться, что онтологии будут несовместимы.
Мне микромодели/онтологии еще интересны тем, что они очень компактно описывают проблему. А размер тестов (обобщенно - усилий необходимых для валидации модели) вообще говоря растет экспоненциально с размером переменных.

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

Общие онтологии для этого тоже пойдут, но они должны быть высокого качества.

(Reply to this) (Parent)(Thread)


[info]ailev
2008-11-17 09:02 am UTC (link)
Общие онтологии в датамоделинге как раз не предусматриваются для разработки микроонтологий (хотя в CYC для этого немного другой подход -- они наращивают общее онтологическое тело каждым своим чихом). У датамоделеров как раз постулируется, что каждый разработчик приложения по необходимости разрабатывает свою компактную онтологию, и что мир устроен именно так, а не иначе. Но на следующем шаге возникает необходимость обмена данными между приложениями, основанными на разных онтологиях. И именно в этот момент возникает нужда в нейтральной (не общей! именно что нейтральной!) онтологии, обязательно содержащей в себе upper ontology, для того, чтобы отмэппить эти маленькие компактные онтологии между собой. Более того, мэппить нужно только то, что передается между системами, а бОльшая часть информации не мэппится вообще.

(Reply to this) (Parent)(Thread)


[info]avlasov
2008-11-17 09:14 am UTC (link)
Ну мне такой подход и близок.
Ибо, у меня есть задумки на тему, как автоматически сравнивать онтологии. И как писать софт, который бы самоконфигурировался, т.е. на основании выявленных различий решал, может ли он с ними жить и в какой степени. Т.е. часть функциональности может отвалиться, часть может продолжить фунциклировать, если возможно преобразование данных (к примеру из int'ов в double'ы или наоборот).

(Reply to this) (Parent)(Thread)


[info]avlasov
2008-11-17 09:16 am UTC (link)
Собственно, автоматическое сравнение поддерживают ризонеры для OWL DL, она специально для этих целей и создавалась.

(Reply to this) (Parent)(Thread)


[info]ailev
2008-11-17 09:27 am UTC (link)
Увы, все эти усилия тщетны, если есть синонимия и гомонимия. Или же вам придется честно втыкать в микроонтологии все понятия в какую-то общую upper ontology -- но тоже с ненадежным результатом.

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

(Reply to this) (Parent)(Thread)


[info]avlasov
2008-11-17 09:41 am UTC (link)
Полностью ручного мэппинга не избежать, это так.
Но скажем, если у меня замэплены проперти или они общие, то классы, определенные в логических выражениях относительно комбинаций свойств, можно сравнить уже автоматически (при некоторых ограничениях на механизмы комбинирование, даже за разумное время :)).

(Reply to this) (Parent)


[info]ailev
2008-11-17 09:24 am UTC (link)
Ну, само сравнение онтологий при мэппинге делается вручную. А вот сам софт мэппинга - он один и тот же на все. Выигрыш в том, что ручное сравнение делается только между каждой микроонтологией приложения и нейтральной Главной онтологией один раз, а вот затем мэппинг идет между любыми микроонтологиями (из, например, двух-трех десятков на среднем предприятии) автоматически, многократно и по потребности. При добавлении к этой уже работающей системе новых приложений с их микроонтологиями, для каждого из них делается однократное сравнение, а затем оно обменивается данными со всеми остальными.

В ISO 15926 результат называется "конфедерация фасадов приложений". Конфедерация -- это слабая "регистрационная" связанность (в отличие от федерации, подразумевающей центральную власть). Фасад -- это типовая морда (адаптер), которая одинакова с онтологической точки зрения для всех остальных приложений (то бишь выражена в понятиях Главной онтологии). А вот за фасадом творятся собственные делишки этого приложения в его любимой микроонтологии.

(Reply to this) (Parent)


[info]georgede
2008-11-16 08:42 pm UTC (link)
>>Поигрался с онтологией, автоматически извлеченной из русской википедии.
Можно ссылку, где она или на инструментарий, ее создающий?

(Reply to this) (Thread)


[info]ailev
2008-11-17 05:51 am UTC (link)
Частная разработка одного из стартапов, меня пустили поиграться.

(Reply to this) (Parent)


(27 comments) - (Post a new comment)

Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…