1

Тема: Virtuoso,SPARQL и др. Вопросы начинающего

Доброе время суток

Начал изучать Virtuoso/SPARQL в надежде делать следующее:
Загружать в Virtuoso онтологии и их объекты,
при помощи SPARQL делать запросы получающие новые логически выведенные факты.

К сожалению английский знаю плоховато: если ткнуть в конкретное место прочитаю,
а вот вдумчиво изучить всю доку на Virtuoso займет оооочень долгое время.

Потому прошу, по возможности, осветить некоторые возникающие вопросы,
можно тыканием в конкретное место в документации.

Написал две примитивные онтологии, которые приложены к этому сообщению
а также некоторое время можно будет взять здесь:

Онтологии писаны ручками, так что, если что то криво, подскажите плиз.

1.
Загрузил файлы в Virtuoso при помощи WebDAV Browser.

В1. А куда именно я их загрузил?

В2. Можно ли их теперь там увидеть?

В3. Можно ли их теперь оттуда удалить?

В4. Какие другие способы? Например я создал
виртуальную директорию и положил туда эти файлы:
Будут ли они при этом участвовать в результатах SPARQL запроса?

2.
Делаю различные SPARQL запросы и имею непонятные мне результаты
например

select ?x ?y ?z
where
{
  ?z ?y t2poi:Kfc .
}

дает строчки содержащие http://pivvmvirtuoso:8890/virtpiv/t2org#Kfc

Ура - значит мои онтологии загрузились в систему
Радостно делаю предположительно более общий запрос:

select ?x ?y ?z
where
{
  ?z ?y ?x .
}

в результатах куча строк, но содержащей http://pivvmvirtuoso:8890/virtpiv/t2org#Kfc нет!
Да и вообще чего либо из моих онтологий нет.

В5. Почему это так и как сделать чтобы результат более общего запроса включал мои данные?


3. Не удается увидеть в результатах логический вывод.

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

Например, есть

t2org:CatFood rdfs:subClassOf t2poi:POI .
t2org:Cat2Rest rdfs:subClassOf t2poi:CatFood .

Хочу получить иерархию подклассов t2poi:POI

Делаю запрос с  условием

?z rdfs:subClassOf t2poi:POI .

Надеюсь увидеть t2poi:CatFood и t2org:Cat2Rest
Но вижу только t2poi:CatFood
А t2org:Cat2Rest вижу только если добавлю еще условие

?y rdfs:subClassOf ?z

Получается, я обязан знать всю иерархию, а получить её простым способом не могу.
И с объектами та же фигня: я хочу получить все t2poi:POI, но объектов этого класса не существует
есть только объекты подклассов его подклассов.
Я конечно могу указать в запросе все три уровня, но что если есть объект на втором уровне, получается я должен в запросе перебирать все случаи,
но подозреваю что есть более правильный способ.

В6. Как правильно SPARQL запросом получить иерархию подкласов t2poi:POI
В7. Как правильно SPARQL запросом конкретные объекты t2poi:POI


Еще например: у меня есть связь

t2org:AZS owl:equivalentClass t2poi:Cat2AZS.

Я полагал, что это значит, что условия в запросе

?z a t2org:AZS .
и
?z a t2poi:Cat2AZS .

Должны давать одинаковые результаты, однако первый запрос дает две строчки,
а второй пустой результат.

В8. Почему вывод не одинаков и как добится одинакового вывода при запросе a t2org:AZS и a t2poi:Cat2AZS ?


В9. Как вообще добиться логического вывода в запросе - где у меня в понимании кривизна?

Отредактировано piv (2011-02-22 16:32:37)

Post's attachments

pivonto2.zip 3.43 kb, 3 downloads since 2011-02-22 

You don't have the permssions to download the attachments of this post.

Thumbs up Thumbs down

2

Re: Virtuoso,SPARQL и др. Вопросы начинающего

piv пишет:

а вот вдумчиво изучить всю доку на Virtuoso займет оооочень долгое время.

Да, доки у них знатные. Зато описано все очень подробно.

