Как получить «Описание» из записи викиданных с помощью запроса SPARQL?

#sparql #wikidata

#sparql #викиданные

Вопрос:

Как я могу извлечь описание для данной метки элемента? Например, для ссылки на Барака Обаму (Q76) в списке указано описание: «44-й президент Соединенных Штатов». Как мне восстановить это? Я могу извлечь «метку», используя это:

 PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX wd: <http://www.wikidata.org/entity/> 
#Cats
SELECT ?label
WHERE 
{
  wd:Q76 rdfs:label ?label .
  FILTER (langMatches( lang(?label), "EN" ) )
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
  

(Хотя это дает мне тот же результат 3 раза …) Как мне также получить описание?

Комментарии:

1. Почему вы не используете службу ярлыков, когда она есть в вашем запросе? И это дает вам тот же результат, потому что есть 3 литерала с разным английским вкусом

2. Я не совсем уверен, что такое служба ярлыков. Я только знакомлюсь с этим методом запроса.

3. «Служба ярлыков» — это нестандартное расширение SPARQL, которое предоставляет вам ярлык, описание и псевдоним бесплатно по соглашению с суффиксом к имени каждой переменной: mediawiki.org/wiki/Wikidata_Query_Service / …

4. Очистите, вам нужна переменная, чтобы использовать ее. Поехали: SELECT ?itemLabel ?itemDescription WHERE { VALUES ?item {wd:Q76} SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } }

5. Если вы не хотите использовать эту службу, используйте schema:description в качестве свойства, аналогичного тому, что вы сделали с rdfs:label

Ответ №1:

В ручном режиме службы меток Викиданных вы явно привязываете переменные метки в вызове службы.

Например, с записью Barack Obama (Q76) мы можем связать метку и описание.

 PREFIX bd: <http://www.bigdata.com/rdf#> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX schema: <http://schema.org/> 
PREFIX wd: <http://www.wikidata.org/entity/> 
PREFIX wikibase: <http://wikiba.se/ontology#> 

SELECT ?obamaLabel ?obamaDesc
WHERE {
  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "en" .
    wd:Q76 rdfs:label ?obamaLabel .
    wd:Q76 schema:description ?obamaDesc .
  }
}
  

ДЕМОНСТРАЦИЯ