我有两个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中做到这一点?
答案 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 .
}