2015-08-31 3 views
0

У меня есть Virtuoso Server и запускается SPARQL-Query против него, что не дает ожидаемых результатов. Я не совсем уверен, в чем проблема, поэтому я надеюсь, что у некоторых из вас есть идея, где искать.SPARQL-Query не дает ожидаемых результатов

Это мой SPARQL-Endpoint

Запрос

select * 
where 
    { ?s ?p <http://creativeartefact.org/gemachecker/42249795-6466-4997-8739-06042f2a7b4b> . } 

дает один результат:

http://creativeartefact.org/gemachecker/a680ca40-5cfb-4c45-930c-b990ab21766f http://creativeartefact.org/ontology/organisedBy 

Когда я использую результат для ?p в запросе, как:

select * 
where 
    { ?s <http://creativeartefact.org/ontology/organisedBy> <http://creativeartefact.org/gemachecker/42249795-6466-4997-8739-06042f2a7b4b> . } 

Я не получаю никакого результата.

Для других объектов, она прекрасно работает, как:

select * 
where 
    { ?s <http://creativeartefact.org/ontology/organisedBy> <http://creativeartefact.org/example/fe8badaf-93c6-4460-82ab-78d29bc4ea72> . } 

Я понятия не имею, почему это работает для одного URI, но не для других. Любая помощь, указывающая мне на ответ, ценится!

+0

Заметим, что вы используете Virtuoso Open Source 07.00.3203 (a/k/a v7.0). Это давно устарело. Настоятельно рекомендуется обновить до 07.20.3214 (a/k/a v7.2.1), независимо от того, строите ли вы из ветки 'stable' или' develop'. Некоторые [подробности об обновлениях можно увидеть здесь] (http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VOSNews) и [подробнее здесь] (https://github.com/openlink/виртуоз-открытый исходный код/​​блобо/стабильный/7/ChangeLog). – TallTed

ответ

0

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

+0

Я удалил и повторно добавил тройку, но это все еще не дает результата. Может быть, там больше, чем просто эта тройка? Может быть, запрос был кэширован? Ну, я поменял свой код, чтобы использовать первый запрос и прокручивать результирующий набор, чтобы получить все результаты с конкретным предикатом. – Aaginor

0

На основе решения запроса по адресу: http://creativeartefact.org/sparql?default-graph-uri=http%3A%2F%2Fcreativeartefact.org%2F&query=%23+select++% 0D% 0A% 23 + куда% 7B ++% 3FS ++% 3Fp ++% 3Chttp% 3A% 2F% 2Fcreativeartefact.org% 2Fgemachecker% 2F42249795-6466-4997-8739- 06042f2a7b4b% 3E ++. ++% 7D% 0D% 0A% 0D% 0Aselect + +% 0D% 0Awhere +% 7B ++% 3Fs ++% 3Chttp% 3A% 2F% 2Fcreativeartefact.org% 2Fontology% 2ForganisedBy% 3E +% 3Fo +. +% 7D & should -sponge = & формат = текст% 2Fhtml & таймаут = 0 & отладки = на

И текст запроса по адресу: http://creativeartefact.org/sparql?default-graph-uri=http%3A%2F%2Fcreativeartefact.org%2F&qtxt=%23+select++% 0D% 0A% 23 + куда% 7B ++% 3FS ++% 3Fp ++% 3Chttp% 3A% 2F % 2Fcreativeartefact.org% 2Fgemachecker% 2F42249795-6466-4997-8739-06042f2a7b4b% 3E ++. ++% 7D% 0D% 0A% 0D% 0Aselect + +% 0D% 0Awhere +% 7B ++% 3Fs ++% 3Chttp% 3A% 2F% 2Fcreativeartefact.org% 2Fontology% 2ForganisedBy% 3E + % 3Fo +. +% 7D & должны губка = формат & = текст% 2Fhtml & таймаут = 0 & отлаживать = на

Существует что-то не так с данными в СУБД. В качестве первого шага вы можете попробовать более позднюю версию версии 7.x, которую вы используете. По крайней мере, это поможет устранить проблему, например, если это ошибка, характерная для более старой версии, например.