我想知道存储库中但不包含在其他存储库中的三元组是什么。
但为此,我需要在联合查询中引用这两个存储库。
我正在使用 Allegrograph。
我想知道存储库中但不包含在其他存储库中的三元组是什么。
但为此,我需要在联合查询中引用这两个存储库。
我正在使用 Allegrograph。
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 的联合商店无法完成这样的减法任务。可能您应该将三元组划分为命名图,而不是单独的存储。
使用 AllegroGraph 有两种方法可以实现:
(1) AllegroGraph 允许您将多个本地和/或远程三重存储联合到单个虚拟存储中,然后可以将其作为单个三重存储进行查询。
(2) 您可以使用使用SERVICE
关键字的 SPARQL 1.1 联合查询。这是学习 SPARQL 书中的一个示例:
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 .
}
}