我想在SPARQL查询的DESCRIBE
子句中使用SERVICE
。怎么能这样做?
我尝试了以下查询,但返回时出现语法错误。
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX : <http://dbpedia.org/resource/>
DESCRIBE :Tom_Cruise WHERE {
SERVICE <http://dbpedia.org/sparql/>{
}
}
答案 0 :(得分:1)
你不可能。
(您的初始查询DESCRIBE
内DESCRIBE
SERVICE
内SERVICE
},虽然它是有效的构造,但是内部的空图形模式DESCRIBE
子句要求DBpedia提供每个三元组[由于该公共端点的服务限制,在返回有限数量的记录后将超时和/或停止],然后要求您的本地SPARQL处理器在您获得的任何数据上使用其 DESCRIBE
例程,因此几乎可以肯定您最终无法获得所需的数据。我不知道你试图执行它的位置,也不知道你得到了什么语法错误,因此无法进一步分析该错误。)
SELECT
是importlib
,不是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}}