6

我正在尝试使用 Jena 和 ARQ 查询 dpbedia 以获取一些维基百科文章的类别
例如:

select ?category { dbpedia:ARTICLE_NAME dcterms:subject ?category }  

这是一个工作查询
SPARQL 结果的示例

问题是当 ARTICLE_NAME 中有特殊字符时,例如“Parma_F.C.”,其中有“.”。

select ?category { dbpedia:Parma_F.C. dcterms:subject ?category } 

错误

所以,我想问你是否有人对此有解决方案。
提前致谢

4

1 回答 1

8

标识符dbpedia:Parma_F.C.是所谓的前缀名称,即完整URI的缩写形式。SPARQL 1.1 查询语言规范中描述了它的完整语法规则。

问题特别是前缀名称末尾的句号。根据 SPARQL 语法,前缀名称不能以句号结尾,除非它被转义。解决方法就是使用反斜杠:

 dbpedia:Parma_F.C\. 

作为替代方案,您还可以写出完整的 URI。dbpedia前缀映射到命名空间,因此 SPARQL 中的http://dbpedia.org/resource/完整 URI 将变为:

 <http://dbpedia.org/resource/Parma_F.C.>

完整的查询将变为:

select ?category { <http://dbpedia.org/resource/Parma_F.C.> dcterms:subject ?category } 
于 2014-11-09T18:22:52.403 回答