【问题标题】:Error handling of SPARQL query with given RDF graph使用给定 RDF 图的 SPARQL 查询的错误处理
【发布时间】:2018-01-28 12:54:53
【问题描述】:

我有以下带有前缀的 RDF 图

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

还有查询

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

【问题讨论】:

  • 而你无法弄清楚为什么会出现解析错误?类别的前缀形式不适用于附加冒号,即r:Category:American_atheists. 无效。要么使用完整的 URI &lt;http://dbpedia.org/resources/Category:American_atheists&gt;,要么使用额外的类别前缀,通常是 PREFIX dbc: &lt;http://dbpedia.org/resources/Category:&gt;,然后写 dbc:American_atheists
  • 截图来自教科书,是吗?因此,如果这是某种练习,错误的 book 前缀要么是拼写错误,要么是练习的一部分,以展示使用正确前缀的重要性。
  • 请考虑更改问题的标题。所有标记为#SPARQL 的问题都可以用当前标题概括。
  • 除了带有前缀的语法错误之外,您还有两个导致空查询的问题。 1) 必须是http://dbpedia.org/resource/ 2) 必须是rdf:type
  • 为了正确,是的。或者你可以使用 Turtle 快捷方式a,即?s a o:Book .

标签: sparql rdf


【解决方案1】:

解析错误是由于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 .
}

【讨论】:

  • 谢谢!我不知道。 Book 的前缀呢?这会导致您不会得到任何输出(即使现在使用正确的语法),对吧?
  • @CarleB.Navy 正确
  • o:type 肯定是错误的关系,它一定是rdf:type
  • @Sentry 不,这不正确。 Book 的前缀是正确的,但 type 关系的前缀不正确
  • @AntoineZimmermann 你能解决这个问题吗:o:type -> rdf:typehttp://dbpedia.org/resources/ -> http://dbpedia.org/resource/
猜你喜欢
  • 1970-01-01
  • 2013-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多