在SPARQL中查询两个RDF图

时间:2018-06-25 14:30:20

标签: sparql

我有两个RDF知识库

KB1(path/to/file1.rdf)包括以下两个三元组

a b c
a f e

和KB2(path/to/file2.rdf),并具有以下三个名称:

c t p

我想让所有路径都包含?a ?b ?c?c ?t ?p之类的路径,因为c很常见。

如何在SPARQL中做到这一点?

1 个答案:

答案 0 :(得分:0)

在两个KB的情况下,这就是我们所说的“联合查询”。这是一个示例:

SELECT * WHERE {
  SERVICE URI_for_path/to/file1.rdf { 
    ?a ?b ?c .  
    OPTIONAL { 
      SERVICE URI_for_path/to/file2.rdf { 
        ?c ?t ?p . } }
  }    
}

仅当?t ?p存在时,您才会得到它。

最简单的方法是将两个文件加载到一个KB中,因此有一个简单的查询:

SELECT * WHERE {
    ?a ?b ?c .  
    ?c ?t ?p .   
}