如何使用SPARQL查询链接数据

时间:2014-07-06 16:40:10

标签: rdf sparql linked-data foaf

是否可以使用SPARQL查询链接数据?

例如,我有一个RDF文件(比如this one)和一个像这样的SPARQL查询:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX cc: <http://creativecommons.org/ns#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX s: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX con: <http://www.w3.org/2000/10/swap/pim/contact#>
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>

select ?friends (COUNT(?cff) as ?count_friends_of_friends) where { 
  ?me foaf:knows ?friends .
  ?friends foaf:knows ?cff .
}

我没有得到任何结果。 SPARQL是否遵循链接资源?或者我是否必须进行多次查询?

1 个答案:

答案 0 :(得分:4)

不,SPARQL在分发时不会跟踪链接的资源。看起来您正在寻找联合查询。您将能够在W3C规范中找到更多信息:http://www.w3.org/TR/sparql11-federated-query/

SPARQL是一种查询语言。它允许针对RDF图发出查询。如果图表是分布式的,那么您需要查询联合。

默认情况下,URI不必是可解析的,它们只是标识符(&lt; #a&gt;是有效的URI)。例如,您的RDF可能会说<http://www.w3.org/People/Berners-Lee/card#i> foaf:knows <http://www.lassila.org/ora.rdf#me>后一个网址可能会返回404.