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

时间:2018-02-01 15:35:43

标签: sparql fuseki stardog federated-queries

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

我希望制作一个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.

Fuseki方面的TDB中定义了Address1

我只是不知道在向另一方提出查询时我是如何引用第二张图的。

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

1 个答案:

答案 0 :(得分:4)

仅检索add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Headers' '*'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; 的查询应该对Stardog有效,但不会返回存储在Fuseki中的地址信息。如果此查询无效,请确保您在数据和查询中使用的命名空间匹配。

为了从Stardog获取人物实例及其来自Fuseki的地址,您需要federated SPARQL query使用?person testOnt:hasAddress ?address关键字。假设命名空间是正确的,您的查询应如下所示:

SERVICE