SPARQL 查询两个单独图形之间链接的数据



我有一个存储在StarDog实例中的Person图,以及一个Fuseki实例中存储的Address es图。其中一个Person实例与Address具有hasAddress关系。

我希望进行一个SPARQL查询,该查询仅返回所有拥有地址的Person,以及他们居住的地址。此查询将发送到 StarDog 实例(具有Person图的端点(。我正在使用的查询是

prefix testOnt: <http://www.example.org/test-ontology#>
SELECT ?person ?address 
WHERE {
  ?person testOnt:hasAddress ?address
}

但是,这不会返回任何结果。

我正在使用以下TTL初始化StarDog数据库:

:SomeDude rdf:type owl:NamedIndividual , :Person;
    :hasAddress :Address1.

其中Address1在 TDB 中定义 在 Fuseki 一侧。

只是不知道当我向另一个图形进行查询时,我应该如何引用第二个图形。

感谢您的任何帮助,我可以澄清评论中的任何要点。

您只检索?person testOnt:hasAddress ?address的查询应该适用于Stardog,但不会返回存储在Fuseki中的地址信息。如果此查询不起作用,请确保在数据和查询中使用的命名空间匹配。

为了从Stardog获取人员实例,并从Fuseki获取他们的地址,您将需要一个使用SERVICE关键字的联合SPARQL查询。假设命名空间正确,则查询应如下所示:

prefix testOnt: <http://www.example.org/test-ontology#>
SELECT ?person ?address 
WHERE {
  ?person testOnt:hasAddress ?address
  SERVICE <http://fuseki/location> {
     ?address ?p ?o     # use a more specific BGP here if necessary
  }
}

相关内容

  • 没有找到相关文章

最新更新