1

Тема: Что именно делает OWL языком интеграции разнородных данных

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

Thumbs up +1 Thumbs down

2

Re: Что именно делает OWL языком интеграции разнородных данных

Нда, так в двух словах и не скажешь..
Интеграция данных - это, наверное, одно из наиболее часто упоминаемых приложений не только OWL, но вообще семант. технологий. На мой взгляд для этого лучше подходят менее выразительные языки. В частности, при стандартизации OWL 2 для этой цели был сформулирован отдельный профиль - OWL 2 QL. Он основан на логике DL Lite (которая намного беднее той, что стоит за OWL 2 DL и, тем более, FOL), но зато у нее есть ключевое свойство: запросы могут (относительно) легко переписываться с учетом онтологии, чтобы результаты могли включать неявно заданные факты. При этом есть возможности вывода, которых нет, например в RDFS + есть гарантии хорошей вычислительной сложности. Подобное переписываение (query rewriting) позволяет, в частности, скрыть разнородные источники данных за общей онтологией (схемой), описав в ней как их схемы должны сопоставляться друг с другом. У Карстена Лутца (Carsten Lutz) есть ряд хороших статей на эту тему. Некоторые RDF DB постепенно начинают поддерживать SPARQL с лог. выводом в рамках OWL 2 QL.

Более выразительные языки (OWL 2 EL, OWL 2 DL), *на мой взгляд*, полезнее не столько для непосредственной интеграции данных, сколько для управления терминологиями в сложных областях (медицина, химия, биоинформатика). Здесь важно, чтобы люди и приложения, работающие над общими задачи, имели возможность утвердить и придерживаться общей семантики терминов. Для этого за посление лет 15 было создано немало крупных онтологий (SNOMED, Gene Ontology, Foundational Model of Anatomy, etc.). Точное описание семантики терминов требует выразительности.

Ну и напоследок замечу, что все рады бы использовать FOL, если бы не вычислительная полуразрешимость (что для вывода фактически эквивалентно неразрешимости). А Пролог - это не FOL, а (грубо говоря) определенное его подмножество, в чем-то богаче, в чем-то беднее чем DL. В контексте семант. технологий большую распространенность получила разновидность, Datalog, которую периодически пытаются использовать.

3

Re: Что именно делает OWL языком интеграции разнородных данных

Спасибо за ответ.

В частности, при стандартизации OWL 2 для этой цели был сформулирован отдельный профиль - OWL 2 QL. Он основан на логике DL Lite (которая намного беднее той, что стоит за OWL 2 DL и, тем более, FOL), но зато у нее есть ключевое свойство: запросы могут (относительно) легко переписываться с учетом онтологии, чтобы результаты могли включать неявно заданные факты.

То есть OWL QL позволяет легко выделять синонимы в двух схемах, таким образом необходимость вводить новые понятия возникает редко. Это именно то, что меня интересовало.

Ну и напоследок замечу, что все рады бы использовать FOL, если бы не вычислительная полуразрешимость (что для вывода фактически эквивалентно неразрешимости). А Пролог - это не FOL, а (грубо говоря) определенное его подмножество, в чем-то богаче, в чем-то беднее чем DL.

А что означает неразрешимость на практике? Я правильно понимаю, что это означает, что существует правило

some(X1,...Xn) :- some1(X1,...Xn) , some2(X1,...Xn) ,...

которое невозможно вывести, то есть найти множество решений X1, X2... при которых оно True.

А OWL DL разрешим? Там нет таких утверждений, которые нельзя доказать?

Отредактировано cnt1 (2011-05-03 12:44:29)

Thumbs up Thumbs down

4

Re: Что именно делает OWL языком интеграции разнородных данных

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

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

OWL 2 DL базируется на логике SROIQ, которая была очень тщательно спроектирована так, чтобы добиться максимальной выразительности, не потеряв разрешимость. Практически любое добавление новых фич в SROIQ приведет к неразрешимости (например, ограничения кардинальности на транзитивных свойствах, а-ля "все люди, которых более 2-х потомков (где потомок - транзитивное свойство)".).

Примером неразрешимого семант. языка является SWRL (язык правил).

Prolog разрешим, в частности, потому что базируется на Horn-фрагменте FOL.

5

Re: Что именно делает OWL языком интеграции разнородных данных

Prolog разрешим, в частности, потому что базируется на Horn-фрагменте FOL.

Но ведь в то же время Prolog - очень выразительный язык. Почему же выбрали именно SROIQ, а не пошли по пути пролога? Наверное, из-за не очень высокой эффективности алгоритма поиска с возвратом, на котором базируется пролог?

Thumbs up Thumbs down

6

Re: Что именно делает OWL языком интеграции разнородных данных

Стандартный Пролог не покрывает выразительности SROIQ (как и Horn-фрагмент FOL). Попробуйте выразить например утверждение "Родитель - это мужчина или женщина, у которых есть минимум один ребенок". Сразу возникнут трудности с дизъюнкцией в голове правила и с квантором существования. Пролог вообще не является языком представления знаний. Это язык программирования с negation-as-failure семантикой (в отличие от FOL и DL).
DL же появилась в процессе эволюции фреймов и семантических сетей (когда им начали придавать формальную семантику в стиле FOL).

7

Re: Что именно делает OWL языком интеграции разнородных данных

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

Как-то так:
parent(X) :- man(X), children(X, _).
parent(X) :- woman(X), children(X, _).

Если у X не будет детей, children(X, _) не сопоставится, parent(X) не сопоставится. И наоборот, если у X будет хотя бы один ребенок, то все сопоставится.

Отредактировано cnt1 (2011-05-05 22:01:00)

Thumbs up Thumbs down

8

Re: Что именно делает OWL языком интеграции разнородных данных

Возможно, проблема состоит в том, чтобы выразить "как минимум n", где  n - произвольное целое число (то есть cardinality)? Это решатся при помощи примитивов bagof и findall:

hasAtLeastNChildren(X, N) :- findall(Child, children(X, Child), Child_list), size(Child_list, N).

Отредактировано cnt1 (2011-05-05 21:58:04)

Thumbs up Thumbs down

9

Re: Что именно делает OWL языком интеграции разнородных данных

Пролог вообще не является языком представления знаний.

Но его применяют при разработке экспертных систем например.

Thumbs up Thumbs down

10

Re: Что именно делает OWL языком интеграции разнородных данных

Нет-нет, мне надо сказать не "если X - мужчина или женщина и у него (ее) есть ребенок, то он (она) родитель", а наоборот: "если кто-то является родителем, то он мужчина *или* женщина и у него (ее) есть ребенок".

И в Horn-FOL ты *именно это* выразить не сможешь никак, именно поэтому сложность логическое программирования полиномиально от размера данных. А SROIQ, увы, нет.

11

Re: Что именно делает OWL языком интеграции разнородных данных

Но его применяют при разработке экспертных систем например.

Ага. Но кстати примечательно, что спад популярности классических экспертных систем (таких как MYCIN, CADIAG, etc.) начался именно с ростом популярности онтологий и DL (где-то на стыке 80 и 90-х). Люди поняли, что огромные наборы правил - это не лучший способ представления знаний. В какой-то момент становится очень сложно управлять такой системой, выявлять конфликты, разбираться откуда взялись некорректные результаты вывода (и есть ли они вообще) и т.д.
В этот момент и начали активно пополняться крупные медицинские онтологии (GALEN, SNOMED и т.д.) и, как следствие, развитие аксиоматических систем.
Сейчас же большое внимание привлекает сочетание систем правил и аксиоматических БЗ. Отсюда появились SWRL, DL safe rules и т.д.

12

Re: Что именно делает OWL языком интеграции разнородных данных

