我想知道存储库中的三元组是什么,但未包含在其他存储库中。
但是为了做到这一点,我需要在联合查询中引用这两个存储库。
我正在使用Allegrograph。
答案 0 :(得分:2)
FactForge上的示例(即,使用SPARQL 1.1联合查询,而不是Allegrograph的联合商店):
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbr: <http://dbpedia.org/resource/>
CONSTRUCT { ?s ?p ?o }
{
VALUES (?s) {(dbr:Yekaterinburg)}
?s ?p ?o.
MINUS
{
SERVICE <http://dbpedia.org/sparql>
{
VALUES (?s) {(dbr:Yekaterinburg)}
?s ?p ?o
}
}
}
显然,不能以这种方式从DBpedia Live中减去DBpedia,至少有一个结果集应该相对较小。 Allegrograph的联合商店似乎无法帮助完成这种减法任务。可能你应该将你的三元组划分为命名图形,而不是分开存储。
答案 1 :(得分:1)
使用AllegroGraph,有两种方法可以实现:
(1)AllegroGraph允许您将federate个多个本地和/或远程三重存储放入一个虚拟商店,然后可以将其作为单个三重存储进行查询。
(2)您可以使用使用SERVICE
关键字的SPARQL 1.1联合查询。以下是Learning SPARQL book:
PREFIX gp: <http://wifo5-04.informatik.uni-mannheim.de/gutendata/resource/people/>
SELECT ?dbpProperty ?dbpValue ?gutenProperty ?gutenValue
WHERE
{
SERVICE <http://DBpedia.org/sparql>
{
<http://dbpedia.org/resource/Joseph_Hocking> ?dbpProperty ?dbpValue .
}
SERVICE <http://wifo5-04.informatik.uni-mannheim.de/gutendata/sparql>
{
gp:Hocking_Joseph ?gutenProperty ?gutenValue .
}
}