繁体   English   中英

如何在SPARQL查询(联合)中引用不同的存储库?

[英]How to reference different repositories in a SPARQL query (federated)?

我想知道存储库中有哪些三元组,但其他存储库中未包含三元组。

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

我正在使用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 .
  }
} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM