Использование сервиса меток Wikidata в федеративных запросах
Мне интересно, возможно ли использовать сервис меток Wikidata в федеративном запросе. Например, следующий запрос
# Query from a local SPARQL enpoint
select ?item ?itemLabel
where {
SERVICE <https://query.wikidata.org/sparql> {
?item wdt:P31 wd:Q146.
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
}
возвращается пустым ?itemLabel
s. Как я могу получить также ?itemLabel
в моем наборе результатов?
2 ответа
Решение
Вы также можете использовать ручной режим, в вашем случае это на одну строчку больше:
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX bd: <http://www.bigdata.com/rdf#>
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT * {
SERVICE <https://query.wikidata.org/sparql> {
?item wdt:P31 wd:Q146
SERVICE wikibase:label { bd:serviceParam wikibase:language "it". ?item rdfs:label ?label }
}
}
Включите некоторые вещи, которые являются номинально необязательными... Вот полный запрос, который я только что провел через URIBurner.com, и его результаты.
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX bd: <http://www.bigdata.com/rdf#>
PREFIX wikibase: <http://wikiba.se/ontology#>
SELECT *
WHERE
{
SERVICE <https://query.wikidata.org/sparql>
{
SELECT ?item ?itemLabel
WHERE
{
?item wdt:P31 wd:Q146 .
SERVICE wikibase:label
{ bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
}
}