Нет-нет, мне надо сказать не "если X - мужчина или женщина и у него (ее) есть ребенок, то он (она) родитель", а наоборот: "если кто-то является родителем, то он мужчина *или* женщина и у него (ее) есть ребенок".

Понятно. То есть при матчинге parent(X) в базу должны быть добавлены не одно новое утверждение, а три:
man(X).
women(X).
hasAlLeastOneChildren(X).

Такое и вправду невозможно в прологе. А в OWL это должно быть выглядит так:
Parent owl:equivalentClass (Men or Women) and (hasChild min 1)

Сейчас же большое внимание привлекает сочетание систем правил и аксиоматических БЗ. Отсюда появились SWRL, DL safe rules и т.д.

У меня складывается ощущение, что семантический веб, изначально предназначенный как основа для веб 3.0, начал применяться немного для других целей. То есть он вместо веб-стандарта стал как бы application level стандартом. Если бы rdf-owl смог когда-нибудь вытеснить реляционные базы данных и sql это было бы здорово. Кстати, Oracle 11g уже предоставляет rdf store, а в 12-ой версии обещают многое из OWL реализовать.

Thumbs up Thumbs down

13

Re: Что именно делает OWL языком интеграции разнородных данных

Понятно. То есть при матчинге parent(X) в базу должны быть добавлены не одно новое утверждение, а три:
man(X).
women(X).
hasAlLeastOneChildren(X).

Не совсем. При матчинге parent(X) в БЗ должно появиться ЛИБО man(X), ЛИБО woman(X). Это так называемый don't know non-determinism. Если бы там было И, то было бы гораздо проще. Как ты понимаешь, с точки зрения алгоритмов вывода, отсутствие такого недетерминизма в выразительности языка - это огромный выигрыш в скорости.
Это вообще фундаментальное ограничение Horn-фрагмента FOL. Семантически можно сформулировать так: "Если из некой БЗ следует утверждение "А или Б" то это значит что из БЗ следует А или из БЗ следует Б (ну либо и то и другое)". В общем же случае из БЗ в FOL (и в выразительных DL) может следовать "А или Б", но ни А, ни Б по отдельности не следуют. Такие знания не редкость. Пролог (точнее Datalog) развивался в этом направлении (погугли по disjunctive Datalog, на его основе работает DL reasoner KAON2).

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

Согласен. Поэтому я не люблю термин "semantic web", а предпочитаю "semantic technologies". Web слишком ассоциируется с интернетом. Ну и как минимум, OWL - это не язык онтологий "в Веб". Это просто язык онтологий, чье применение не ограничивается Веб. Но это очень-очень длинная тема.

Кстати, Oracle 11g уже предоставляет rdf store, а в 12-ой версии обещают многое из OWL реализовать.

Да, насколько я помню они реализуют OWL 2 RL (плюс еще какой-то свой фрагмент).

14

Re: Что именно делает OWL языком интеграции разнородных данных

Спасибо за разъяснения.
А на OWL утверждение будет выглядеть так?
Parent owl:equivalentClass (Men or Women) and (hasChild min 1)

Thumbs up Thumbs down

15

Re: Что именно делает OWL языком интеграции разнородных данных

Вот в этой PDF статья ("Can OWL model football leagues"), в которой говорится о том, что в OWL не хватает некоторых особенностей DL. Честно говоря, мне непонятно, как могут возникнуть проблемы при моделировании столь примитивной предметной области как футбол, раз OWL с успехом применяют в медицинских и биологических базах знаний. Вот я привожу отрывок (но лучше почитать pdf-ку, так боюсь будет непонятно):

One might wonder whether this ontology faithfully describes the domain of interest.
Indeed, an ontology should select as accurately as possible the class of intended models
that describe the application domain. So a natural question to ask is how accurate the
above ontology is in representing the semantics of our football domain. It is not hard to
see that the OWL ontology described above fails to model the following aspects:
1. no two leagues with the same year and the same nation exist;
2. within a certain league, the code associated to a round is unique;
3. every match is identified by its code within its round;
4. every referee can umpire at most one match in the same round;
5. no team can be the home team of more than one match per round;
6. no team can be the host team of more than one match per round.

