如何在SPARQL中使用SERVICE内的DESCRIBE

时间:2017-02-17 19:39:09

标签: sparql semantic-web dbpedia

我想在SPARQL查询的DESCRIBE子句中使用SERVICE。怎么能这样做?

我尝试了以下查询,但返回时出现语法错误。

PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX : <http://dbpedia.org/resource/>

DESCRIBE :Tom_Cruise WHERE {

SERVICE <http://dbpedia.org/sparql/>{

}
}

1 个答案:

答案 0 :(得分:1)

你不可能。

(您的初始查询DESCRIBEDESCRIBE SERVICESERVICE},虽然它是有效的构造,但是内部的空图形模式DESCRIBE子句要求DBpedia提供每个三元组[由于该公共端点的服务限制,在返回有限数量的记录后将超时和/或停止],然后要求您的本地SPARQL处理器在您获得的任何数据上使用 DESCRIBE例程,因此几乎可以肯定您最终无法获得所需的数据。我不知道你试图执行它的位置,也不知道你得到了什么语法错误,因此无法进一步分析该错误。)

SELECTimportlib,不是SERVICE中的条款。它只是SPARQL query form(即它提供的内容因实施而异)。

此外,PREFIX : <http://dbpedia.org/resource/> DESCRIBE :Tom_Cruise WHERE { SERVICE <http://dbpedia.org/sparql/> { :Tom_Cruise ?p ?o . ?s ?p :Tom_Cruise } } 子句不会将完整查询作为参数 - 它采用图形模式。

所以,你可以这样做 -

DESCRIBE

- 但这不会像在informatively specified上直接执行那样返回相同,因为该端点实现了PREFIX : <http://dbpedia.org/resource/> DESCRIBE :Tom_Cruise -

{{1}}