Sparql с Java Jena

Я использую следующий запрос в службе запросов викиданных:

PREFIX wd: <http://www.wikidata.org/entity/> 
PREFIX wdt: <http://www.wikidata.org/prop/direct/>  
PREFIX xsd: <www.w3.org/2001/XMLSchema#>  
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>  

select ?lexemeId ?lemma WHERE { 
?lexemeId <http://purl.org/dc/terms/language> wd:Q1860.
  ?lexemeId wikibase:lemma ?lemma.
FILTER (regex(?lemma, '^bank.*'))
}

Он отлично работает при выполнении на https://query.wikidata.org/, но при попытке использовать Java Jena , это не удается, причина:

Exception in thread "main" org.apache.jena.query.QueryParseException: Line 7, column 11: Unresolved prefixed name: wikibase:lemma

Он не может разрешить викибазу как префикс. Любая подсказка? Спасибо заранее, Дэвид.


person David G. Hdez    schedule 27.04.2020    source источник
comment
сообщение об ошибке имеет смысл: Unresolved prefixed name: wikibase:lemma - wikibase не определено среди ваших объявлений PREFIX. он работает в Викиданных, потому что он предопределен. См. список здесь: mediawiki.org/wiki/Wikibase/Indexing/   -  person UninformedUser    schedule 27.04.2020


Ответы (1)


Когда вы используете их страницу запроса SPARQL, предварительно объявляется ряд префиксов, включая викибазу. При удаленном запросе конечной точки они должны быть объявлены. Поэтому используйте PREFIX wikibase: <http://wikiba.se/ontology#> в своем запросе.

Список префиксов доступен в вики.

person chrisis    schedule 27.04.2020