2013-08-28 2 views
0

Я использую Apache-Jena 2.10.2 инструменты командной строки и попытаться вставить данные в моем графике:специфический SPARQL запрос с Jena

tdbupdate --loc /Users/graph "INSERT DATA { <http://de.dbpedia.org/resource/Mais> <http://ch.ingredientmatching.graph/eaternitySynonym> 15 }" 

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

tdbupdate --loc /Users/graph "INSERT DATA { <http://de.dbpedia.org/resource/Mais> <http://ch.ingredientmatching.graph/eaternitySynonyn> 15 }" 

Где я изменил последний символ: eaternitySynonym в eaternitySynonyn. Чтобы убедиться, что это сработало, я делаю:

tdbquery --loc /Users/graph "SELECT * WHERE { <http://de.dbpedia.org/resource/Mais> ?p ?o }" 

и посмотрим, находится ли он на выходе.

Пожалуйста, расскажите мне, что я делаю неправильно.

+0

Каковы выходы, которые вы получаете при запуске запроса? –

+1

Также, как вы установили 2.10.2? Он недоступен в [дистрибутивах] (http://www.apache.org/dist/jena/binaries/). Это может быть лучшим вопросом для отправки в [список рассылки Jena] (http://jena.apache.org/help_and_support/index.html). –

+0

Большое спасибо, что на самом деле решил, я нашел 2.10.2, когда я googled для соответствующего репозитория maven. Теперь я использую 2.10.1, и он просто отлично работает! – tadumtada

ответ

1

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

$ tdbloader2 --loc graph data.n3 
11:05:38 -- TDB Bulk Loader Start 
11:05:38 Data phase 
INFO Load: data.n3 -- 2013/08/28 11:05:43 EDT 
INFO Total: 0 tuples : 0.12 seconds : 0.00 tuples/sec [2013/08/28 11:05:43 EDT] 
11:05:43 Index phase 
11:05:43 Index phase end 
11:05:43 -- TDB Bulk Loader Finish 
11:05:43 -- 5 seconds 
$ tdbupdate --loc graph "INSERT DATA { <http://de.dbpedia.org/resource/Mais> <http://ch.ingredientmatching.graph/eaternitySynonym> 15 }" 
$ tdbquery --loc graph "SELECT * WHERE { <http://de.dbpedia.org/resource/Mais> ?p ?o }" 
-------------------------------------------------------------- 
| p              | o | 
============================================================== 
| <http://ch.ingredientmatching.graph/eaternitySynonym> | 15 | 
-------------------------------------------------------------- 

Если в вашей установке нет чего-то еще, что вы не описываете, похоже, что это должно сработать. Вышеупомянутое было выполнено со следующими версиями Jena, ARQ и TDB:

$ tdbquery --version 
Jena:  VERSION: 2.10.1 
Jena:  BUILD_DATE: 2013-05-11T22:05:51+0100 
ARQ:  VERSION: 2.10.1 
ARQ:  BUILD_DATE: 2013-05-11T22:05:51+0100 
RIOT:  VERSION: 2.10.1 
RIOT:  BUILD_DATE: 2013-05-11T22:05:51+0100 
TDB:  VERSION: 0.10.1 
TDB:  BUILD_DATE: 2013-05-11T22:05:51+0100 
Смежные вопросы