B1.
WebDav не использовал, но раз у вас получилось выполнить запрос с ?z ?y t2poi:Kfc, то, немного ее модифицировав:

select distinct ?g
where
{
  graph ?g { ?z ?y t2poi:Kfc . }
}

можно вытащить граф, в который загружена ваша онтология.

B2. Зная граф, можем выполнять к нему SPARQL-запросы. Без указания графа используется дефолтный.

B3.
Virtuoso поддерживает SPARUL

В4.
Другие способы чего? Загрузки? Их масса. Есть специальные хранимые процедуры, есть скрипт для загрузки больших массивов данных, тот же SPARUL, и т. д.

В5.
Очень странно. Не верю (c) smile

В9.
По умолчанию логический вывод выключен. Нужно создать rdfs_rule_set, заполнить его и использовать в запросах. Эта статья из документации довольно хорошо раскрывает тему вывода в Virtuoso: http://docs.openlinksw.com/virtuoso/rdfsparqlrule.html

Thumbs up +2 Thumbs down

3

Re: Virtuoso,SPARQL и др. Вопросы начинающего

piv пишет:

вдумчиво изучить всю доку на Virtuoso займет оооочень долгое время.

"Если нам было тяжело это писать, то пусть вам будет тяжело это читать" wink На самом деле не всё так страшно, эту доку удобно гуглить, достаточно добавить к интересующим словам ещё и слово virtuoso.

piv пишет:

Загрузил файлы в Virtuoso при помощи WebDAV Browser.

Они при этом попали в граф с URI, у которого "путь" совпадает с путём к ресурсу в DAV, а имя хоста определяется в соответствии с параметрами в секции URIQA файла конфигурации (virtuoso.ini или аналога). Если включен DynamicLocal, то внутренее представление этого URI будет local:... , что потребует дополнительной аккуратности при разработке (в частности, использования макро ^{URIQADefaultHost}^ ту и там), зато позволит носить базу с места на место без лишних проблем.

piv пишет:

В3. Можно ли их теперь оттуда удалить?

Можно. SPARQL CLEAR GRAPH IRI-expression

piv пишет:

Радостно делаю предположительно более общий запрос:

select ?x ?y ?z
where
{
  ?z ?y ?x .
}

в результатах куча строк, но содержащей http://pivvmvirtuoso:8890/virtpiv/t2org#Kfc нет!

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

piv пишет:

Не удается увидеть в результатах логический вывод.

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

По умолчанию вывод не делается, надо создавать inference rule set, и потом ссылаться на него в запросе.

4

Re: Virtuoso,SPARQL и др. Вопросы начинающего

Огромное спасибо за ответы!!! Сразу появилось желание продолжать!

Idsa пишет:

В5.
Очень странно. Не верю (c)

У меня есть свидетели!  lol


iv_an_ru пишет:

Если индексы не были рассинхронизованы в результате загрузки чего-нибудь с отключенным логом и с ошибками в процессе загрузки, то результаты должны содержаться один в другом

Хм. Я делал несколько неудачных попыток загрузить demo.vad.
Возможно это взаимосвязано...
Есть какой либо способ это исправить?


Idsa пишет:

статья из документации довольно хорошо раскрывает тему вывода в Virtuoso: http://docs.openlinksw.com/virtuoso/rdfsparqlrule.html

За ссылку отдельное спасибо я до туда "ниасилил", а там ещё куча интересного

Отредактировано piv (2011-02-23 16:48:41)

Thumbs up Thumbs down

5

Re: Virtuoso,SPARQL и др. Вопросы начинающего

piv пишет:

Хм. Я делал несколько неудачных попыток загрузить demo.vad.
Возможно это взаимосвязано...
Есть какой либо способ это исправить?

Удалить, добавить заново и убедиться, что в логах нет никаких ошибок

piv пишет:

За ссылку отдельное спасибо я до туда "ниасилил", а там ещё куча интересного

А у меня тоже есть вопрос насчет логического вывода к Ивану smile Нужно ли в rule_set загружать только свою онтологию или вдобавок онтлогии rdf, rdfs, owl? Иными словами, Virtuoso знает о rdf, rdfs, owl или ее нужно обучать "с нуля"?

