Получить элемент, его просмотр страницы и географическую атрибуцию одним вызовом Mediawiki API - PullRequest
0 голосов
/ 15 сентября 2018

Это исчерпывающая и полная версия ответа, который я уже недавно задавал на Получить местоположение с помощью API Викимедиа .Мне довелось пролистывать всю документацию по Mediawiki API, GeoData API и Wikidata Query SPARQL Service, публиковать мой вопрос о Stackoverflow и нескольких форумах в Викимедиа, но я не нашел удовлетворительного ответа.

Вопрос заключается в следующем: я пытаюсь использовать API GeoData для выполнения вышеупомянутой задачи - присвоение географически привязанного элемента стране и городу.Краткое описание моей задачи: получить список страниц Википедии вокруг определенного местоположения, определенного с помощью координат, получить некоторые свойства страницы (просмотры страниц, основное изображение), затем получить страну и город (удобочитаемый, а не идентификаторы), которыеэтот элемент страницы принадлежит.Пример описания: давайте представим, что у меня есть некоторая географическая координата около храма Святого Семейства в качестве входных данных.Я хочу получить список из N страниц Википедии в радиусе 1 км вокруг этой координаты.Я хочу получить количество просмотров страниц и основного изображения для каждой из этих страниц.Я хочу, чтобы каждый элемент, описанный на странице, был определен в Барселоне, Испания.Я мог бы выполнить это за один вызов Викимедиа и за N вызовов службы Wikibase Query Service, но крайне важно выполнить запрошенный за один вызов.

Я обнаружил, что GeoData API очень чистый, простой и удобный для пользователя поиск различных данных в соответствии с геоместонахождение предмета.Но возникают трудности с поиском страны / города для данного предмета.Хотя страна теоретически может быть получена в одном запросе (также не всегда, но только в том случае, если она указана не в формате имени, а в виде ее буквенного обозначения) в качестве параметра самого API GeoData, город можно получить только для предметов, которыесами городаИз вторых рук эта информация существует для каждого элемента с геотегами и доступна, например, через службу запросов Wikibase SPARQL.Но тогда мне нужно будет выполнить вторичные запросы к WikiData, которые я бы хотел избежать всеми средствами.Мне удалось попробовать все варианты:

  1. Чтобы вызвать Wikimedia API (расширение GeoData) из запроса WARIBASE SPARQL, но, похоже, он не работает.

  2. Чтобы получить элементы Wikidata вокруг определенных координат с помощью запроса WARIBASE SPARQL, но тогда я не могу получить информацию из Википедии о просмотрах страниц.

  3. Создать список страниц вокруг геоместоположение с помощью «generator = geosearch» и передать его нескольким реквизитам и постраничным реквизитам API Викимедиа, вызывающим связанный элемент Wikidata.Но тогда я получаю только идентификаторы свойств Wikidata, а мне нужны удобочитаемые ярлыки.

...