В запросе Wikidata SPARQL отсутствует часть ожидаемых результатов - PullRequest
0 голосов
/ 07 августа 2020

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

Мой запрос:

  SELECT DISTINCT ?cityLabel ?population ?coord ?countryLabel ?shortCountry ?city  WHERE {
  ?city (wdt:P31/(wdt:P279*)) wd:Q515;
    wdt:P1082 ?population;
    wdt:P625 ?coord.
  FILTER(?population > 100000 )
  ?city wdt:P17 ?country.
  ?country wdt:P298 ?shortCountry.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
ORDER BY ASC (?shortCountry)

Я искал следующие города в результатах:

  • Берлин
  • Бейрут
  • Лион

Но они не появились.

Попробуйте здесь

1 Ответ

0 голосов
/ 07 августа 2020

Хорошо, я кое-что придумал для себя:

Я немного углубился в объект викиданных городов, о которых я упоминал, и обнаружил, что они не являются экземпляром «city» (Q515).

Берлин принадлежит, например, «столице», «городу с миллионами жителей», «мегаполису»

Лион принадлежит «французской коммуне» и «большому городу».

Бейрут принадлежит например, «столица» и «большой город»

Но ни один из них не указан как «город». Это точно не намеренно, потому что другие крупные города также являются примером "города", например, Париж

Итак, в заключение:

Проверьте все категории, по которым выполняется фильтрация, и проверьте ожидаемые результаты. чтобы соответствовать им.

...