Thumbs up Thumbs down

6

Re: Virtuoso,SPARQL и др. Вопросы начинающего

piv пишет:
iv_an_ru пишет:

Если индексы не были рассинхронизованы в результате загрузки чего-нибудь с отключенным логом и с ошибками в процессе загрузки, то результаты должны содержаться один в другом

Хм. Я делал несколько неудачных попыток загрузить demo.vad.
Возможно это взаимосвязано...
Есть какой либо способ это исправить?

Если vad_install('something.vad') сообщает об ошибке, он, как правило, добавляет в отчёт и способ избавиться от её последствий. Если на момент ошибки база ещё не менялась (скажем, нужный файл не нашёлся), то никаких действий и не пропишет. Если изменения были, то обычно "лечение" сводится к удалению лога перед рестартом сервера, чтобы не сделать ошибочные действия повторно при "накатывании лога на базу". Если vad_install просил стереть лог, но он стёрт не был, то трудно гадать, что именно потом могло пойти не так.

7

Re: Virtuoso,SPARQL и др. Вопросы начинающего

Idsa пишет:

Нужно ли в rule_set загружать только свою онтологию или вдобавок онтлогии rdf, rdfs, owl? Иными словами, Virtuoso знает о rdf, rdfs, owl или ее нужно обучать "с нуля"?

Vitruoso знает о некоторых предикатах, вроде inverseFunctionalProperty, isSubpropertyOf и т.п., поэтому явно включать эти онтологии надо только если вам надо делать логический вывод не на "конечных" данных, а на онтологиях, то есть делать сложные запросы для поиска, какие предикаты обладают некоторыми "замысловатыми" свойствами, которые надо выводить. Это достаточно экзотический случай. Обычно есть некие более-менее регулярные данные, например "дамп чего-нибудь", и онтология, описывающая содержимое этого дампа, каким оно должно было бы быть, если бы не ошибки. (Возможно, не одна онтология, а сборная солянка из нескольких, напр. foaf+sioc+dc...). Тогда в rule set помещают именно эту онтологию.

Иногда известную онтологию ещё и "урезают" перед использованием в rule set, чтобы минимизировать ущерб, который в процессе вывода могут нанести предикаты с грязными данными. Примером может служить предикат, который в онтологии объявлен inverseFunctionalProperty без "NULL value", скажем, адрес личной электронной почты), а на самом деле в данных для множества различных субъектов указано одно и то же инвалидное значение этого предиката (скажем, пустая строка). Чтобы подсистема вывода не посчитала эквивалентными всех людей, у которых вместо адреса записана "одна и та" же пустая строка, объявление этого предиката как inverseFunctionalProperty придётся "закомментировать" перед использованием онтологии в rule set.

8

Re: Virtuoso,SPARQL и др. Вопросы начинающего

iv_an_ru пишет:

Если vad_install('something.vad') сообщает об ошибке, он, как правило, добавляет в отчёт и способ избавиться от её последствий

.

Думает довольно долго потом пишет следующее:

00000 Errors detected
00000 Installation of "Demo Database" was unsuccessful.
      The installation of this VAD package has failed.
      Please delete the transaction file /var/lib/virtuoso-opensource-6.0/db/virtuoso.trx
      and then restart your database server.
      Note: Your database will be in its pre VAD installation state after you restart.
00000 FATAL

Как то не очень информативно  neutral

Прочитал я это с первого раза, так что virtuoso.trx вроде бы всегда удалял.
Хотя может и и пропустил разок тогда действительно дело в этом...

Так что, без переустановки virtuoso проблему не решить?
А переустановка поможет?

Вот ещё вариант - возможно ли, что просто вывод в веб интерфейсе ограничен и просто данные из моих онтологий не попали?
Я бы не сказал что там результатов больше 10000, но я и не считал.

Отредактировано piv (2011-02-24 08:59:22)

Thumbs up Thumbs down

9

Re: Virtuoso,SPARQL и др. Вопросы начинающего

