1

Тема: virtuoso - как загрузить онтологию?

Здравствуйте. Установил на Windows VIRTUOSO OPEN LINK. Подключаюсь к базе через Адо, могу писать SPARQL запросы к базе. Подключился через браузер к кондуктору.
Есть на руках онтология спроектированная в Protege.
Как добавить эту онтологию и сделать первые шаги с ней? Не говоря уже о получении схем БД из онтологий и т.д.
Может VAD'ы нужны какие. Если кому лень объяснять, то скажите где это прочитать можно. С английским плохо, совсем закопался в поиске....

Отредактировано Dmitry35 (2013-05-05 17:16:37)

Thumbs up Thumbs down

2

Re: virtuoso - как загрузить онтологию?

Я не уверен, что есть какие-то хорошие автоматизированные способы получения схем БД непосредственно из онтологий, и тем более их реализации в виде приложений для OpenLink Virtuoso. В принципе, можно сделать некий генератор, который по описаниям классов создаст третью нормальную форму, по одной группе таблиц на класс, со связями между таблицами. На практике это будет лишь черновик, потому что для тех таблиц надо будет придумать подходящие индексы, и не исключено, что превратить третью нормальную в "2.5-нормальную" форму. А чтобы придумать индексы и денормализацию, мало знать онтологию, надо ещё знать, какого вида запросы будут поступать от клиентов.

Ну а просто добавить онтологию в роли набора правил вывода (inference rule set), разумеется, возможно. Но придётся тщательно прочитать http://docs.openlinksw.com/virtuoso/rdfsparqlrule.html , потому что поведение системы вывода там достаточно замысловатое: функциональность там и сям урезана в пользу производительности и масштабируемости. В двух словах, если что-то нельзя вычислить очень быстро, то это "что-то" не вычисляется вообще.

3

Re: virtuoso - как загрузить онтологию?

Начинаю потихоньку разбираться, спасибо... Как понимаю в бесплатной версии Virtuoso также нет возможности подключится к действующим БД и получить OWL,RDF,XML из них для дальнейшей работы с ними... ?

Многие обсуждают и советуют именно Virtuoso для интеграции данных.. неужели только покупать лицензию Virtuoso для операции конвертации в формат OWL??
Хотелось бы просто достать OWL,RDF формат из БД....
Не хотелось бы просто изобретать велосипед и писать самому подобные конвертеры....

Отредактировано Dmitry35 (2013-05-11 23:34:13)

Thumbs up Thumbs down

4

Re: virtuoso - как загрузить онтологию?

Dmitry35 пишет:

в бесплатной версии Virtuoso также нет возможности подключится к действующим БД и получить OWL,RDF,XML из них для дальнейшей работы с ними... ?

Увы, в бесплатной версии действительно нет виртуальной схемы, для экспорта данных из других баз придётся использовать или средства этих баз, или внешние генераторы отчётов. Для работы RDF View непосредственно над таблицами присоединённых БД нужна какая-то из коммерческих версий.

5

Re: virtuoso - как загрузить онтологию?

при подключении через АДО проблем с русским языком нет в запросах SPARQL?

6

Re: virtuoso - как загрузить онтологию?

Shcherbak пишет:

при подключении через АДО проблем с русским языком нет в запросах SPARQL?

Не знаю, ещё никто не жаловался.

Более точно, независимо от Виртуозы,ADO и SPARQL в Сети есть серьёзная проблема с русскими данными. Кривые кодировки. Дело в том, что Turtle,NQuads и т.п. по стандарту всегда UTF-8, и никакие указания кодировок в Content-Type не могут этот факт поменять. Возникают ошибки, причём двусторонний обмен данными между "читавшими спеку" и "не читавшими спеку" приводит к ошибкам "в обе стороны" --- по Сети бродят как не-UTF-8 данные с UTF-8 Content-Type и UTF-8 данные с не-UTF-8 Content-Type.

Это проблема не только для русского. Для примера можно посмотреть дампы DMOZ, в части, относящейся к ветке каталога "World" (ветке для не-глобальных не-англоязычных сайтов). Там на протяжении одного RDF/XML файла можно увидеть десятки разных кодировок. Некоторые двухбайтовые кодировки используют байты <, ", = и > в строках, что делает XML невалидным, а его чтение стандартным загрузчиком --- невозможным.

Я сейчас пишу автоопределитель русских кодировок, чтобы дать возможность апп-девелоперам восстанавливать данные после этих ошибок, но пишу "по остаточному принципу", поэтому непредсказуемо по срокам.

7

Re: virtuoso - как загрузить онтологию?

Иван. это отлично, что в адо нет проблем. Вопрос был в общем в аналогиях. у нас есть проблемы с русским в php c подключением к виртуозо через ODBC, потому и решил поинтересоваться, как у других дела.

Сейчас мы кодировщик/декодировщик написали для русского и храним все в кодах и в общем у нас с русским проблем нет, но сторонние клиент не могут к нам подключится потому что они не понимают нашу закодированную информацию.

все что предложено в тех поддержке мы сделали, но оно мало помогло. опять же речь о виндовс 7 и xp.
на линуксе с русским более менее c u-драйверами.

Кстати в php при генерации json в спаркл запросе select есть странное ограничение на вывод количества элементов json  можно получить до 20 записей, а далее обрезается вывод, при чем обрезается где захочет.
. Думаю опять же это не проблема виртуозо, а проблема драйвера для PHP.
но в ISQL, написанном на php, все норма, файл с json выводом полный, и это в тройне не понятно.

Опять же не проблема, можно за два запроса получить 40 записей, что при создании  paginator в общем то реально, но частоту вывода в 25 записей уже поставить нельзя.

при чем при генерации обычного датасета такая проблема не наблюдается.


PS. Про русский в дополнение скажу - были интересные артефакты, первый раз идет инсерт на виртуозо все нормально, и потом можно просмотреть, а второй запрос следом уже не проходит, бьется кодировка.

PPS. Данные в файлах для передачи на виртуозу различными способами кодировали в utf-8 и с BOM и без.