Re[4]: Онтологии в компьютерных системах
От: LaPerouse  
Дата: 28.07.10 07:06
Оценка:
Здравствуйте, kl, Вы писали:

>>Дополнительная семантика задается более продвинутым языком OWL. Я наверное многого недопонимаю, так как у меня нет серьезного опыта работы с этими технологиями, но мне всегда казалось естественным разделение реализации семантической сети на core-language (rdf) и дополнительную семантику (OWL).

kl>С одной стороны ты прав. Это и есть концепция знаменитого слоеного пирога SW. Интуитивно она нравится многим людям. Другую сторону см. ниже.
>>Семантика никак не может задаваться ВНЕ терминов семантической сети. Или может?

kl>Ситуация такова, что у OWL, в отличие от RDF, исторически есть логические основы — это т.н. дескрипционная логика (DL). DL — это некоторое подмножество логики первого порядка (FOL), ктр было специально создано для онтологий. Будучи изначально логикой, DL имеет свою естественную модельно-теоретическую семантику, которая 100% совместима с семантикой FOL. Естественно, никакого упоминания об RDF ни в FOL ни в DL нет. Онтология в DL — это просто набор аксиом (лог. утверждений). Опять таки, никаких триплетов.

kl>Далее, OWL-онтология — это в первую очередь DL-онтология, имеющая один из синтаксисов OWL. Синтаксисов есть много: функциональный синтаксис, N3, RDF/XML, OWL/XML, манчестерский синтаксис и т.д. На семантику они не влияют абсолютно.
kl>Однако, кроме естественной семантики OWL (direct semantics) как набора лог. утверждений в DL, есть вторая — translational semantics. Translational означает, что каждое лог. утверждение в DL сериализуется в набор RDF-триплетов (см. OWL 2 Web Ontology Language Mapping to RDF Graphs). В итоге, каждая онтология в OWL может рассматриваться как:
kl>i) Набор лог. утверждений в DL
kl>ii) RDF-граф, полученный в результате сериализации
kl>Оба представления имеют свою семантику ( i) — естественную семантику DL, ii) гораздо более громоздкую семантику RDF). Семантика DL понятна всем, кто имеет дело с логикой. Семантика RDF убивает своей нестандартностью (странных деталей много, например, comprehension principles). В итоге, рабочая группа в W3C потратила нереальное количество времени, чтобы гарантировать _семантическую_совместимость_. Т.е. все, что логически вытекает из DL-онтологии, должно логически вытекать из полученного RDF-графа и наоборот.

Вот тут мне не совсем понятно. Ведь RDF и OWL совсем не равнозначны по возможностям описания семантики. Например, возьмем owl:equivalentClass. RDF-сериализация будет содержать тройку со свойством owl:equivalentClass, но без применения дополнительного решателя все приложения, оперирующие с этим RDF, не смогут воспользоваться этой информацией при логическом выводе (например, SPARQL-запросы не будут учитывать эквивалентность классов). Должно быть, имелось ввиду не равнозначность семантик, а их непротиворечивость, то есть одинаковый результат логического вывода при использовании совпадающих концепций (то есть тех концепций, которые присутствуют и в RDF(S), и в OWL — rdfs:subClassOf, rdfs:subPropertyOf и т. д.)

Кстати, не прояснишь один момент. Почему решили остановиться именно на DL, а не более полном подмножестве FOL? Видимо, сочли, что именно DL предоставляет наиболее хороший баланс между мощностью и вычислительной сложностью?
Социализм — это власть трудящихся и централизованная плановая экономика.
Re[5]: Онтологии в компьютерных системах
От: LaPerouse  
Дата: 28.07.10 07:24
Оценка:
Здравствуйте, mefrill, Вы писали:

M>Но в случае с RDF, как мне кажется, мы имеем дело не с моделью логической теории, задаваемой OWL, а с гомоморфизмом логических теорий. Ведь на самом деле тройки -- это бинарные отношения, т.е. бинарные предикаты. Известно, что каждую логическую теорию можно привести к эквивалентной (в том смысле, что все их модели совпадают) логической теории, в которой имеются только бинарные предикаты. Этот процесс приведения к бинарной форме не уникален, в базах данных все таблицы можно привести к бинарному виду, т.е. только с двумя столбцами, в теории формальных языков каждая контекстно-свободная грамматика представляется в виде бинарной нормальной формы, каждое число может быть приведено в компьютерный вид, т.е. выражено в виде суммы степеней двойки и т.д.


В контексте RDF/OWL, должно быть имеется ввиду т.н. "овеществление" отношений? То есть если мы имеем n-мерное отношение P(x1...xn), то его в RDF/OWL можно представить в виде объекта со значениями свойств x1...xn. Но таким образом можно реализовать далеко не все возможности логики первого порядка.
Социализм — это власть трудящихся и централизованная плановая экономика.
Re[8]: Онтологии в компьютерных системах
От: kl Германия http://stardog.com
Дата: 28.07.10 08:22
Оценка:
Здравствуйте, Arboz, Вы писали:

A>Здравствуйте, kl, Вы писали:


kl>>(следующая версия SPARQL должна поддерживать entailment regimes).

A>но все равно же поверх RDF будет работать? Когда примерно ждать?

Ну да. Я последние пару месяцев не следил за SPARQL, у меня создалось впечатление, что поддержка лог. вывода там явно не приоритет (см. SPARQL New Features and Rationale). На развитие SPARQL активно влияют вендоры (см. Extensions Proposed By OpenLink), что с одной стороны очень хорошо, поскольку должны развиваться возможности, нужные бизнесу, но с другой там не всегда есть люди, хорошо представляющие себе формальную сторону дела (хотя бы ту же вычислительную сложность). Что касается "когда ждать", то не знаю, но могу узнать. В любом случае там даже до Last Call еще дело не дошло.

kl>>Созданием конечных приложений я не занимаюсь.

A>а знаешь кто занимается? (за ссылку на bbc, отдельное спасибо)

Ну например Clark & Parsia, собственно с летнего интерншипа у них и начался мой роман с семантическими технологиями :)

kl>>Я тоже. Но я активно и не интересовался. Видел литературу, в которой обсуждались онтологии в контексте MDA, но не впечатлило.

A>что такое MDA? И можно сразу тогда уж ссылку, если недалеко?

Model-driven architecture. Набери в гугле ontology model-driven architecture, вылезет куча литературы. Я, правда, на первый взгляд ничего сверхинтересного не увидел.

kl>>Virtuoso? Уровня Oracle вендоров нет, согласен. Но разница в качестве между Virtuoso и поделками вроде OWLim не так и мала.

A>BBC однако использовало OWLim. Откуда уверенность, что сравнение между Virtuoso и OWLim в пользу первого? Сугубо субъективное ощущение?

В принципе, да, достаточно субъективное. В основном от общения с народом на разных конференциях/workshop'ах. BBC могло использовать OWLim т.к. он поддерживает некий (пусть и очень малый) фрагмент OWL. Почему они не выбрали Oracle — не знаю.
no fate but what we make
Re[5]: Онтологии в компьютерных системах
От: kl Германия http://stardog.com
Дата: 28.07.10 08:39
Оценка:
Здравствуйте, LaPerouse, Вы писали:

LP>Вот тут мне не совсем понятно. Ведь RDF и OWL совсем не равнозначны по возможностям описания семантики. Например, возьмем owl:equivalentClass. RDF-сериализация будет содержать тройку со свойством owl:equivalentClass, но без применения дополнительного решателя все приложения, оперирующие с этим RDF, не смогут воспользоваться этой информацией при логическом выводе (например, SPARQL-запросы не будут учитывать эквивалентность классов). Должно быть, имелось ввиду не равнозначность семантик, а их непротиворечивость, то есть одинаковый результат логического вывода при использовании совпадающих концепций (то есть тех концепций, которые присутствуют и в RDF(S), и в OWL — rdfs:subClassOf, rdfs:subPropertyOf и т. д.)


Да, естественно в самом RDF owl:equivalentClass — это просто ресурс. Поэтому для достижения эквивалентности семантики приходится накладывать определенные семантические ограничения на RDF-графы, содержащие ресурсы из пространства имен owl. Так появилась OWL 2 Web Ontology Language RDF-Based Semantics для OWL. Она и есть расширение семантики RDF (ссылку приводил выше), которое должно быть эквивалентно прямой семантике OWL.

Самое смешное во всей этой истории, что полного соответствия добиться все равно не удалось, поэтому есть замечание:

There is a strong correspondence between the semantics for OWL DL defined in this section and the Direct Model-Theoretic Semantics defined in Section 3 (see Theorem 1 and Theorem 2 in Section 5.4). If, however, any conflict should ever arise between these two forms, then the Direct Model-Theoretic Semantics takes precedence.

Оно есть в предыдущей версии документа, но не в последней. Насколько я в курсе, доказать полное соответствие так и не удалось. Питер и Майкл Шнайдер пытались добиться хотя бы того, что если несоответствие и появится, то только в OWL Full (а не в нормальных, разрешимых профилях OWL).

LP>Кстати, не прояснишь один момент. Почему решили остановиться именно на DL, а не более полном подмножестве FOL? Видимо, сочли, что именно DL предоставляет наиболее хороший баланс между мощностью и вычислительной сложностью?


Ага. Все развитие OWL и DL — это баланс между сложностью и разрешимостью. OWL DL — это балансирование на грани. Например, стоит разрешить number restrictions на транзитивных свойствах (т.е. утверждения типа "Петя имеет не менее 3-х потомков") и все — язык становится неразрешим. При этом одно из лучших достижений в OWL 2 (по сравнению с OWL 1) — это то, что теперь есть профили (OWL EL, OWL RL, OWL QL, OWL DL,..), которые различаются по сложности, например, EL позволяет делать лог. вывод за полиномиальное время, QL — сводить лог. запросы к запросам к БД и т.д. В OWL 1 были OWL Lite, OWL DL и OWL Full, причем OWL Lite при своей ограниченности был все равно EXPTIME-логикой (т.е. хуже чем NP-complete).
no fate but what we make
Re[5]: Онтологии в компьютерных системах
От: kl Германия http://stardog.com
Дата: 28.07.10 08:55
Оценка:
Здравствуйте, mefrill, Вы писали:

M>Здравствуйте, kl, Вы писали:


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


Возможно, я не специалист в categorical semantics. Но дело в том, что семантика RDF — самая что ни на есть model-theoretic. С множеством объектов и интерпретацией предикатов.

M>Я, конечно, в этих вещах не силен, не являюсь специалистом, и могу только догадываться о трудностях. которые возникают при таком переводе. Скорее всего, их немало. Но все же, как мне кажется, преобразование в бинарную форму не так бесполезно, как Вы представляете. Может быть там в самом RDF еще что-то добавили, что не позволяет удобно переводить?


Ну OWL в бинарную форму переводить особо не надо, там и так все предикаты не более чем бинарные. Проблема с RDF в том, что это язык *фактов*. Каждый триплет — это факт. Фактически, RDF-граф — это слабоструктурированная БД. Поэтому для описания лог. утверждений (а не просто фактов) приходится использовать трюки вроде comprehension conditions, а иначе мы не сможем поддерживать даже простейший лог. вывод (например, из утверждения "каждый друг Пети — адвокат" не будет следовать "каждый друг Пети — адвокат или врач").
no fate but what we make
Re[6]: Онтологии в компьютерных системах
От: LaPerouse  
Дата: 28.07.10 10:27
Оценка:
Здравствуйте, kl, Вы писали:

kl>Здравствуйте, LaPerouse, Вы писали:


LP>>Вот тут мне не совсем понятно. Ведь RDF и OWL совсем не равнозначны по возможностям описания семантики. Например, возьмем owl:equivalentClass. RDF-сериализация будет содержать тройку со свойством owl:equivalentClass, но без применения дополнительного решателя все приложения, оперирующие с этим RDF, не смогут воспользоваться этой информацией при логическом выводе (например, SPARQL-запросы не будут учитывать эквивалентность классов). Должно быть, имелось ввиду не равнозначность семантик, а их непротиворечивость, то есть одинаковый результат логического вывода при использовании совпадающих концепций (то есть тех концепций, которые присутствуют и в RDF(S), и в OWL — rdfs:subClassOf, rdfs:subPropertyOf и т. д.)


kl>Да, естественно в самом RDF owl:equivalentClass — это просто ресурс. Поэтому для достижения эквивалентности семантики приходится накладывать определенные семантические ограничения на RDF-графы, содержащие ресурсы из пространства имен owl. Так появилась OWL 2 Web Ontology Language RDF-Based Semantics для OWL. Она и есть расширение семантики RDF (ссылку приводил выше), которое должно быть эквивалентно прямой семантике OWL.


Спасибо, проблема теперь ясна. Но ведь эта проблема встает в полный рост только в OWL-Full (у которого есть еще и другая проблема — проблема неразрешимости)?

Кстати, не подскажешь ли нам, прикладникам, какие-нибудь материалы, с достаточной доступностью объясняющие теоретические основы OWL-DL? К сожалению, щупание этого OWL руками и чтение всяких практических руководств не позволяет в полной мере понять, как оно работает, в голове остается много белых пятен, от этого чувствуешь себя очень неуверенно.

kl>Самое смешное во всей этой истории, что полного соответствия добиться все равно не удалось, поэтому есть замечание:

kl>

There is a strong correspondence between the semantics for OWL DL defined in this section and the Direct Model-Theoretic Semantics defined in Section 3 (see Theorem 1 and Theorem 2 in Section 5.4). If, however, any conflict should ever arise between these two forms, then the Direct Model-Theoretic Semantics takes precedence.

kl>Оно есть в предыдущей версии документа, но не в последней. Насколько я в курсе, доказать полное соответствие так и не удалось. Питер и Майкл Шнайдер пытались добиться хотя бы того, что если несоответствие и появится, то только в OWL Full (а не в нормальных, разрешимых профилях OWL).

LP>>Кстати, не прояснишь один момент. Почему решили остановиться именно на DL, а не более полном подмножестве FOL? Видимо, сочли, что именно DL предоставляет наиболее хороший баланс между мощностью и вычислительной сложностью?


kl>Ага. Все развитие OWL и DL — это баланс между сложностью и разрешимостью. OWL DL — это балансирование на грани. Например, стоит разрешить number restrictions на транзитивных свойствах (т.е. утверждения типа "Петя имеет не менее 3-х потомков") и все — язык становится неразрешим.


Возможно, неразрешимость будет только в рамках принятой вычислительной модели? Если шире подойти к проблеме, то ведь есть к примеру промышленные constraint-solving системы с гарантированной разрешимостью в рамках finite-domain.

kl>При этом одно из лучших достижений в OWL 2 (по сравнению с OWL 1) — это то, что теперь есть профили (OWL EL, OWL RL, OWL QL, OWL DL,..), которые различаются по сложности, например, EL позволяет делать лог. вывод за полиномиальное время, QL — сводить лог. запросы к запросам к БД и т.д. В OWL 1 были OWL Lite, OWL DL и OWL Full, причем OWL Lite при своей ограниченности был все равно EXPTIME-логикой (т.е. хуже чем NP-complete).


Интересно. А известны примерные сроки выхода OWL 2?
Социализм — это власть трудящихся и централизованная плановая экономика.
Re[7]: Онтологии в компьютерных системах
От: kl Германия http://stardog.com
Дата: 28.07.10 10:47
Оценка:
Здравствуйте, LaPerouse, Вы писали:

kl>>Да, естественно в самом RDF owl:equivalentClass — это просто ресурс. Поэтому для достижения эквивалентности семантики приходится накладывать определенные семантические ограничения на RDF-графы, содержащие ресурсы из пространства имен owl. Так появилась OWL 2 Web Ontology Language RDF-Based Semantics для OWL. Она и есть расширение семантики RDF (ссылку приводил выше), которое должно быть эквивалентно прямой семантике OWL.


LP>Спасибо, проблема теперь ясна. Но ведь эта проблема встает в полный рост только в OWL-Full (у которого есть еще и другая проблема — проблема неразрешимости)?


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

LP>Кстати, не подскажешь ли нам, прикладникам, какие-нибудь материалы, с достаточной доступностью объясняющие теоретические основы OWL-DL? К сожалению, щупание этого OWL руками и чтение всяких практических руководств не позволяет в полной мере понять, как оно работает, в голове остается много белых пятен, от этого чувствуешь себя очень неуверенно.


Угу, я согласен. Пусть немного, но я как-то написал заметку о логических основах OWL. Чтобы не усложнять, речь идет о базовом языке ALC (подмножестве логики SROIQ, на которой базируется OWL DL). Я еще обещал создателям сайта описать на пальцах алгоритм лог. вывода (tableau reasoning), но руки не дошли. Но другой человек с моими правками скоро выложит слайды на эту тему (надеюсь).
Я правда не знаю, насколько это интересно именно для прикладных задач (в частности, насколько в задаче нужен логический вывод).

kl>>Ага. Все развитие OWL и DL — это баланс между сложностью и разрешимостью. OWL DL — это балансирование на грани. Например, стоит разрешить number restrictions на транзитивных свойствах (т.е. утверждения типа "Петя имеет не менее 3-х потомков") и все — язык становится неразрешим.


LP>Возможно, неразрешимость будет только в рамках принятой вычислительной модели? Если шире подойти к проблеме, то ведь есть к примеру промышленные constraint-solving системы с гарантированной разрешимостью в рамках finite-domain.


Не, неразрешимость там безнадежная (ну если только не откроют выч. модели мощнее машин Тьюринга). Кстати, забавно, что finite domain reasoning в DL вычислительно сложнее, чем в обычный лог. вывод (и даже, насколько я знаю, толком не реализован). В OWL есть интересное свойство: я могу написать лог. выражение для класса, у которого не будет конечной модели. Грубо говоря, класс нельзя интерпретировать конечным множеством объектов реального мира. А бесконечным можно. Могу даже привести пример, если интересно.
Что касается constraint-систем, то у них не хватит выразительности для OWL.

kl>>При этом одно из лучших достижений в OWL 2 (по сравнению с OWL 1) — это то, что теперь есть профили (OWL EL, OWL RL, OWL QL, OWL DL,..), которые различаются по сложности, например, EL позволяет делать лог. вывод за полиномиальное время, QL — сводить лог. запросы к запросам к БД и т.д. В OWL 1 были OWL Lite, OWL DL и OWL Full, причем OWL Lite при своей ограниченности был все равно EXPTIME-логикой (т.е. хуже чем NP-complete).


LP>Интересно. А известны примерные сроки выхода OWL 2?


Так он все-таки вышел в прошлом году. Вот, например, профили описаны здесь. Кстати, если (вдруг) ты пишешь на Java, то даже вышла версия OWL API, поддерживающая OWL 2.
no fate but what we make
Re[8]: Онтологии в компьютерных системах
От: LaPerouse  
Дата: 29.07.10 13:32
Оценка:
Здравствуйте, kl, Вы писали:

kl>Угу, я согласен. Пусть немного, но я как-то написал заметку о логических основах OWL. Чтобы не усложнять, речь идет о базовом языке ALC (подмножестве логики SROIQ, на которой базируется OWL DL). Я еще обещал создателям сайта описать на пальцах алгоритм лог. вывода (tableau reasoning), но руки не дошли. Но другой человек с моими правками скоро выложит слайды на эту тему (надеюсь).


Спасибо, начал читать.

kl>Я правда не знаю, насколько это интересно именно для прикладных задач (в частности, насколько в задаче нужен логический вывод).


Кстати, насчет логического вывода. В w3c планируют стандартизовать какой-нибудь язык правил, например тот же SWRL? Стандартного языка, поддерживаемого всеми инструментами, очень не хватает.

kl>Не, неразрешимость там безнадежная (ну если только не откроют выч. модели мощнее машин Тьюринга). Кстати, забавно, что finite domain reasoning в DL вычислительно сложнее, чем в обычный лог. вывод (и даже, насколько я знаю, толком не реализован). В OWL есть интересное свойство: я могу написать лог. выражение для класса, у которого не будет конечной модели. Грубо говоря, класс нельзя интерпретировать конечным множеством объектов реального мира. А бесконечным можно. Могу даже привести пример, если интересно.


Это класс owl:Thing (то есть T из DL) или что-то другое? Пример бы не помешал.

LP>>Интересно. А известны примерные сроки выхода OWL 2?

kl>Так он все-таки вышел в прошлом году. Вот, например, профили описаны здесь. Кстати, если (вдруг) ты пишешь на Java, то даже вышла версия OWL API, поддерживающая OWL 2.

Да, на ней самой и пишу. Я использую Jena с Pellet в качестве reasoner-a. У меня есть одна задумка, которую я некоторое время вынашиваю и вот недавно приступил к ее осуществлению. К сожалению времени совсем не хватает (занимаюсь этим в свободное время), набросал пока архитектуру и реализовал пару компонент. Если коротко — это редактор онтологий + базы знаний из пользовательских данных. Приложение (клиент) сделан на OSGi (модульная система для java), включает в себя компоненты (инструменты) для работы с онтологиями (класс браузер, импорт онтологий и тд), 3d-браузер онтологий и пользовательских данных, просмотрщики различных типов ресурсов. Пользовательский интерфейс описывается прямо в rdf, где нужно — xml. Центральное место занимают "вьюхи" — аналог sql-вьюх из мира реляционных субд, вместо sql — параметризуемый sparql (во вьюхе можно задать параметры запроса), отредактировать сам запрос, просмотреть результаты выполнения в виде таблицы и в виде совокупности графов всевозможных решений. Для различных типов ресурсов можно задать его рендерер в xml (xml хранится опять таки в б.з.), есть разные типы рендереров конфигуряемых в xml для каждой компоненты — рендерер ресурса в ячейке таблицы, рендерер в просмотрщике и пр., предполагается, что с приложением будет поставляться библиотека рендереров для типичных видов ресурсов, пользователь может редактировать и создавать свои рендереры (xsd-ки для валидации будут входить в поставку). Кроме того, для каждого ресурса можно задать просмотрщик контента (в частности, мультимедиа, документов, статей, книг). Интерфейс как в целом, так и отдельных компонент как уже сказал, описывается в базе знаний, там же можно сконфигурять используемые компоненты и сервисы. Основная идея — сделать вещь с одной стороны универсальную, применимую в самых различных аспектах работы с онтологиями, с другой — сделать ориентацию на самую что ни на есть бытовую работу с пользовательскими данными (хранение и доступ к фильмам, музыке, статьям, книгам, словом к любым пользов. данным), предельно модульная архитектура приложения должна способствовать бесшовную интеграция этих двух казалось бы несовместимых направлений.
Мне бы очень не помешали советы от людей, профессионально работающих с онтологиями вроде тебя, поэтому я бы хотел попросить (после получения мной хоть каких-то результатов) взглянуть на это дело, если будет несложно (впрочем, это будет еще не скоро).
Социализм — это власть трудящихся и централизованная плановая экономика.
Re[9]: Онтологии в компьютерных системах
От: LaPerouse  
Дата: 29.07.10 13:34
Оценка:
LP>3d-браузер онтологий и пользовательских данных

Не 3d конечно, 2d, с использованием jgraph.
Социализм — это власть трудящихся и централизованная плановая экономика.
Re[9]: Онтологии в компьютерных системах
От: kl Германия http://stardog.com
Дата: 29.07.10 14:18
Оценка:
Здравствуйте, LaPerouse, Вы писали:

LP>Кстати, насчет логического вывода. В w3c планируют стандартизовать какой-нибудь язык правил, например тот же SWRL? Стандартного языка, поддерживаемого всеми инструментами, очень не хватает.


Фиг его знает. SWRL неразрешим, поэтому сомневаюсь, что его стандартизируют. Скорее надо ориентироваться на DL safe rules. Это фактически тот же SWRL, но переменные в правилах байндятся только к объектам в ABox (named individuals). На практике это означает, что при помощи правил ты можешь выводить результаты об объектах, но не о классах. Например, ты можешь вывести, что "Петя — дядя Васи", но не сможешь вывести, что "у каждого дяди должен быть брат или сестра". Pellet поддерживает DL safe rules, в том числе много встроенных правил.

kl>>Не, неразрешимость там безнадежная (ну если только не откроют выч. модели мощнее машин Тьюринга). Кстати, забавно, что finite domain reasoning в DL вычислительно сложнее, чем в обычный лог. вывод (и даже, насколько я знаю, толком не реализован). В OWL есть интересное свойство: я могу написать лог. выражение для класса, у которого не будет конечной модели. Грубо говоря, класс нельзя интерпретировать конечным множеством объектов реального мира. А бесконечным можно. Могу даже привести пример, если интересно.


LP>Это класс owl:Thing (то есть T из DL) или что-то другое? Пример бы не помешал.


Не, Thing — это просто класс, чья интерпретация равна всему домену. Я имел в виду следующий классический пример (да, он громоздкий):

X ≡ ¬A ∧ C ∧ ∀U—.C, где C ≡ ∃R—.A ∧ (≤1 R), R ⊆ U, U — транзитивно

На пальцах, тут происходит следующее: каждая модель класса Х (множество объектов) должна включать бесконечную цепочку объектов, каждый из которых удовлетворяет ∃R—.A ∧ (≤1 R) (т.е. семантика ∀U—.C заставляет "передавать" определение С каждому следующему объекту в цепочке и таким образом продолжать ее). Если замкнуть цепочку в цикл, то из-за конструкции ≤1 R все свернется в единственный объект. А это невозможно, т.к. он тогда должен будет принадлежать А и ¬A одновременно.
Вывод: интерпретация Х обязана быть бесконечной. Поэтому есть интерес к finite model reasoning, поскольку люди, работающие с БД, резонно хотят отлавливать такие ситуации. Но там все непросто, ни один reasoner пока не поддерживает.

LP>Да, на ней самой и пишу. Я использую Jena с Pellet в качестве reasoner-a.


Тут будет проблема, т.к. Jena вроде до сих пор не поддерживает OWL 2, а OWL API — SPARQL. Но я бы все равно ориентировался на OWL API (хотя это субъективно, своя рубаха ближе к телу :) ). Хотя бы потому, что это позволит использовать разные reasoner'ы. А движок SPARQL прикрутить отдельно.

LP>У меня есть одна задумка, которую я некоторое время вынашиваю и вот недавно приступил к ее осуществлению. К сожалению времени совсем не хватает (занимаюсь этим в свободное время), набросал пока архитектуру и реализовал пару компонент. Если коротко — это редактор онтологий + базы знаний из пользовательских данных. Приложение (клиент) сделан на OSGi (модульная система для java), включает в себя компоненты (инструменты) для работы с онтологиями (класс браузер, импорт онтологий и тд), 3d-браузер онтологий и пользовательских данных, просмотрщики различных типов ресурсов. Пользовательский интерфейс описывается прямо в rdf, где нужно — xml. Центральное место занимают "вьюхи" — аналог sql-вьюх из мира реляционных субд, вместо sql — параметризуемый sparql (во вьюхе можно задать параметры запроса), отредактировать сам запрос, просмотреть результаты выполнения в виде таблицы и в виде совокупности графов всевозможных решений. Для различных типов ресурсов можно задать его рендерер в xml (xml хранится опять таки в б.з.), есть разные типы рендереров конфигуряемых в xml для каждой компоненты — рендерер ресурса в ячейке таблицы, рендерер в просмотрщике и пр., предполагается, что с приложением будет поставляться библиотека рендереров для типичных видов ресурсов, пользователь может редактировать и создавать свои рендереры (xsd-ки для валидации будут входить в поставку). Кроме того, для каждого ресурса можно задать просмотрщик контента (в частности, мультимедиа, документов, статей, книг). Интерфейс как в целом, так и отдельных компонент как уже сказал, описывается в базе знаний, там же можно сконфигурять используемые компоненты и сервисы. Основная идея — сделать вещь с одной стороны универсальную, применимую в самых различных аспектах работы с онтологиями, с другой — сделать ориентацию на самую что ни на есть бытовую работу с пользовательскими данными (хранение и доступ к фильмам, музыке, статьям, книгам, словом к любым пользов. данным), предельно модульная архитектура приложения должна способствовать бесшовную интеграция этих двух казалось бы несовместимых направлений.


А ты не думал сначала написать плагин к Протеже? Навскидку, P4.1 умеет очень многое из того, что ты написал (даже визуализатор через OWLViz). Она тоже сделана на OSGi (equinox или felix), плагины пишутся достаточно легко, плюс не надо будет заботиться о нижнем уровне (модели) приложения — можно сразу получать доступ к загруженым онтологиям через OWL API.
По крайней мере стоит взглянуть на архитектуру P4.1. Кода там щас много, но основные вещи я могу объяснить.

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


Конечно, никаких проблем.
no fate but what we make
Re[9]: Онтологии в компьютерных системах
От: kl Германия http://stardog.com
Дата: 29.07.10 14:22
Оценка:
Здравствуйте, LaPerouse, Вы писали:

LP>Кстати, насчет логического вывода. В w3c планируют стандартизовать какой-нибудь язык правил, например тот же SWRL? Стандартного языка, поддерживаемого всеми инструментами, очень не хватает.


Кстати, забыл сказать. Каждый раз когда хочется правил, надо убедиться, что нельзя обойтись цепочками свойств в OWL 2 (complex role inclusion axioms). Они гораздо мощнее, чем могут показаться.
no fate but what we make
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.