piv пишет:

Вот ещё вариант - возможно ли, что просто вывод в веб интерфейсе ограничен и просто данные из моих онтологий не попали?
Я бы не сказал что там результатов больше 10000, но я и не считал.

select count(*)
where
{
  ?z ?y ?x .
}

А еще лучше укажите в select, из какого графа считывать: select ... from <graphUri> - тогда будут только ваши данные.

Thumbs up +1 Thumbs down

10

Re: Virtuoso,SPARQL и др. Вопросы начинающего

select count(*)

Да 306042 действительно немного больше чем 10000....
И явно больше чем в выдаче
Так что все оказалось проще чем я сначала испугался

Thumbs up Thumbs down

11

Re: Virtuoso,SPARQL и др. Вопросы начинающего

Проблема с правами

iv_an_ru пишет:

SPARQL CLEAR GRAPH IRI-

Я все делаю из кондуктора от имени  dba

Сначала при попытке выполнить CLEAR GRAPH или DELETE у меня не хватало прав на различные процедуры
Я добавил на эти процедуры галки в CONDUCTOR->System Admin->Grants для dba
Все получилось.
Затем я опять при каком то запросе столкнулся с проблемой прав.
Тогда я там же расставил все возможные галки.
Теперь у меня больше не выходят Sparql запросы вообще - вот типичный ответ:

42000 Error SQ033: SELECT access denied for column S of table DB.DBA.RDF_QUAD, user ID 105

SPARQL query:
select distinct ?z ?y ?g
where
{
   ?z ?y ?g .
}

или вот

42000 Error SQ033: SELECT access denied for column S of table DB.DBA.RDF_QUAD, user ID 105

SPARQL query:
select ?z ?y ?x
where
{
  ?z ?y ?x .
}

При этом на  DB.DBA.RDF_QUAD  и все её столбцы флажки взведены.

Я в тупике. Подскажите, как раздать нужные права? Лучше вообще на все.

И ещё вопрос как полностью откатить virtuoso к начальному состоянию (ubuntu)?:
Я удалил все пакеты, поискал файлы *virtuoso* их не нашлось.
Я вновь поставил virtuoso  однако база полностью сохранилась та же что была
со всеми правами и паролями.
Поиск по документации по слову uninstall  нашел только про удаление VAD.

Thumbs up +1 Thumbs down

12

Re: Virtuoso,SPARQL и др. Вопросы начинающего

Для изменения данных надо, чтобы пользователь принадлежал группе SPARQL_UPDATE. Если вы используете SPARQL web service endpoint, то для этого достаточно в ISQL или кондукторе или где угодно выполнить

GRANT SPARQL_UPDATE to "SPARQL";

Где имнно находится база, написано в конфигурационном файле, называемом по умолчанию virtuoso.ini . При запущенном сервере командная строка  ps -fA | grep virtuoso  выдаст вам параметры, с которыми сервер запускался, если вместо virtuoso.ini там "-c чтотодругое.ini", смотрите чтотодругое.ini .
Можно узнать через ISQL:

SQL> select virtuoso_ini_path();
virtuoso_ini_path
VARCHAR
_______________________________________________________________________________

virtuoso.ini

Остаётся, правда, вопрос, в какой директории этот .ini искать. Обычно всё же все файлы где-то близко друг к другу, поэтому корень HTTP-ресурсов может дать хорошую подсказку:

SQL> select http_root();
http_root
VARCHAR
_______________________________________________________________________________

/home/iv/virtdev-VAJRA64/binsrc/tests/wb

Для полного сброса надо 1) положить сервер, 2) стереть .db и .trx файлы.

На время экспериментов я бы посоветовал завести отдельную "песочницу", создать там .ini файл по вкусу, и запускать сервер в отдельном окне терминала с ключом -f . Тогда удобно использовать функции вроде dbg_obj_princ() для вывода отладочной информации в это окно, ну и убивать сервер / стирать базу тоже очень наглядно: Ctrl-C нажал --- процесс пошёл, стала доступна командная строка для убиения базы, потом опять поднял...