Unfortunately, with the modeling constructs available in OWL, the above charac-
teristics simply cannot be expressed. Indeed, all such characteristics requires the notion
of identifier, which is missing in OWL.

http://www.google.ru/url?sa=t&sourc … mp;cad=rjt

Если у вас будет время почитать, не могли бы вы поделиться мнением обо всем этом?

Отредактировано cnt1 (2011-05-06 21:07:25)

Thumbs up Thumbs down

16

Re: Что именно делает OWL языком интеграции разнородных данных

Спасибо за разъяснения.
А на OWL утверждение будет выглядеть так?
Parent owl:equivalentClass (Men or Women) and (hasChild min 1)

Ага. Даже можно заменить min 1 на простой квантор существования: hasChild some Person.

Статью посмотрю попозже.

17

Re: Что именно делает OWL языком интеграции разнородных данных

Ну на самом деле эта область не так уж примитивна (исходя из списка их требований). Что касается идентификаторов, то в OWL 2 это дело добавилось в виде аксиом hasKey. На тему ключей было очень много шуму в рабочей группе W3C по OWL 2, их очень сильно хотели, а в результате практически никто не использует (насколько я в курсе).

Что касается других пунктов, то многие из них выглядят как ограничения целостности (integrity constraints). OWL, в следствие open world assumption, непросто использовать для описания IC для RDF-данных, хотя это выглядит соблазнительно. У нас в блоге можно прочитать чуть подробнее об этой проблеме и способах ее обхода.

18

Re: Что именно делает OWL языком интеграции разнородных данных

Спасибо за разъяснения.

И еще один вопрос, более практического характера. Какой API лучше всего использовать для работы с семантическими технологиями на java? Требуются следующие возможности.
1. Изменение (редактирование) онтологии программно (создание и изменение классов, свойств).
2. Изменение данных и их типа, создание новых данных (кстати, есть ли граница между онтологией и данными? я так полагаю, что не обязательно любой индивидуал необходимо входит в состав данных, есть индивидуалы, являющиеся частью онтологии, а есть собственно данные пользователя).
3. Выполнение запросов на каком-нибудь языке, желательно SPARQL

Понятно, что требуется reasoner. Далее, стоит вопрос как его использовать. В примерах, которые я видел, reasoner-ы используется через Jena при помощи предоставляемых ими адаптеров. В Jena также есть интерфейс для выполнения SPARQL-запросов (я думаю, выполнение запросов имплементировано в используемом rdf-store). Не совсем понятно, годится ли Jena для редактирования онтологии, если онтология в OWL 2.

Thumbs up +1 Thumbs down

19

Re: Что именно делает OWL языком интеграции разнородных данных

Сколько смотрю на задачи интеграции --- основные проблемы вылезают с совершенно "детскими" проблемами нормализации и денормализации значений, с сопоставлением одного перечисления (enum) другому, при этом логический вывод ограничивается использованием sameAs, isSubtypeOf, isSubpropertyOf, inverseFunctionalProperty, и существенно реже symmetricProperty и functionalProperty.

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

Ну а если данные грязноваты, то использовать богатые онтологии оказывается просто страшно: хороший ризонер над хорошей онтологией и большим массивом данных способен из маленькой неожиданной входной "мухи" выдуть __такого__ "слона"...

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

В итоге я уже забыл, какие OWL-подмножества что означают. Решить "всего" за день работы задачу Эйнштейна,. конечно, интересно, но менее практично, чем сделать что-то простое, но не с пятью домами этой задачи, а со всеми строениями Англии разом smile

20

Re: Что именно делает OWL языком интеграции разнородных данных

Ну да. Я в первом ответе что-то подобное и имел в виду. Выразительность и большие объемы instance data практически не уживаются друг с другим.

PS. Даже IBM свой проект SHER закрыл, а интересная штука была...