Данное рассуждение было навеяно комментарием к заметке, посвященной реализации хранилища триплетов, поверх СУБД  Postgress - OWLgress' у.

Итак, онтологии, например, в представлении Description Logic (DL), и базы данных, например, реляционные(РБД),  представители различных подходов к моделированию, причем

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

Как можно решить эти проблемы?

По сути, как совместить несовместимое, и, как  это несовместимое эффективно обрабатывать? :grin:

Рассмотрим,  объектный подход (классика ООП), как частный случай логического подхода. Сразу становится легче - объектный подход совместим с реляционным намного лучше.  Отображение объектов в  РБД уже реализовано десятком различных способов (это можно увидеть в различных ORM таких как hibernate, toplink и doctrine). Производительность решений на базе ORM  может быть весьма высокой (при правильном проектировании БД почти сравнима с производительностью  "native"   SQL-решений), и, конечно, удобство разработки.

Ну и что, скажете вы. В этом ну и что, есть маленький момент, при котором даже 20% потеря производительности при использовании ORM не важна.

А момент этот заключается в том, что  ORM работает с объектами!

А в основе онтологии лежит объектная иерархия - т.е объекты связанные между собой отношениями

Значит, можно эту иерархию естественным способом развернуть через ORM в РБД.

Но вот проблема объект онтологии это не объект ORM!

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

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

Но это не проблема для локальных нераспределенных хранилищ триплетов - в этом случае эту разницу можно скрыть :grin:

а как это можно сделать?

можно сделать адресацию компонентов онтологии через пространственные координаты как в Oracle Spatial и осуществлять сборку объектов и их экземпляров непосредственно перед обработкой

а можно ... (тема одной следующих заметок :grin: )

Но это не все...

Свойство-центричность и объектность онтологии это один из нижний уровень семантического веба.

Это Уровень RDF c RDFS.

Я знаю многих умников, кричащих, что RDF с RDFS это отстой. Есть же OWL!

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

А с другой стороны, мне понравились ряд OWL Full-ориентированных онтологий по содержимому совместимых с OWL Lite (хоть это и спорное мое убеждение). В этом аспекте, мне больше всего нравятся легковесные онтологии на OWL Full... Это же надо, именно для представления легковесных онтологий (чуть ли не для простейших таксономий ) и  был создан OWL Full?! ;)

Действительно важным является то, что на основе RDFS  логический вывод будет крайне примитивным, но зато и более производительным. Таким образом, расширяя современные ORM  средствами поддержки  RDF/RDFS мы по сути создаем Semantic ORM. Далее, необходимо расширить набор отношений, поддерживаемых Semantic ORM до уровня OWL - буду еще на эту тему рассуждать...

PS Вот так и определился перевод какого стандарта будет следующим  - Профили OWL 2.

SPARQL PROTOCOL и SPARQL готовы, как только переведу их из дока  в соответствующую форму  W3C, опубликую.

PPS  Semantic ORM - шаг вперед или два назад?  ;)

Owlgres – масштабируемый OWL2 DL-Lite Reasoner

Для обработки онтологий в стандарте OWL 2 можно использовать reasoner Owlgres.  Кстати, reasoner - это подсистема логического вывода; OWL 2 - следующая версия Web Ontology Language.

Чем Owlgres хорош? Во-первых, это опенсорсный продукт (а учитывая то, что он распространяется и по коммерческой лицензии,  есть вероятность, что проект быстро не погибнет). Во-вторых, в Owlgres поддерживается высокоскоростной логический вывод на основе дескриптивной логики. Высокая скорость поддерживается за счет реализации Owlgres поверх реляционной СУБД PostgreSQL.

Кстати, идея реализации онтологий на OWL (или других языках) поверх реляционных баз данных не нова. Вы уже слышали, на страницах моего сайта о Oracle Spatial... Кроме того, это оказывается и не так уже и сложно, когда есть математическая модель онтологий и навыки проектирования реляционных баз данных. Сложность скорее в той рутинной работе, которую нужно сделать, чтобы учесть все ньюансы OWL и LBASE.

В качестве языка запросов к онтологии OWL в Owlgres используется SPARQL-DL.

И, напоследок, уже доступна альфа-версия Owlgres, которую можно использовать как Sparql-точку доступа для создания, например, "умных" сайтов или web-сервисов.

PS. Помниться был еще один подобный проект по хранению онтологий в  Postgress (правда академический), но о нем уже года полтора ничего не слышно, а жаль - можно было бы сравнить, например, производительность.  И лицензия для использования была там получше ))

Если у вас есть информация о подобных проектах, пишите в коментариях ))

Функциональность редактора онтологий Protege(см. заметку) может быть расширена путем добавления плагинов.

Плагины к Protege можно разрабатывать самому, а можно воспользоваться одним из представленных ниже:

TGVizTab – плагин Protege, который позволяет визуализировать содержимое онтологии с помощью java библитеки TouchGraph. TGViz выводит графическое представление объектов, экземпляров и связей между объектами с возможностью контроля глубины вывода.

Вид онтологии в Protege, визуализированной с помощью TGViz:


Вид онтологии в редакторе Protege

Рекомендую для пользования!

Читать продолжение »

The article describes the method of storage large and stable ontologies with using systems of management of spatial data.

Читать

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

Читать далее