2

在 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.orghttp://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
4

1 回答 1

-1

我在您的查询中将 wdtn 替换为 wdt 。有用。

演示: http: //linkedwiki.com/query/Wikidata_federated_SPARQL_query_and_variable

于 2019-10-04T07:56:21.300 回答