13

Re: Virtuoso,SPARQL и др. Вопросы начинающего

iv_an_ru пишет:

Для изменения данных надо, чтобы пользователь принадлежал группе SPARQL_UPDATE.

Это я сделал с самого начала.

iv_an_ru пишет:

GRANT SPARQL_UPDATE to "SPARQL";

"SPARQL" - это "имя пользователя" если я правильно понял. В моем случае "dba".

Или не стоит этого делать через dba?
А лучше использовать пользователя "SPARQL"?

Я сразу сделал для "dba" SPARQL_UPDATE,SPARQL_SELECT и SPARQL_SPONGE, через соответствующую вкладку в web интерфейсе.
Причем, с моей точки зрения, там работает глючно - добавляешь роль, сохраняешь, смотришь роль не добавлена.
Как то все же сделал, однако... Наверное надежнее делать через ISQL


Для полного сброса надо 1) положить сервер, 2) стереть .db и .trx файлы.

Спасибо! Я действительно их не удалил почему то.

Thumbs up Thumbs down

14

Re: Virtuoso,SPARQL и др. Вопросы начинающего

Еще вопрос

На новой базе делаю запрос

select distinct ?g ?z ?y ?x
where
{
  graph ?g { ?z ?y ?x . }
}

В полученной таблице вижу
три разных ?g, а именно:

Хочу получить этот перечень графов - убираю ?z ?y ?x

select distinct ?g
where
{
  graph ?g { ?z ?y ?x . }
}

Ожидаю получить как минимум эти три значения
однако в выводе только одно:

Почему вывод не включает
два других ?

http://www.w3.org/2002/07/owl#
http://pivvmvirtuoso:8890/DAV

Thumbs up Thumbs down

15

Re: Virtuoso,SPARQL и др. Вопросы начинающего

piv пишет:

Почему вывод не включает
два других ?

Опять "не верю" smile Запросы точно больше ничем не отличаются? Пробовали разные комбинации ?g ?x, ?g ?y и т. д.?

Thumbs up Thumbs down

16

Re: Virtuoso,SPARQL и др. Вопросы начинающего

Idsa пишет:
piv пишет:

Почему вывод не включает
два других ?

Опять "не верю" smile Запросы точно больше ничем не отличаются? Пробовали разные комбинации ?g ?x, ?g ?y и т. д.?

Чему именно? Если тому что в результате  select distinct ?g  одна строка получилась, то смотрите приложенный скриншот.

К сожалению к сообщению добавить можно только один файл.

Но скриншоты для select distinct ?g ?z ?y ?x   я  тоже сделал хотя они и менее наглядные из за большого вывода.

пробовал
select distinct ?g ?z
select distinct ?g ?x
select distinct ?g ?y
во всех присутствуют все три графа
а в  select distinct ?g  только один  neutral

Отредактировано piv (2011-03-01 16:54:35)

Post's attachments

oneStr.png 26.38 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

Thumbs up Thumbs down

17

Re: Virtuoso,SPARQL и др. Вопросы начинающего

Кстати

SELECT  count distinct ?g
WHERE { graph ?g  {?s ?p ?o} }

Дает верное число (4 так как я ещё один граф успел загрузить)

Но если убрать count  в выводе только одна строка.
Похоже глюк 8(

Thumbs up Thumbs down

18

Re: Virtuoso,SPARQL и др. Вопросы начинающего

По-хорошему, это нужно отписать в virtuoso-discussions, но, думаю, Иван увидит и здесь. Хотя до конца не верю, что это баг: слишком очевидный юзкейс. Может, база все-таки где-то покоцалась?

Кстати, Иван, у меня немного некорректный вопрос. Я когда примерно год назад серьезно работал с Virtuoso, честно говоря, удивлялся количеству багов. Особенно меня тогда поразил ADO.NET провайдер, в частности его поддержка Entity Framework. Фактически он не работал, но при этом был пущен в продакшн. Хотя в целом Virtuoso - продукт качественный и востребованный... Мне было бы очень интересно узнать вашу оценку ситуации изнутри.

Отредактировано Idsa (2011-03-01 17:50:05)

Thumbs up +1 Thumbs down

19

Re: Virtuoso,SPARQL и др. Вопросы начинающего

piv пишет:

Кстати

SELECT  count distinct ?g
WHERE { graph ?g  {?s ?p ?o} }

Дает верное число (4 так как я ещё один граф успел загрузить)

Но если убрать count  в выводе только одна строка.
Похоже глюк 8(

Не смог пока воспроизвести neutral

20

Re: Virtuoso,SPARQL и др. Вопросы начинающего

Idsa пишет:

Кстати, Иван, у меня немного некорректный вопрос. Я когда примерно год назад серьезно работал с Virtuoso, честно говоря, удивлялся количеству багов. Особенно меня тогда поразил ADO.NET провайдер, в частности его поддержка Entity Framework. Фактически он не работал, но при этом был пущен в продакшн. Хотя в целом Virtuoso - продукт качественный и востребованный... Мне было бы очень интересно узнать вашу оценку ситуации изнутри.

Бывает и такое, если фича делается для одного конкретного заказчика, он её принимает, на его тестах как-то работает --- а потом уже никто не смотрит, заявлена эта фича в документации как экспериментальная или нет. Ещё хуже, когда в коммерческой версии баги уже подфиксаны, а до Virtuoso Open Source правки ещё технически не дошли, или когда люди ставят не самый последний дистрибутив, но читают не пришедшую с ним в одном архиве документацию, а docs.openlinksw.com, где отражается последняя и при том коммерческая функциональность.

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

В итоге самый популярный ответ на сообщение об ошибке --- "Да, это моя бага, она зафиксана в коммерческой версии и сейчас патч находится на пути в дерево Virtuoso Open Source".

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

Конкретно про ADO.NET прокомментировать сходу не могу, не видел его никогда. Если подскажете время и версию, то могу спросить (и при необходимости открутить уши).

21

Re: Virtuoso,SPARQL и др. Вопросы начинающего

Idsa пишет:

По-хорошему, это нужно отписать в virtuoso-discussions, но, думаю, Иван увидит и здесь. Хотя до конца не верю, что это баг: слишком очевидный юзкейс. Может, база все-таки где-то покоцалась?

Нет. Этот эффект я получил на свеже установленной виртуальной машине, на которую кроме системы поставил только virtuoso и ничего ещё в virtuoso не делал.

Thumbs up Thumbs down

22

Re: Virtuoso,SPARQL и др. Вопросы начинающего

iv_an_ru пишет:

Не смог пока воспроизвести neutral

Наверное это глюк той сборки что в ubuntu, а в вашей версии  уже пофиксился, если и был.
Сегодня дойду до компа посмотрю, что в isql выдается, чтобы понять глюк чего это.

iv_an_ru пишет:

Ещё хуже, когда в коммерческой версии баги уже подфиксаны, а до Virtuoso Open Source правки ещё технически не дошли, или когда люди ставят не самый последний дистрибутив, но читают не пришедшую с ним в одном архиве документацию, а docs.openlinksw.com, где отражается последняя и при том коммерческая функциональность.

Вот это про меня

Отредактировано piv (2011-03-02 05:10:49)

Thumbs up Thumbs down

23

Re: Virtuoso,SPARQL и др. Вопросы начинающего

iv_an_ru пишет:

Бывает и такое, если фича делается для одного конкретного заказчика, он её принимает, на его тестах как-то работает --- а потом уже никто не смотрит, заявлена эта фича в документации как экспериментальная или нет. Ещё хуже, когда в коммерческой версии баги уже подфиксаны, а до Virtuoso Open Source правки ещё технически не дошли, или когда люди ставят не самый последний дистрибутив, но читают не пришедшую с ним в одном архиве документацию, а docs.openlinksw.com, где отражается последняя и при том коммерческая функциональность.

Я бы из личного опыта еще одну ситуацию выделил. Когда фича уже дошла до исходников Virtuoso Open Source, но очередная версия еще не вышла. У меня не хватило выдержки добиться компиляции Virtuoso Open Source под Виндой. На сайте есть инструкция, но на тот момент то ли она была не совсем правильной, то ли у меня руки кривые - не знаю, но кто-то из нас определенно был неправ smile В целом, процесс компиляции Virtuoso Open Source для непосвещенного довольно сложный, поэтому я пару раз ждал нового релиза, зная, что в исходниках баг уже пофикшен. Это, конечно, не делает мне чести, но, полагаю, я не первый, кто с этим столкнулся.

Кстати, а ведь nightly builds решили бы эту проблему.

И еще один вопрос касательно "до Virtuoso OpenSource правки не дошли". Вам же приходится поддерживать довольно много веток в актуальном состоянии. Не возникают проблемы с мержем? Например, когда потом внезапно выясняется, что какой-то фикс не был замержен в какую-то ветку, или был замержен неправильно (особенно если автоматический мерж не срабатывает и приходится мержить вручную)? Я вспоминаю ситуацию, когда в нашей компании приходилось в один момент поддерживать 4 ветки только для последнего релиза: хед, бранча релиза, бранча сервис-пака и бранча патча к сервис-паку, и проблемы потом всплывали. Вот мне интересно, это сказался наш недостаток опыта с такими разветвленными системами (обычный workflow гораздо проще: бранча под баг/фичу -> смержили в хед) или даже в компаниях уровня OpenLink возникают такие проблемы? Кстати, а какую систему контроля версий используете?

iv_an_ru пишет:

Конкретно про ADO.NET прокомментировать сходу не могу, не видел его никогда. Если подскажете время и версию, то могу спросить (и при необходимости открутить уши).

Я бы не хотел, чтобы наша дискуссия закончилась для кого-нибудь лишением премии smile Хотя секрета в этих багах никакого нет: я их все отписывал в virtuoso-discussions. Баги были принципиальные, воспроизводившиеся на самых базовых юзкейсах и фиксились очень неторопливо (рабочей версии я ждал месяцев 5, наверное). Я ни в коем случае не негодую: я не только пользователь OpenSource Edition, так еще и фича, очевидно, не ключевая для Virtuoso. Мне лишь любопытно, как такой код смог пробраться в продакшн в компании уровня OpenLink. Я уверен на 99%, что если бы та версия провайдера была удостоена хоть малейшего внимания тестеров, баги были вы выявлены. У меня два варианта: либо произошло совпадение и тестеры не обнаружили баги, либо в OpenLink возможна ситуация, когда код из стадии "works on my machine" попадает в продакшн. С трудом верится в оба варианта.

Отредактировано Idsa (2011-03-02 08:35:35)

Thumbs up +1 Thumbs down

24

Re: Virtuoso,SPARQL и др. Вопросы начинающего

piv пишет:

Сегодня дойду до компа посмотрю, что в isql выдается, чтобы понять глюк чего это.

А чем isql принципиально отличается? Что там можно такое увидеть? Я, видимо, не в теме

piv пишет:

Вот это про меня

Не факт smile

Отредактировано Idsa (2011-03-02 08:37:27)

Thumbs up Thumbs down

25

Re: Virtuoso,SPARQL и др. Вопросы начинающего

Idsa пишет:

А чем isql принципиально отличается?

Вот и посмотрим.

Я не знаю как всё организовано внутри virtuoso.

Однако очевидно, что запрос через isql идет не совсем тем путем, что через localhost:8890/sparql

Поэтому, если внутри логика отрабатывает нормально, а ошибка именно в выводе, вполне возможно, что результат будет иным.
count то дает правильное число так что логика скорее всего работает правильно.

Кстати бросается в глаза, что сам iv_an_ru использует isql гораздо чаще

Idsa пишет:
piv пишет:

Вот это про меня

Не факт smile

Я использую не коммерческую версию  и точно не последнюю.
Virtuoso 6.2 вышла, а я использую пакет Virtuoso  OpenSource 6.0  из ubuntu/

Отредактировано piv (2011-03-02 09:47:01)

Thumbs up Thumbs down