Wikidata федеративный SPARQL-запрос и переменная - PullRequest
2 голосов
/ 03 октября 2019

В Wikidata (https://query.wikidata.org/), я пробовал следующий простой федеративный запрос SPARQL с помощью SERVICE.

Я получил результаты обратно, но они не соответствуют моим ожиданиям. Кажется, что? geonamesid (т. е. ссылка на сущность «Лондон») не передается в часть SERVICE, поэтому внутри СЕРВИСА она рассматривается как случайная переменная и результаты («Прокси», «Агрегация», «СНО» и т. д.) не связаны с Лондоном.

У вас есть идеи, что может быть не так? Спасибо!

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

1 Ответ

0 голосов
/ 04 октября 2019

Я заменил wdtn на wdt в вашем запросе. Это работает.

Демо: http://linkedwiki.com/query/Wikidata_federated_SPARQL_query_and_variable

...