使用给定的RDF图对SPARQL查询进行错误处理

问题描述 投票:0回答:1

我有以下带前缀的RDF图

PREFIX r: <http://dbpedia.org/resources/>
PREFIX o: <http://dbpedia.org/ontology/>

graph

和查询

PREFIX r: <http://dbpedia.org/resources/>
PREFIX o: <http://dbpedia.org/ontology/>

SELECT ?s ?author
WHERE {
   ?s o:type o:Book .
   ?s o:author ?author .
   ?author ?incategory r:Category:American_atheists.
}

我现在想知道输出会是什么样子。我尝试过使用https://dbpedia.org/sparql,但这会导致解析错误。这是一个正确的查询吗?该图形具有Book的前缀r,并且查询在三元组中具有o:Book

sparql rdf
1个回答
3
投票

解析错误是由r:Category之后的冒号引起的。缩写IRI中的冒号只能用作前缀的一部分。此查询应该有效:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX r: <http://dbpedia.org/resource/>
PREFIX o: <http://dbpedia.org/ontology/>

SELECT ?s ?author
WHERE {
  ?s rdf:type o:Book .
  ?s o:author ?author .
  ?author ?incategory <http://dbpedia.org/resource/Category:American_atheists> .
}

或者,如果你想要一个更简洁的WHERE条款:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX r: <http://dbpedia.org/resource/>
PREFIX o: <http://dbpedia.org/ontology/>
PREFIX c: <http://dbpedia.org/resource/Category:>

SELECT ?s ?author
WHERE {
  ?s rdf:type o:Book .
  ?s o:author ?author .
  ?author ?incategory c:American_atheists .
}
© www.soinside.com 2019 - 2024. All rights reserved.