2

我想知道存储库中但不包含在其他存储库中的三元组是什么。

但为此,我需要在联合查询中引用这两个存储库。

我正在使用 Allegrograph。

4

2 回答 2

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 的联合商店无法完成这样的减法任务。可能您应该将三元组划分为命名图,而不是单独的存储。

于 2018-03-03T20:12:12.703 回答
1

使用 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 .
  }
} 
于 2018-03-02T09:00:14.957 回答