Как написать запрос с аналогичным поведением на SPARQL (wikidata)?

Ссылка скопирована
1 ответ

Привет!
Необходимо написать запрос, имитирующий поведение как на этой странице:
https://wikidata-todo.toolforge.org/tree.html?q=Q3...

Есть тег Fruit (Q3314483) и хочется от него отнаследовать несколько потомков, типа яблоко/манго/виноград/....
Как ни пытался написать подобный запрос на SPARQL - не выходит добавить глубину (мне необходима глубина 2), получается только, чтобы все теги шли подряд.

Мой сниппет:

SELECT ?item ?itemLabel WHERE {   ?item wdt:P279* wd:Q3314483.   SERVICE wikibase:label {     bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".   } }

SELECT ?item ?itemLabel WHERE { ?item wdt:P279* wd:Q3314483. SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } }

Как переделать скрипт с добавлением параметра глубины?

Дополнительно:

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Павел Админов Ответ

Для написания запроса с аналогичным поведением на SPARQL (wikidata) необходимо использовать стандартный синтаксис SPARQL и работать с данными, хранящимися в базе знаний Wikidata.

Для начала, определим цель запроса. Если вы хотите получить информацию об объекте, его свойствах и значениях, вы можете использовать конструкцию SELECT для выбора нужных данных.

Например, если вы хотите получить информацию о конкретной стране, вы можете написать запрос следующим образом:

SELECT ?countryLabel ?population ?area
WHERE {
  wd:Q30 p:P1082 ?populationStatement.
  ?populationStatement ps:P1082 ?population.
  wd:Q30 p:P2046 ?areaStatement.
  ?areaStatement ps:P2046 ?area.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}

SELECT ?countryLabel ?population ?area WHERE { wd:Q30 p:P1082 ?populationStatement. ?populationStatement ps:P1082 ?population. wd:Q30 p:P2046 ?areaStatement. ?areaStatement ps:P2046 ?area. SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } }

В данном примере мы выбираем название страны, население и площадь. Мы указываем идентификатор страны (Q30 для США) и свойства, которые нас интересуют (население и площадь).

Не забудьте подключить сервис для отображения меток на нужном языке (в данном случае, английском).

Таким образом, используя SPARQL на Wikidata, вы можете получить информацию о различных объектах и их свойствах, аналогично тому, как это делается на stackoverflow.com, но уже с использованием данных из базы знаний Wikidata.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно