Архив ‘ Критика ’ Категория

Данное рассуждение было навеяно комментарием к заметке, посвященной реализации хранилища триплетов, поверх СУБД  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 это отстой. Есть же !

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

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

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

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

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

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

OpenID на SHCHERBAK.NET! (Развитие ресурса)

SHCHERBAK.NET развивается, может быть не так быстро, как хотелось бы, но появляются новые идеи, люди, которые готовы внести свой вклад в развитие технологий .

Мне жаль, что некоторые авторы отказали мне в помощи по развитию этого ресурса

Я, конечно, все понимаю, но хочу им сказать - зря вы так - мне лично ваша информация не нужна - я и сам знаю весьма не мало по тематике - а русскоязычным читателям это было бы полезно!

Сайт как развивался, так и будет продолжать.

А поделиться информацией это иногда и не так уже плохо.

Кроме того, выражаю благодарность от себя тем людям, которые мои инициативы решили поддержать!

Сегодня добавил поддержку OpenID на сайт SHCHERBAK.NET.

Надеюсь теперь авторизироваться на сайте станет проще для комментирования
(особенно пользователям Живого Журнала) !

Кроме того, арендовал новый сервер для сайта SHCHERBAK.NET. Готовлюсь к переезду на новые "мощностя"!

Заметил, что по какой то причине произошел кросспостинг в ЖЖ - это недоразумение будет исправлено.

Кросспостингу я говорил и говорю нет!

Оставайтесь с нами, руководитель проекта SHCHERBAK.NET.

В продолжение тем, поднятых в комментариях предыдущих постов!

Уважаемые читатели SHCHERBAK.NET, cкажу Вам чесно - меня вообще угнетают все эти языки запросов (SPARQL, SPARUL и другие) - я и взялся работать с ними только для того, что хочу повысить уровень совместимости моего текущего проекта с другими семантик веб приложениями, а для этого мне нужна sparql-точка доступа.

Кроме того, я добился почти линейного роста сложности для алгоритма анализа онтологии, это при том, что я контролирую этот процесс - а что такое sparql и тому подобное - это логические вычисления (сложность которых может возрастать експоненциально) - которые очень ресурсоемкие - и в большинстве задач вообще не нужные - например, зачем статистку работы пользователей с сайтом бросать в triple store (пусть даже через маппинг)? если реляционная база данных справиться с этим лучше. А, умный запрос построить сможете по этому! ну и что. Есть специальные аналитические средства, которые это все равно сделают лучше.
он потому и хорош, что поддерживает распределенность и разнородность источников информации. И опять же не обязательно через тотальный переход на RDF или .
А через динамическую составляющую Семантического Веба - семантические веб-сервисы. Вот в их задачу входит поддежка доступа через SPARQL. Но это минимум, который надо поддерживать. И абсолютно не обязательно, чтобы источник (хранилище) информации был на RDF и .
То что надо уметь делать маппинг в - это конечно да, но маппинг нужно поддерживать для каких задач?
Для возможности адекватно реагировать на внешние воздействия в условиях неизвестности содержания входящих запросов и не более того!
Зачем городить рекурсивный запрос, например, через Jena, для выборки экземпляров какого-то класса,
если вы как разработчик системы можете написать запрос на классическом SQL, который в несколько (а может и несколько десятков) раз выполниться быстрее. Вы же знаете схему данных! Пусть внешний пользователь или агент не знает схемы (потому мы ему и точку доступа предоставляем). Повторюсь, вы же знаете схему. Зачем делать логический вывод? Это же не эффективно. Или выборку вы не сможете сделать? Логический вывод надо делать там, где это действительно надо.

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

Я просто смеялся, когда мне говорят, о построении "руками" запросов к онтологии, у которых число связей более тысячи. Это же какой у вас должен быть ум, чтобы построить вывод, учитывающий смысл, хотя бы половины связей.
Конечно, Вы скажете, не все используют онтологии с тысячей связей. Хорошо, думаете, на сотне связей Вам будет намного легче. Если да, то вы гросмейстер по анализу ситуаций (шахматисты отдыхают и нервно курят в сторонке)
А когда мы говорим о агентах - он же должен уметь обследовать окружение с целью "понять" - а где же я нахожусь. А зачем это? чтобы понять как реализовать какое то действие на обследуемом источнике. Вот тут Вам и начинает помогать SPARQL. Только вот проблема - логику действия вы ему (агенту) должны объяснить, при чем так, чтобы он это понял и внял. А это уже чистой воды программирование - причем программирование действий. А это уже не просто описание фактов и объектов, это уже нечто посложнее... И поверьте, не такое уже это и простое дело, как многим может показаться! Вот здесь то и начинается, страшное слово Искусственный Интелект.
PS Я конечно понимаю, сейчас каждый кому не лень начинает писать SW приложения, типа бум, и все такое. Только думать все таки надо, где технологии SW надо применять, а где нет.