1

我在 Wikidata 查询服务中使用下一个查询:

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

它无法将 wikibase 解析为前缀。有什么线索吗?提前谢谢,大卫。

4

1 回答 1

2

当您使用他们的 SPARQL 查询页面时,会预先声明许多前缀,包括 wikibase。当远程查询端点时,必须声明这些。所以PREFIX wikibase: <http://wikiba.se/ontology#>在你的查询中使用。

wiki中提供了前缀列表

于 2020-04-27T08:35:40.733 回答