В 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