首页 > 解决方案 > 在 SPARQL 中查询两个 RDF 图

问题描述

我有两个 RDF 知识库

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

a b c
a f e

和 KB2 ( path/to/file2.rdf) 具有以下三元组:

c t p

我想让所有路径都包括像?a ?b ?c&?c ?t ?p一样c常见的路径。

我怎样才能在 SPARQL 中做到这一点?

标签: sparql

解决方案


在 2 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 .   
}

推荐阅读