SPARQL 查询链接在两个独立图形之间的数据
SPARQL Querying Data Linked Between Two Separate Graphs
我在 StarDog 实例中存储了 Person
s 的图形,在 Fuseki 实例中存储了 Address
es 的图形。 Person
个实例之一与 Address
.
有 hasAddress
关系
我想做一个 SPARQL 查询,简单地 returns 所有有地址的 Person
以及他们居住的地址。此查询将发送到 StarDog 实例(具有 Person
图的端点)。我使用的查询是
prefix testOnt: <http://www.example.org/test-ontology#>
SELECT ?person ?address
WHERE {
?person testOnt:hasAddress ?address
}
但是,这个returns没有结果。
我正在使用这段 TTL 初始化 StarDog 数据库:
:SomeDude rdf:type owl:NamedIndividual , :Person;
:hasAddress :Address1.
其中 Address1
在 Fuseki 端的 TDB 中定义。
我只是不知道当我向另一个图表查询时我应该如何引用第二个图表。
感谢您的帮助,我可以在评论中澄清任何要点。
您仅检索 ?person testOnt:hasAddress ?address
的查询应该适用于 Stardog,但不会 return 处理存储在 Fuseki 中的地址信息。如果此查询不起作用,请确保您在数据中使用的名称空间与查询匹配。
为了从 Stardog 获取人物实例并从 Fuseki 获取他们的地址,您需要一个使用 SERVICE
关键字的 federated SPARQL query。假设名称空间正确,您的查询应如下所示:
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
}
}
我在 StarDog 实例中存储了 Person
s 的图形,在 Fuseki 实例中存储了 Address
es 的图形。 Person
个实例之一与 Address
.
hasAddress
关系
我想做一个 SPARQL 查询,简单地 returns 所有有地址的 Person
以及他们居住的地址。此查询将发送到 StarDog 实例(具有 Person
图的端点)。我使用的查询是
prefix testOnt: <http://www.example.org/test-ontology#>
SELECT ?person ?address
WHERE {
?person testOnt:hasAddress ?address
}
但是,这个returns没有结果。
我正在使用这段 TTL 初始化 StarDog 数据库:
:SomeDude rdf:type owl:NamedIndividual , :Person;
:hasAddress :Address1.
其中 Address1
在 Fuseki 端的 TDB 中定义。
我只是不知道当我向另一个图表查询时我应该如何引用第二个图表。
感谢您的帮助,我可以在评论中澄清任何要点。
您仅检索 ?person testOnt:hasAddress ?address
的查询应该适用于 Stardog,但不会 return 处理存储在 Fuseki 中的地址信息。如果此查询不起作用,请确保您在数据中使用的名称空间与查询匹配。
为了从 Stardog 获取人物实例并从 Fuseki 获取他们的地址,您需要一个使用 SERVICE
关键字的 federated SPARQL query。假设名称空间正确,您的查询应如下所示:
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
}
}