在 Wikidata ( https://query.wikidata.org/ ) 中,我尝试了以下简单的 SPARQL 联合查询SERVICE
。
我得到了结果,但它们似乎不是我所期望的。似乎?geonamesid
(即对实体“伦敦”的引用)没有传递给SERVICE
部分,因此在内部SERVICE
它被认为是一个随机变量,结果(?Proxy
、、?Aggregation
等?CHO
)与伦敦无关。
你知道可能出了什么问题吗?
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX ore: <http://www.openarchives.org/ore/terms/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX edm: <http://www.europeana.eu/schemas/edm/>
SELECT *
WHERE {
wd:Q21 wdt:P36 ?capital .
?capital wdtn:P1566 ?geonamesid .
SERVICE <http://sparql.europeana.eu/>{
SELECT *
WHERE{
?Place owl:sameAs ?geonamesid .
?Proxy dc:subject ?Place .
?Proxy ore:proxyIn ?Aggregation .
?Aggregation edm:aggregatedCHO ?CHO .
}
LIMIT 1000
}
}
我在两个 SPARQL 端点上分别尝试了查询。这似乎奏效了。以下查询分别在https://query.wikidata.org和http://sparql.europeana.eu/成功(PREFIX
为便于阅读而省略)。
SELECT *
WHERE {
wd:Q21 wdt:P36 ?capital .
?capital wdtn:P1566 ?geonamesid .
}
Select *
Where{
?Place owl:sameAs <http://sws.geonames.org/2643743> .
?Proxy dc:subject ?Place .
?Proxy ore:proxyIn ?Aggregation .
?Aggregation edm:aggregatedCHO ?CHO .
}
LIMIT 1000