<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.gis-lab.info/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=D1g</id>
	<title>GIS-Lab - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.gis-lab.info/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=D1g"/>
	<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/w/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/D1g"/>
	<updated>2026-06-10T02:19:35Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24820</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24820"/>
		<updated>2016-11-27T20:01:48Z</updated>

		<summary type="html">&lt;p&gt;D1g: Help:Statements/ru лучше освещает значения&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL — это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-объект&amp;quot; (примечание: &amp;quot;объект&amp;quot; часто заменяется на &amp;quot;значение&amp;quot;, особенно в случае количественных предикатов) (в терминах Wikidata элемент-[https://www.wikidata.org/wiki/Help:Statements/ru свойство-значения], item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL-клиентов. Ключевая особенность Wikidata — это общедоступная и публичная точка доступа SPARQL, включающая в том числе простой [https://query.wikidata.org веб-интерфейс].&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
У этого сервиса есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV — хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно посмотреть сюда: [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]. &lt;br /&gt;
&lt;br /&gt;
Структуру ''элемента'' (item) и ''свойства'' (property) можно найти на англоязычной странице [https://www.mediawiki.org/wiki/Wikibase/DataModel/Primer Wikibase/DataModel/Primer].&lt;br /&gt;
&lt;br /&gt;
* ''Множественные значения''&lt;br /&gt;
* ''Отсутствующие значения'' (известно, что значения не может быть) эквивалентны тегам ключ=no из OpenStreetMap - описаны на странице ''[https://www.wikidata.org/wiki/Help:Statements/ru Help:Утверждения]''&lt;br /&gt;
* ''Значение не определено'' (известно, что значение есть, но не известно какое) - описаны на той же странице&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень свойств: [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties]&lt;br /&gt;
&lt;br /&gt;
Отчёт количества использований каждого свойства - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень: [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Больше миллиона --&amp;gt;&lt;br /&gt;
: Принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
: Принадлежность админ делению - https://www.wikidata.org/wiki/Property:P131&lt;br /&gt;
: Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Более 100 тысяч, но менее миллиона --&amp;gt;&lt;br /&gt;
: Численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Более 10 тысяч, но менее 100 тысяч --&amp;gt;&lt;br /&gt;
: ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
: Столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
: Город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Редкие, менее 10000 --&amp;gt;&lt;br /&gt;
: Относительная высота https://www.wikidata.org/wiki/Property:P2660&lt;br /&gt;
: Официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
&lt;br /&gt;
=== Российские свойства в Wikidata ===&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
* Портал «Герои страны» ID https://www.wikidata.org/wiki/Property:P2943&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
Т.к. исходные данные представляют граф (элемент-свойство-значения) и его расширения (в Wikidata: квалификаторы, ссылки и др.), то большинство запросов SPARQL строятся вокруг поиска ''паттернов в графе''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#GraphPattern&amp;lt;/ref&amp;gt;, зачастую нескольких.&lt;br /&gt;
&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wikidata префиксы ==&lt;br /&gt;
[https://www.mediawiki.org/wiki/Wikibase/Indexing/RDF_Dump_Format#Full_list_of_prefixes Полный список префиксов].&lt;br /&gt;
&lt;br /&gt;
=== Квалификаторы (qualifier) ===&lt;br /&gt;
&lt;br /&gt;
Если открыть [https://www.wikidata.org/wiki/Q915 Пермь], то там указанно множество значений у численности населения (P1082), причём все значения - одного ранга (нормальный).&lt;br /&gt;
&lt;br /&gt;
У некоторых из значений численности населения указаны [https://www.wikidata.org/wiki/Help:Qualifiers/ru квалификаторы] (qualifier) P585 (момент времени) и P459 (метод определения). &lt;br /&gt;
&lt;br /&gt;
* 2 строка: будут выбраны все 43 высказывания у элемента Q915 и свойства P1082&lt;br /&gt;
* 3 строка: выбираем их значения&lt;br /&gt;
* 4-5 строка: выбираем нужные квалификаторы&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20%3Fvalue%20%3Fqualifier%20%3Fwikidataid%20WHERE%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wd%3AQ915%20p%3AP1082%20%3Fstatements%20%20%20%20%20%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20ps%3AP1082%20%3Fvalue%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20pq%3AP585%20%20%3Fqualifier%20%20.%0A%20OPTIONAL%20%7B%20%3Fstatements%20pq%3AP459%20%20%3Fwikidataid%20.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?val ?qualifier ?wikidataid WHERE {&lt;br /&gt;
                 wd:Q915 p:P1082 ?statements           .&lt;br /&gt;
            ?statements ps:P1082 ?val      .&lt;br /&gt;
            ?statements pq:P585  ?qualifier  .&lt;br /&gt;
 OPTIONAL { ?statements pq:P459  ?wikidataid . }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранг (rank) ===&lt;br /&gt;
&lt;br /&gt;
Показать все страны относящиеся у Перми и их [https://www.wikidata.org/wiki/Help:Ranking/ru ранги].&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FdoLabel%20%3Fdo%20%3Frank%20WHERE%20%7B%0A%23%20%20VALUES%20%3Frank%20%7B%20wikibase%3ADeprecatedRank%20wikibase%3ANormalRank%20wikibase%3APreferredRank%20%7D%0A%20%20%20%20wd%3AQ915%20%20%20%20%20%20%20p%3AP17%20%3Fvalue.%0A%20%20%20%20%3Fvalue%20%20%20%20%20%20%20ps%3AP17%20%3Fdo%20.%0A%20%20%20%20%3Fvalue%20wikibase%3Arank%20%3Frank%20.%0A%20%20%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%0A%20%20%20%20%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%20%20%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?doLabel ?do ?rank WHERE {&lt;br /&gt;
#  VALUES ?rank { wikibase:DeprecatedRank wikibase:NormalRank wikibase:PreferredRank }&lt;br /&gt;
    wd:Q915       p:P17 ?value.&lt;br /&gt;
    ?value       ps:P17 ?do .&lt;br /&gt;
    ?value wikibase:rank ?rank .&lt;br /&gt;
  &lt;br /&gt;
   SERVICE wikibase:label {&lt;br /&gt;
     bd:serviceParam wikibase:language &amp;quot;ru&amp;quot; .&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
Более сложные примеры: https://bitbucket.org/sulab/wikidatasparqlexamples&lt;br /&gt;
&lt;br /&gt;
== Альтернативы SPARQL у Wikidata ==&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение. Часть языка на обновление, добавление и удаление данных это [https://www.w3.org/TR/2013/REC-sparql11-update-20130321/ SPARQL 1.1 Update], в данной статье не рассматривалась.&lt;br /&gt;
&lt;br /&gt;
Для доступа на запись (ботом или массово) вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
# [https://www.npmjs.com/package/wikidata-cli wikidata-cli]&lt;br /&gt;
# [https://github.com/maxlath/wikidata-sdk wikidata-sdk]&lt;br /&gt;
# Wikidata API. Заявления у Q915: [https://www.wikidata.org/w/api.php?action=wbgetentities&amp;amp;format=json&amp;amp;ids=Q915 в JSON] или [https://www.wikidata.org/w/api.php?action=wbgetentities&amp;amp;format=xml&amp;amp;ids=Q915 в XML]&lt;br /&gt;
# [https://github.com/jcreus/pywikidata pywikidata] - проект для доступа и на чтение и запись к элементам Wikidata. [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata].&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://www.wikidata.org/wiki/Help:Contents/ru Справочный портал Wikidata]&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24799</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24799"/>
		<updated>2016-11-27T10:56:26Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Wikidata */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL — это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-объект&amp;quot; (примечание: &amp;quot;объект&amp;quot; часто заменяется на &amp;quot;значение&amp;quot;, особенно в случае количественных предикатов) (в терминах Wikidata элемент-[https://www.wikidata.org/wiki/Help:Statements/ru свойство-значения], item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL-клиентов. Ключевая особенность Wikidata — это общедоступная и публичная точка доступа SPARQL, включающая в том числе простой [https://query.wikidata.org веб-интерфейс].&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
У этого сервиса есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV — хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно посмотреть сюда: [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]. Структуру ''элемента'' (item) и ''свойства'' (property) можно найти на англоязычной странице [https://www.mediawiki.org/wiki/Wikibase/DataModel/Primer Wikibase/DataModel/Primer].&lt;br /&gt;
* ''Отсутствующие значения'' эквивалентны тегам ключ=no из OpenStreetMap - описаны в секции ''Заявления и утверждения'' на странице ''Викиданные:Глоссарий''&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень свойств: [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties]&lt;br /&gt;
&lt;br /&gt;
Отчёт количества использований каждого свойства - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень: [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Больше миллиона --&amp;gt;&lt;br /&gt;
: Принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
: Принадлежность админ делению - https://www.wikidata.org/wiki/Property:P131&lt;br /&gt;
: Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Более 100 тысяч, но менее миллиона --&amp;gt;&lt;br /&gt;
: Численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Более 10 тысяч, но менее 100 тысяч --&amp;gt;&lt;br /&gt;
: ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
: Столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
: Город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Редкие, менее 10000 --&amp;gt;&lt;br /&gt;
: Относительная высота https://www.wikidata.org/wiki/Property:P2660&lt;br /&gt;
: Официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
&lt;br /&gt;
=== Российские свойства в Wikidata ===&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
* Портал «Герои страны» ID https://www.wikidata.org/wiki/Property:P2943&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
Т.к. исходные данные представляют граф (элемент-свойство-значения) и его расширения (в Wikidata: квалификаторы, ссылки и др.), то большинство запросов SPARQL строятся вокруг поиска ''паттернов в графе''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#GraphPattern&amp;lt;/ref&amp;gt;, зачастую нескольких.&lt;br /&gt;
&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wikidata префиксы ==&lt;br /&gt;
[https://www.mediawiki.org/wiki/Wikibase/Indexing/RDF_Dump_Format#Full_list_of_prefixes Полный список префиксов].&lt;br /&gt;
&lt;br /&gt;
=== Квалификаторы (qualifier) ===&lt;br /&gt;
&lt;br /&gt;
Если открыть [https://www.wikidata.org/wiki/Q915 Пермь], то там указанно множество значений у численности населения (P1082), причём все значения - одного ранга (нормальный).&lt;br /&gt;
&lt;br /&gt;
У некоторых из значений численности населения указаны [https://www.wikidata.org/wiki/Help:Qualifiers/ru квалификаторы] (qualifier) P585 (момент времени) и P459 (метод определения). &lt;br /&gt;
&lt;br /&gt;
* 2 строка: будут выбраны все 43 высказывания у элемента Q915 и свойства P1082&lt;br /&gt;
* 3 строка: выбираем их значения&lt;br /&gt;
* 4-5 строка: выбираем нужные квалификаторы&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20%3Fvalue%20%3Fqualifier%20%3Fwikidataid%20WHERE%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wd%3AQ915%20p%3AP1082%20%3Fstatements%20%20%20%20%20%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20ps%3AP1082%20%3Fvalue%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20pq%3AP585%20%20%3Fqualifier%20%20.%0A%20OPTIONAL%20%7B%20%3Fstatements%20pq%3AP459%20%20%3Fwikidataid%20.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?val ?qualifier ?wikidataid WHERE {&lt;br /&gt;
                 wd:Q915 p:P1082 ?statements           .&lt;br /&gt;
            ?statements ps:P1082 ?val      .&lt;br /&gt;
            ?statements pq:P585  ?qualifier  .&lt;br /&gt;
 OPTIONAL { ?statements pq:P459  ?wikidataid . }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранг (rank) ===&lt;br /&gt;
&lt;br /&gt;
Показать все страны относящиеся у Перми и их [https://www.wikidata.org/wiki/Help:Ranking/ru ранги].&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FdoLabel%20%3Fdo%20%3Frank%20WHERE%20%7B%0A%23%20%20VALUES%20%3Frank%20%7B%20wikibase%3ADeprecatedRank%20wikibase%3ANormalRank%20wikibase%3APreferredRank%20%7D%0A%20%20%20%20wd%3AQ915%20%20%20%20%20%20%20p%3AP17%20%3Fvalue.%0A%20%20%20%20%3Fvalue%20%20%20%20%20%20%20ps%3AP17%20%3Fdo%20.%0A%20%20%20%20%3Fvalue%20wikibase%3Arank%20%3Frank%20.%0A%20%20%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%0A%20%20%20%20%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%20%20%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?doLabel ?do ?rank WHERE {&lt;br /&gt;
#  VALUES ?rank { wikibase:DeprecatedRank wikibase:NormalRank wikibase:PreferredRank }&lt;br /&gt;
    wd:Q915       p:P17 ?value.&lt;br /&gt;
    ?value       ps:P17 ?do .&lt;br /&gt;
    ?value wikibase:rank ?rank .&lt;br /&gt;
  &lt;br /&gt;
   SERVICE wikibase:label {&lt;br /&gt;
     bd:serviceParam wikibase:language &amp;quot;ru&amp;quot; .&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
Более сложные примеры: https://bitbucket.org/sulab/wikidatasparqlexamples&lt;br /&gt;
&lt;br /&gt;
== Альтернативы SPARQL у Wikidata ==&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение. Часть языка на обновление, добавление и удаление данных это [https://www.w3.org/TR/2013/REC-sparql11-update-20130321/ SPARQL 1.1 Update], в данной статье не рассматривалась.&lt;br /&gt;
&lt;br /&gt;
Для доступа на запись (ботом или массово) вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
# [https://www.npmjs.com/package/wikidata-cli wikidata-cli]&lt;br /&gt;
# [https://github.com/maxlath/wikidata-sdk wikidata-sdk]&lt;br /&gt;
# Wikidata API. Заявления у Q915: [https://www.wikidata.org/w/api.php?action=wbgetentities&amp;amp;format=json&amp;amp;ids=Q915 в JSON] или [https://www.wikidata.org/w/api.php?action=wbgetentities&amp;amp;format=xml&amp;amp;ids=Q915 в XML]&lt;br /&gt;
# [https://github.com/jcreus/pywikidata pywikidata] - проект для доступа и на чтение и запись к элементам Wikidata. [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata].&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://www.wikidata.org/wiki/Help:Contents/ru Справочный портал Wikidata]&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24798</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24798"/>
		<updated>2016-11-27T10:42:56Z</updated>

		<summary type="html">&lt;p&gt;D1g: упомянем &amp;quot;Отсутствующие значения&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL — это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-объект&amp;quot; (примечание: &amp;quot;объект&amp;quot; часто заменяется на &amp;quot;значение&amp;quot;, особенно в случае количественных предикатов) (в терминах Wikidata элемент-[https://www.wikidata.org/wiki/Help:Statements/ru свойство-значения], item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL-клиентов. Ключевая особенность Wikidata — это общедоступная и публичная точка доступа SPARQL, включающая в том числе простой [https://query.wikidata.org веб-интерфейс].&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
У этого сервиса есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV — хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно посмотреть сюда: [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий].&lt;br /&gt;
* ''Отсутствующие значения'' эквивалентны тегам ключ=no из OpenStreetMap - описаны в секции ''Заявления и утверждения'' на странице ''Викиданные:Глоссарий''&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень свойств: [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties]&lt;br /&gt;
&lt;br /&gt;
Отчёт количества использований каждого свойства - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень: [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Больше миллиона --&amp;gt;&lt;br /&gt;
: Принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
: Принадлежность админ делению - https://www.wikidata.org/wiki/Property:P131&lt;br /&gt;
: Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Более 100 тысяч, но менее миллиона --&amp;gt;&lt;br /&gt;
: Численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Более 10 тысяч, но менее 100 тысяч --&amp;gt;&lt;br /&gt;
: ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
: Столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
: Город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Редкие, менее 10000 --&amp;gt;&lt;br /&gt;
: Относительная высота https://www.wikidata.org/wiki/Property:P2660&lt;br /&gt;
: Официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
&lt;br /&gt;
=== Российские свойства в Wikidata ===&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
* Портал «Герои страны» ID https://www.wikidata.org/wiki/Property:P2943&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
Т.к. исходные данные представляют граф (элемент-свойство-значения) и его расширения (в Wikidata: квалификаторы, ссылки и др.), то большинство запросов SPARQL строятся вокруг поиска ''паттернов в графе''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#GraphPattern&amp;lt;/ref&amp;gt;, зачастую нескольких.&lt;br /&gt;
&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wikidata префиксы ==&lt;br /&gt;
[https://www.mediawiki.org/wiki/Wikibase/Indexing/RDF_Dump_Format#Full_list_of_prefixes Полный список префиксов].&lt;br /&gt;
&lt;br /&gt;
=== Квалификаторы (qualifier) ===&lt;br /&gt;
&lt;br /&gt;
Если открыть [https://www.wikidata.org/wiki/Q915 Пермь], то там указанно множество значений у численности населения (P1082), причём все значения - одного ранга (нормальный).&lt;br /&gt;
&lt;br /&gt;
У некоторых из значений численности населения указаны [https://www.wikidata.org/wiki/Help:Qualifiers/ru квалификаторы] (qualifier) P585 (момент времени) и P459 (метод определения). &lt;br /&gt;
&lt;br /&gt;
* 2 строка: будут выбраны все 43 высказывания у элемента Q915 и свойства P1082&lt;br /&gt;
* 3 строка: выбираем их значения&lt;br /&gt;
* 4-5 строка: выбираем нужные квалификаторы&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20%3Fvalue%20%3Fqualifier%20%3Fwikidataid%20WHERE%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wd%3AQ915%20p%3AP1082%20%3Fstatements%20%20%20%20%20%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20ps%3AP1082%20%3Fvalue%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20pq%3AP585%20%20%3Fqualifier%20%20.%0A%20OPTIONAL%20%7B%20%3Fstatements%20pq%3AP459%20%20%3Fwikidataid%20.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?val ?qualifier ?wikidataid WHERE {&lt;br /&gt;
                 wd:Q915 p:P1082 ?statements           .&lt;br /&gt;
            ?statements ps:P1082 ?val      .&lt;br /&gt;
            ?statements pq:P585  ?qualifier  .&lt;br /&gt;
 OPTIONAL { ?statements pq:P459  ?wikidataid . }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранг (rank) ===&lt;br /&gt;
&lt;br /&gt;
Показать все страны относящиеся у Перми и их [https://www.wikidata.org/wiki/Help:Ranking/ru ранги].&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FdoLabel%20%3Fdo%20%3Frank%20WHERE%20%7B%0A%23%20%20VALUES%20%3Frank%20%7B%20wikibase%3ADeprecatedRank%20wikibase%3ANormalRank%20wikibase%3APreferredRank%20%7D%0A%20%20%20%20wd%3AQ915%20%20%20%20%20%20%20p%3AP17%20%3Fvalue.%0A%20%20%20%20%3Fvalue%20%20%20%20%20%20%20ps%3AP17%20%3Fdo%20.%0A%20%20%20%20%3Fvalue%20wikibase%3Arank%20%3Frank%20.%0A%20%20%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%0A%20%20%20%20%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%20%20%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?doLabel ?do ?rank WHERE {&lt;br /&gt;
#  VALUES ?rank { wikibase:DeprecatedRank wikibase:NormalRank wikibase:PreferredRank }&lt;br /&gt;
    wd:Q915       p:P17 ?value.&lt;br /&gt;
    ?value       ps:P17 ?do .&lt;br /&gt;
    ?value wikibase:rank ?rank .&lt;br /&gt;
  &lt;br /&gt;
   SERVICE wikibase:label {&lt;br /&gt;
     bd:serviceParam wikibase:language &amp;quot;ru&amp;quot; .&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
Более сложные примеры: https://bitbucket.org/sulab/wikidatasparqlexamples&lt;br /&gt;
&lt;br /&gt;
== Альтернативы SPARQL у Wikidata ==&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение. Часть языка на обновление, добавление и удаление данных это [https://www.w3.org/TR/2013/REC-sparql11-update-20130321/ SPARQL 1.1 Update], в данной статье не рассматривалась.&lt;br /&gt;
&lt;br /&gt;
Для доступа на запись (ботом или массово) вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
# [https://www.npmjs.com/package/wikidata-cli wikidata-cli]&lt;br /&gt;
# [https://github.com/maxlath/wikidata-sdk wikidata-sdk]&lt;br /&gt;
# Wikidata API. Заявления у Q915: [https://www.wikidata.org/w/api.php?action=wbgetentities&amp;amp;format=json&amp;amp;ids=Q915 в JSON] или [https://www.wikidata.org/w/api.php?action=wbgetentities&amp;amp;format=xml&amp;amp;ids=Q915 в XML]&lt;br /&gt;
# [https://github.com/jcreus/pywikidata pywikidata] - проект для доступа и на чтение и запись к элементам Wikidata. [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata].&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://www.wikidata.org/wiki/Help:Contents/ru Справочный портал Wikidata]&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24797</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24797"/>
		<updated>2016-11-27T10:23:19Z</updated>

		<summary type="html">&lt;p&gt;D1g: отражаю плавающую терминологию value/object: Wikidata_query_service/User_Manual использовал &amp;quot;Basics - Understanding SPO (Subject, Predicate, Object) also known as a Semantic Triple&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL — это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-объект&amp;quot; (примечание: &amp;quot;объект&amp;quot; часто заменяется на &amp;quot;значение&amp;quot;, особенно в случае количественных предикатов) (в терминах Wikidata элемент-[https://www.wikidata.org/wiki/Help:Statements/ru свойство-значения], item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL-клиентов. Ключевая особенность Wikidata — это общедоступная и публичная точка доступа SPARQL, включающая в том числе простой [https://query.wikidata.org веб-интерфейс].&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
У этого сервиса есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV — хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно посмотреть сюда: [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень свойств: [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties]&lt;br /&gt;
&lt;br /&gt;
Отчёт количества использований каждого свойства - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень: [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Больше миллиона --&amp;gt;&lt;br /&gt;
: Принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
: Принадлежность админ делению - https://www.wikidata.org/wiki/Property:P131&lt;br /&gt;
: Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Более 100 тысяч, но менее миллиона --&amp;gt;&lt;br /&gt;
: Численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Более 10 тысяч, но менее 100 тысяч --&amp;gt;&lt;br /&gt;
: ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
: Столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
: Город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Редкие, менее 10000 --&amp;gt;&lt;br /&gt;
: Относительная высота https://www.wikidata.org/wiki/Property:P2660&lt;br /&gt;
: Официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
&lt;br /&gt;
=== Российские свойства в Wikidata ===&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
* Портал «Герои страны» ID https://www.wikidata.org/wiki/Property:P2943&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
Т.к. исходные данные представляют граф (элемент-свойство-значения) и его расширения (в Wikidata: квалификаторы, ссылки и др.), то большинство запросов SPARQL строятся вокруг поиска ''паттернов в графе''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#GraphPattern&amp;lt;/ref&amp;gt;, зачастую нескольких.&lt;br /&gt;
&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wikidata префиксы ==&lt;br /&gt;
[https://www.mediawiki.org/wiki/Wikibase/Indexing/RDF_Dump_Format#Full_list_of_prefixes Полный список префиксов].&lt;br /&gt;
&lt;br /&gt;
=== Квалификаторы (qualifier) ===&lt;br /&gt;
&lt;br /&gt;
Если открыть [https://www.wikidata.org/wiki/Q915 Пермь], то там указанно множество значений у численности населения (P1082), причём все значения - одного ранга (нормальный).&lt;br /&gt;
&lt;br /&gt;
У некоторых из значений численности населения указаны [https://www.wikidata.org/wiki/Help:Qualifiers/ru квалификаторы] (qualifier) P585 (момент времени) и P459 (метод определения). &lt;br /&gt;
&lt;br /&gt;
* 2 строка: будут выбраны все 43 высказывания у элемента Q915 и свойства P1082&lt;br /&gt;
* 3 строка: выбираем их значения&lt;br /&gt;
* 4-5 строка: выбираем нужные квалификаторы&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20%3Fvalue%20%3Fqualifier%20%3Fwikidataid%20WHERE%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wd%3AQ915%20p%3AP1082%20%3Fstatements%20%20%20%20%20%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20ps%3AP1082%20%3Fvalue%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20pq%3AP585%20%20%3Fqualifier%20%20.%0A%20OPTIONAL%20%7B%20%3Fstatements%20pq%3AP459%20%20%3Fwikidataid%20.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?val ?qualifier ?wikidataid WHERE {&lt;br /&gt;
                 wd:Q915 p:P1082 ?statements           .&lt;br /&gt;
            ?statements ps:P1082 ?val      .&lt;br /&gt;
            ?statements pq:P585  ?qualifier  .&lt;br /&gt;
 OPTIONAL { ?statements pq:P459  ?wikidataid . }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранг (rank) ===&lt;br /&gt;
&lt;br /&gt;
Показать все страны относящиеся у Перми и их [https://www.wikidata.org/wiki/Help:Ranking/ru ранги].&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FdoLabel%20%3Fdo%20%3Frank%20WHERE%20%7B%0A%23%20%20VALUES%20%3Frank%20%7B%20wikibase%3ADeprecatedRank%20wikibase%3ANormalRank%20wikibase%3APreferredRank%20%7D%0A%20%20%20%20wd%3AQ915%20%20%20%20%20%20%20p%3AP17%20%3Fvalue.%0A%20%20%20%20%3Fvalue%20%20%20%20%20%20%20ps%3AP17%20%3Fdo%20.%0A%20%20%20%20%3Fvalue%20wikibase%3Arank%20%3Frank%20.%0A%20%20%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%0A%20%20%20%20%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%20%20%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?doLabel ?do ?rank WHERE {&lt;br /&gt;
#  VALUES ?rank { wikibase:DeprecatedRank wikibase:NormalRank wikibase:PreferredRank }&lt;br /&gt;
    wd:Q915       p:P17 ?value.&lt;br /&gt;
    ?value       ps:P17 ?do .&lt;br /&gt;
    ?value wikibase:rank ?rank .&lt;br /&gt;
  &lt;br /&gt;
   SERVICE wikibase:label {&lt;br /&gt;
     bd:serviceParam wikibase:language &amp;quot;ru&amp;quot; .&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
Более сложные примеры: https://bitbucket.org/sulab/wikidatasparqlexamples&lt;br /&gt;
&lt;br /&gt;
== Альтернативы SPARQL у Wikidata ==&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение. Часть языка на обновление, добавление и удаление данных это [https://www.w3.org/TR/2013/REC-sparql11-update-20130321/ SPARQL 1.1 Update], в данной статье не рассматривалась.&lt;br /&gt;
&lt;br /&gt;
Для доступа на запись (ботом или массово) вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
# [https://www.npmjs.com/package/wikidata-cli wikidata-cli]&lt;br /&gt;
# [https://github.com/maxlath/wikidata-sdk wikidata-sdk]&lt;br /&gt;
# Wikidata API. Заявления у Q915: [https://www.wikidata.org/w/api.php?action=wbgetentities&amp;amp;format=json&amp;amp;ids=Q915 в JSON] или [https://www.wikidata.org/w/api.php?action=wbgetentities&amp;amp;format=xml&amp;amp;ids=Q915 в XML]&lt;br /&gt;
# [https://github.com/jcreus/pywikidata pywikidata] - проект для доступа и на чтение и запись к элементам Wikidata. [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata].&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://www.wikidata.org/wiki/Help:Contents/ru Справочный портал Wikidata]&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24796</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24796"/>
		<updated>2016-11-26T12:17:25Z</updated>

		<summary type="html">&lt;p&gt;D1g: всё объяснено в https://www.w3.org/TR/sparql11-query/#inline-data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL — это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-[https://www.wikidata.org/wiki/Help:Statements/ru свойство-значения], item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL-клиентов. Ключевая особенность Wikidata — это общедоступная и публичная точка доступа SPARQL, включающая в том числе простой [https://query.wikidata.org веб-интерфейс].&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
У этого сервиса есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV — хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно посмотреть сюда: [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень свойств: [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties]&lt;br /&gt;
&lt;br /&gt;
Отчёт количества использований каждого свойства - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень: [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Больше миллиона --&amp;gt;&lt;br /&gt;
: Принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
: Принадлежность админ делению - https://www.wikidata.org/wiki/Property:P131&lt;br /&gt;
: Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Более 100 тысяч, но менее миллиона --&amp;gt;&lt;br /&gt;
: Численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Более 10 тысяч, но менее 100 тысяч --&amp;gt;&lt;br /&gt;
: ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
: Столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
: Город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Редкие, менее 10000 --&amp;gt;&lt;br /&gt;
: Относительная высота https://www.wikidata.org/wiki/Property:P2660&lt;br /&gt;
: Официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
&lt;br /&gt;
=== Российские свойства в Wikidata ===&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
* Портал «Герои страны» ID https://www.wikidata.org/wiki/Property:P2943&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
Т.к. исходные данные представляют граф (элемент-свойство-значения) и его расширения (в Wikidata: квалификаторы, ссылки и др.), то большинство запросов SPARQL строятся вокруг поиска ''паттернов в графе''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#GraphPattern&amp;lt;/ref&amp;gt;, зачастую нескольких.&lt;br /&gt;
&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wikidata префиксы ==&lt;br /&gt;
[https://www.mediawiki.org/wiki/Wikibase/Indexing/RDF_Dump_Format#Full_list_of_prefixes Полный список префиксов].&lt;br /&gt;
&lt;br /&gt;
=== Квалификаторы (qualifier) ===&lt;br /&gt;
&lt;br /&gt;
Если открыть [https://www.wikidata.org/wiki/Q915 Пермь], то там указанно множество значений у численности населения (P1082), причём все значения - одного ранга (нормальный).&lt;br /&gt;
&lt;br /&gt;
У некоторых из значений численности населения указаны [https://www.wikidata.org/wiki/Help:Qualifiers/ru квалификаторы] (qualifier) P585 (момент времени) и P459 (метод определения). &lt;br /&gt;
&lt;br /&gt;
* 2 строка: будут выбраны все 43 высказывания у элемента Q915 и свойства P1082&lt;br /&gt;
* 3 строка: выбираем их значения&lt;br /&gt;
* 4-5 строка: выбираем нужные квалификаторы&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20%3Fvalue%20%3Fqualifier%20%3Fwikidataid%20WHERE%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wd%3AQ915%20p%3AP1082%20%3Fstatements%20%20%20%20%20%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20ps%3AP1082%20%3Fvalue%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20pq%3AP585%20%20%3Fqualifier%20%20.%0A%20OPTIONAL%20%7B%20%3Fstatements%20pq%3AP459%20%20%3Fwikidataid%20.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?val ?qualifier ?wikidataid WHERE {&lt;br /&gt;
                 wd:Q915 p:P1082 ?statements           .&lt;br /&gt;
            ?statements ps:P1082 ?val      .&lt;br /&gt;
            ?statements pq:P585  ?qualifier  .&lt;br /&gt;
 OPTIONAL { ?statements pq:P459  ?wikidataid . }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранг (rank) ===&lt;br /&gt;
&lt;br /&gt;
Показать все страны относящиеся у Перми и их [https://www.wikidata.org/wiki/Help:Ranking/ru ранги].&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FdoLabel%20%3Fdo%20%3Frank%20WHERE%20%7B%0A%23%20%20VALUES%20%3Frank%20%7B%20wikibase%3ADeprecatedRank%20wikibase%3ANormalRank%20wikibase%3APreferredRank%20%7D%0A%20%20%20%20wd%3AQ915%20%20%20%20%20%20%20p%3AP17%20%3Fvalue.%0A%20%20%20%20%3Fvalue%20%20%20%20%20%20%20ps%3AP17%20%3Fdo%20.%0A%20%20%20%20%3Fvalue%20wikibase%3Arank%20%3Frank%20.%0A%20%20%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%0A%20%20%20%20%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%20%20%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?doLabel ?do ?rank WHERE {&lt;br /&gt;
#  VALUES ?rank { wikibase:DeprecatedRank wikibase:NormalRank wikibase:PreferredRank }&lt;br /&gt;
    wd:Q915       p:P17 ?value.&lt;br /&gt;
    ?value       ps:P17 ?do .&lt;br /&gt;
    ?value wikibase:rank ?rank .&lt;br /&gt;
  &lt;br /&gt;
   SERVICE wikibase:label {&lt;br /&gt;
     bd:serviceParam wikibase:language &amp;quot;ru&amp;quot; .&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
Более сложные примеры: https://bitbucket.org/sulab/wikidatasparqlexamples&lt;br /&gt;
&lt;br /&gt;
== Альтернативы SPARQL у Wikidata ==&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение. Часть языка на обновление, добавление и удаление данных это [https://www.w3.org/TR/2013/REC-sparql11-update-20130321/ SPARQL 1.1 Update], в данной статье не рассматривалась.&lt;br /&gt;
&lt;br /&gt;
Для доступа на запись (ботом или массово) вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
# [https://www.npmjs.com/package/wikidata-cli wikidata-cli]&lt;br /&gt;
# [https://github.com/maxlath/wikidata-sdk wikidata-sdk]&lt;br /&gt;
# Wikidata API. Заявления у Q915: [https://www.wikidata.org/w/api.php?action=wbgetentities&amp;amp;format=json&amp;amp;ids=Q915 в JSON] или [https://www.wikidata.org/w/api.php?action=wbgetentities&amp;amp;format=xml&amp;amp;ids=Q915 в XML]&lt;br /&gt;
# [https://github.com/jcreus/pywikidata pywikidata] - проект для доступа и на чтение и запись к элементам Wikidata. [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata].&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://www.wikidata.org/wiki/Help:Contents/ru Справочный портал Wikidata]&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24795</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24795"/>
		<updated>2016-11-26T11:58:08Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Wikidata */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL — это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-[https://www.wikidata.org/wiki/Help:Statements/ru свойство-значения], item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL-клиентов. Ключевая особенность Wikidata — это общедоступная и публичная точка доступа SPARQL, включающая в том числе простой [https://query.wikidata.org веб-интерфейс].&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
У этого сервиса есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV — хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно посмотреть сюда: [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень свойств: [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties]&lt;br /&gt;
&lt;br /&gt;
Отчёт количества использований каждого свойства - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень: [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Больше миллиона --&amp;gt;&lt;br /&gt;
: Принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
: Принадлежность админ делению - https://www.wikidata.org/wiki/Property:P131&lt;br /&gt;
: Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Более 100 тысяч, но менее миллиона --&amp;gt;&lt;br /&gt;
: Численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Более 10 тысяч, но менее 100 тысяч --&amp;gt;&lt;br /&gt;
: ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
: Столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
: Город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Редкие, менее 10000 --&amp;gt;&lt;br /&gt;
: Относительная высота https://www.wikidata.org/wiki/Property:P2660&lt;br /&gt;
: Официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
&lt;br /&gt;
=== Российские свойства в Wikidata ===&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
* Портал «Герои страны» ID https://www.wikidata.org/wiki/Property:P2943&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
Т.к. исходные данные представляют граф (элемент-свойство-значения) и его расширения (в Wikidata: квалификаторы, ссылки и др.), то большинство запросов SPARQL строятся вокруг поиска ''паттернов в графе''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#GraphPattern&amp;lt;/ref&amp;gt;, зачастую нескольких.&lt;br /&gt;
&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wikidata префиксы ==&lt;br /&gt;
[https://www.mediawiki.org/wiki/Wikibase/Indexing/RDF_Dump_Format#Full_list_of_prefixes Полный список префиксов].&lt;br /&gt;
&lt;br /&gt;
=== Квалификаторы (qualifier) ===&lt;br /&gt;
&lt;br /&gt;
Если открыть [https://www.wikidata.org/wiki/Q915 Пермь], то там указанно множество значений у численности населения (P1082), причём все значения - одного ранга (нормальный).&lt;br /&gt;
&lt;br /&gt;
У некоторых из значений численности населения указаны [https://www.wikidata.org/wiki/Help:Qualifiers/ru квалификаторы] (qualifier) P585 (момент времени) и P459 (метод определения). &lt;br /&gt;
&lt;br /&gt;
* 2 строка: будут выбраны все 43 высказывания у элемента Q915 и свойства P1082&lt;br /&gt;
* 3 строка: выбираем их значения&lt;br /&gt;
* 4-5 строка: выбираем нужные квалификаторы&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20%3Fvalue%20%3Fqualifier%20%3Fwikidataid%20WHERE%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wd%3AQ915%20p%3AP1082%20%3Fstatements%20%20%20%20%20%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20ps%3AP1082%20%3Fvalue%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20pq%3AP585%20%20%3Fqualifier%20%20.%0A%20OPTIONAL%20%7B%20%3Fstatements%20pq%3AP459%20%20%3Fwikidataid%20.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?val ?qualifier ?wikidataid WHERE {&lt;br /&gt;
                 wd:Q915 p:P1082 ?statements           .&lt;br /&gt;
            ?statements ps:P1082 ?val      .&lt;br /&gt;
            ?statements pq:P585  ?qualifier  .&lt;br /&gt;
 OPTIONAL { ?statements pq:P459  ?wikidataid . }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранг (rank) ===&lt;br /&gt;
&lt;br /&gt;
Показать все страны относящиеся у Перми и их [https://www.wikidata.org/wiki/Help:Ranking/ru ранги].&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FdoLabel%20%3Fdo%20%3Frank%20WHERE%20%7B%0A%23%20%20VALUES%20%3Frank%20%7B%20wikibase%3ADeprecatedRank%20wikibase%3ANormalRank%20wikibase%3APreferredRank%20%7D%0A%20%20%20%20wd%3AQ915%20%20%20%20%20%20%20p%3AP17%20%3Fvalue.%0A%20%20%20%20%3Fvalue%20%20%20%20%20%20%20ps%3AP17%20%3Fdo%20.%0A%20%20%20%20%3Fvalue%20wikibase%3Arank%20%3Frank%20.%0A%20%20%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%0A%20%20%20%20%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%20%20%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?doLabel ?do ?rank WHERE {&lt;br /&gt;
#  VALUES ?rank { wikibase:DeprecatedRank wikibase:NormalRank wikibase:PreferredRank }&lt;br /&gt;
    wd:Q915       p:P17 ?value.&lt;br /&gt;
    ?value       ps:P17 ?do .&lt;br /&gt;
    ?value wikibase:rank ?rank .&lt;br /&gt;
  &lt;br /&gt;
   SERVICE wikibase:label {&lt;br /&gt;
     bd:serviceParam wikibase:language &amp;quot;ru&amp;quot; .&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
Более сложные примеры: https://bitbucket.org/sulab/wikidatasparqlexamples&lt;br /&gt;
&lt;br /&gt;
== Альтернативы SPARQL у Wikidata ==&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение. Часть языка на обновление, добавление и удаление данных это [https://www.w3.org/TR/2013/REC-sparql11-update-20130321/ SPARQL 1.1 Update], в данной статье не рассматривалась.&lt;br /&gt;
&lt;br /&gt;
Для доступа на запись (ботом или массово) вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
# [https://www.npmjs.com/package/wikidata-cli wikidata-cli]&lt;br /&gt;
# [https://github.com/maxlath/wikidata-sdk wikidata-sdk]&lt;br /&gt;
# Wikidata API. Заявления у Q915: [https://www.wikidata.org/w/api.php?action=wbgetentities&amp;amp;format=json&amp;amp;ids=Q915 в JSON] или [https://www.wikidata.org/w/api.php?action=wbgetentities&amp;amp;format=xml&amp;amp;ids=Q915 в XML]&lt;br /&gt;
# [https://github.com/jcreus/pywikidata pywikidata] - проект для доступа и на чтение и запись к элементам Wikidata. [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata].&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://www.wikidata.org/wiki/Help:Contents/ru Справочный портал Wikidata]&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24794</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24794"/>
		<updated>2016-11-26T10:26:13Z</updated>

		<summary type="html">&lt;p&gt;D1g: я понимаю что в отчёте данные по использованию каждого свойства, а не по объектам&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL — это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-[https://www.wikidata.org/wiki/Help:Statements/ru свойство-значения], item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL-клиентов. Ключевая особенность Wikidata — это общедоступная и публичная точка доступа SPARQL, включающая в том числе простой [https://query.wikidata.org веб-интерфейс].&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
У этого сервиса есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV — хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно посмотреть сюда: https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень свойств: [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties]&lt;br /&gt;
&lt;br /&gt;
Отчёт количества использований каждого свойства - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень: [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Больше миллиона --&amp;gt;&lt;br /&gt;
: Принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
: Принадлежность админ делению - https://www.wikidata.org/wiki/Property:P131&lt;br /&gt;
: Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Более 100 тысяч, но менее миллиона --&amp;gt;&lt;br /&gt;
: Численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Более 10 тысяч, но менее 100 тысяч --&amp;gt;&lt;br /&gt;
: ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
: Столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
: Город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Редкие, менее 10000 --&amp;gt;&lt;br /&gt;
: Относительная высота https://www.wikidata.org/wiki/Property:P2660&lt;br /&gt;
: Официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
&lt;br /&gt;
=== Российские свойства в Wikidata ===&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
* Портал «Герои страны» ID https://www.wikidata.org/wiki/Property:P2943&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
Т.к. исходные данные представляют граф (элемент-свойство-значения) и его расширения (в Wikidata: квалификаторы, ссылки и др.), то большинство запросов SPARQL строятся вокруг поиска ''паттернов в графе''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#GraphPattern&amp;lt;/ref&amp;gt;, зачастую нескольких.&lt;br /&gt;
&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wikidata префиксы ==&lt;br /&gt;
[https://www.mediawiki.org/wiki/Wikibase/Indexing/RDF_Dump_Format#Full_list_of_prefixes Полный список префиксов].&lt;br /&gt;
&lt;br /&gt;
=== Квалификаторы (qualifier) ===&lt;br /&gt;
&lt;br /&gt;
Если открыть [https://www.wikidata.org/wiki/Q915 Пермь], то там указанно множество значений у численности населения (P1082), причём все значения - одного ранга (нормальный).&lt;br /&gt;
&lt;br /&gt;
У некоторых из значений численности населения указаны [https://www.wikidata.org/wiki/Help:Qualifiers/ru квалификаторы] (qualifier) P585 (момент времени) и P459 (метод определения). &lt;br /&gt;
&lt;br /&gt;
* 2 строка: будут выбраны все 43 высказывания у элемента Q915 и свойства P1082&lt;br /&gt;
* 3 строка: выбираем их значения&lt;br /&gt;
* 4-5 строка: выбираем нужные квалификаторы&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20%3Fvalue%20%3Fqualifier%20%3Fwikidataid%20WHERE%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wd%3AQ915%20p%3AP1082%20%3Fstatements%20%20%20%20%20%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20ps%3AP1082%20%3Fvalue%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20pq%3AP585%20%20%3Fqualifier%20%20.%0A%20OPTIONAL%20%7B%20%3Fstatements%20pq%3AP459%20%20%3Fwikidataid%20.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?val ?qualifier ?wikidataid WHERE {&lt;br /&gt;
                 wd:Q915 p:P1082 ?statements           .&lt;br /&gt;
            ?statements ps:P1082 ?val      .&lt;br /&gt;
            ?statements pq:P585  ?qualifier  .&lt;br /&gt;
 OPTIONAL { ?statements pq:P459  ?wikidataid . }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранг (rank) ===&lt;br /&gt;
&lt;br /&gt;
Показать все страны относящиеся у Перми и их [https://www.wikidata.org/wiki/Help:Ranking/ru ранги].&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FdoLabel%20%3Fdo%20%3Frank%20WHERE%20%7B%0A%23%20%20VALUES%20%3Frank%20%7B%20wikibase%3ADeprecatedRank%20wikibase%3ANormalRank%20wikibase%3APreferredRank%20%7D%0A%20%20%20%20wd%3AQ915%20%20%20%20%20%20%20p%3AP17%20%3Fvalue.%0A%20%20%20%20%3Fvalue%20%20%20%20%20%20%20ps%3AP17%20%3Fdo%20.%0A%20%20%20%20%3Fvalue%20wikibase%3Arank%20%3Frank%20.%0A%20%20%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%0A%20%20%20%20%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%20%20%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?doLabel ?do ?rank WHERE {&lt;br /&gt;
#  VALUES ?rank { wikibase:DeprecatedRank wikibase:NormalRank wikibase:PreferredRank }&lt;br /&gt;
    wd:Q915       p:P17 ?value.&lt;br /&gt;
    ?value       ps:P17 ?do .&lt;br /&gt;
    ?value wikibase:rank ?rank .&lt;br /&gt;
  &lt;br /&gt;
   SERVICE wikibase:label {&lt;br /&gt;
     bd:serviceParam wikibase:language &amp;quot;ru&amp;quot; .&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
Более сложные примеры: https://bitbucket.org/sulab/wikidatasparqlexamples&lt;br /&gt;
&lt;br /&gt;
== Альтернативы SPARQL у Wikidata ==&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение. Часть языка на обновление, добавление и удаление данных это [https://www.w3.org/TR/2013/REC-sparql11-update-20130321/ SPARQL 1.1 Update], в данной статье не рассматривалась.&lt;br /&gt;
&lt;br /&gt;
Для доступа на запись (ботом или массово) вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
# [https://www.npmjs.com/package/wikidata-cli wikidata-cli]&lt;br /&gt;
# [https://github.com/maxlath/wikidata-sdk wikidata-sdk]&lt;br /&gt;
# Wikidata API. Заявления у Q915: [https://www.wikidata.org/w/api.php?action=wbgetentities&amp;amp;format=json&amp;amp;ids=Q915 в JSON] или [https://www.wikidata.org/w/api.php?action=wbgetentities&amp;amp;format=xml&amp;amp;ids=Q915 в XML]&lt;br /&gt;
# [https://github.com/jcreus/pywikidata pywikidata] - проект для доступа и на чтение и запись к элементам Wikidata. [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata].&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://www.wikidata.org/wiki/Help:Contents/ru Справочный портал Wikidata]&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24793</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24793"/>
		<updated>2016-11-26T10:06:04Z</updated>

		<summary type="html">&lt;p&gt;D1g: спрятал от читателей разбивку по количеству объектов (неточная и будет устаревать)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL — это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-[https://www.wikidata.org/wiki/Help:Statements/ru свойство-значения], item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL-клиентов. Ключевая особенность Wikidata — это общедоступная и публичная точка доступа SPARQL, включающая в том числе простой [https://query.wikidata.org веб-интерфейс].&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
У этого сервиса есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV — хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно посмотреть сюда: https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень свойств: [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties]&lt;br /&gt;
&lt;br /&gt;
Отчёт количества объектов по каждому свойству - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень: [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Больше миллиона --&amp;gt;&lt;br /&gt;
: Принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
: Принадлежность админ делению - https://www.wikidata.org/wiki/Property:P131&lt;br /&gt;
: Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Более 100 тысяч, но менее миллиона --&amp;gt;&lt;br /&gt;
: Численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Более 10 тысяч, но менее 100 тысяч --&amp;gt;&lt;br /&gt;
: ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
: Столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
: Город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Редкие, менее 10000 --&amp;gt;&lt;br /&gt;
: Относительная высота https://www.wikidata.org/wiki/Property:P2660&lt;br /&gt;
: Официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
&lt;br /&gt;
=== Российские свойства в Wikidata ===&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
* Портал «Герои страны» ID https://www.wikidata.org/wiki/Property:P2943&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
Т.к. исходные данные представляют граф (элемент-свойство-значения) и его расширения (в Wikidata: квалификаторы, ссылки и др.), то большинство запросов SPARQL строятся вокруг поиска ''паттернов в графе''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#GraphPattern&amp;lt;/ref&amp;gt;, зачастую нескольких.&lt;br /&gt;
&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wikidata префиксы ==&lt;br /&gt;
[https://www.mediawiki.org/wiki/Wikibase/Indexing/RDF_Dump_Format#Full_list_of_prefixes Полный список префиксов].&lt;br /&gt;
&lt;br /&gt;
=== Квалификаторы (qualifier) ===&lt;br /&gt;
&lt;br /&gt;
Если открыть [https://www.wikidata.org/wiki/Q915 Пермь], то там указанно множество значений у численности населения (P1082), причём все значения - одного ранга (нормальный).&lt;br /&gt;
&lt;br /&gt;
У некоторых из значений численности населения указаны [https://www.wikidata.org/wiki/Help:Qualifiers/ru квалификаторы] (qualifier) P585 (момент времени) и P459 (метод определения). &lt;br /&gt;
&lt;br /&gt;
* 2 строка: будут выбраны все 43 высказывания у элемента Q915 и свойства P1082&lt;br /&gt;
* 3 строка: выбираем их значения&lt;br /&gt;
* 4-5 строка: выбираем нужные квалификаторы&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20%3Fvalue%20%3Fqualifier%20%3Fwikidataid%20WHERE%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wd%3AQ915%20p%3AP1082%20%3Fstatements%20%20%20%20%20%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20ps%3AP1082%20%3Fvalue%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20pq%3AP585%20%20%3Fqualifier%20%20.%0A%20OPTIONAL%20%7B%20%3Fstatements%20pq%3AP459%20%20%3Fwikidataid%20.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?val ?qualifier ?wikidataid WHERE {&lt;br /&gt;
                 wd:Q915 p:P1082 ?statements           .&lt;br /&gt;
            ?statements ps:P1082 ?val      .&lt;br /&gt;
            ?statements pq:P585  ?qualifier  .&lt;br /&gt;
 OPTIONAL { ?statements pq:P459  ?wikidataid . }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранг (rank) ===&lt;br /&gt;
&lt;br /&gt;
Показать все страны относящиеся у Перми и их [https://www.wikidata.org/wiki/Help:Ranking/ru ранги].&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FdoLabel%20%3Fdo%20%3Frank%20WHERE%20%7B%0A%23%20%20VALUES%20%3Frank%20%7B%20wikibase%3ADeprecatedRank%20wikibase%3ANormalRank%20wikibase%3APreferredRank%20%7D%0A%20%20%20%20wd%3AQ915%20%20%20%20%20%20%20p%3AP17%20%3Fvalue.%0A%20%20%20%20%3Fvalue%20%20%20%20%20%20%20ps%3AP17%20%3Fdo%20.%0A%20%20%20%20%3Fvalue%20wikibase%3Arank%20%3Frank%20.%0A%20%20%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%0A%20%20%20%20%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%20%20%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?doLabel ?do ?rank WHERE {&lt;br /&gt;
#  VALUES ?rank { wikibase:DeprecatedRank wikibase:NormalRank wikibase:PreferredRank }&lt;br /&gt;
    wd:Q915       p:P17 ?value.&lt;br /&gt;
    ?value       ps:P17 ?do .&lt;br /&gt;
    ?value wikibase:rank ?rank .&lt;br /&gt;
  &lt;br /&gt;
   SERVICE wikibase:label {&lt;br /&gt;
     bd:serviceParam wikibase:language &amp;quot;ru&amp;quot; .&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
Более сложные примеры: https://bitbucket.org/sulab/wikidatasparqlexamples&lt;br /&gt;
&lt;br /&gt;
== Альтернативы SPARQL у Wikidata ==&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение. Часть языка на обновление, добавление и удаление данных это [https://www.w3.org/TR/2013/REC-sparql11-update-20130321/ SPARQL 1.1 Update], в данной статье не рассматривалась.&lt;br /&gt;
&lt;br /&gt;
Для доступа на запись (ботом или массово) вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
# [https://www.npmjs.com/package/wikidata-cli wikidata-cli]&lt;br /&gt;
# [https://github.com/maxlath/wikidata-sdk wikidata-sdk]&lt;br /&gt;
# Wikidata API. Заявления у Q915: [https://www.wikidata.org/w/api.php?action=wbgetentities&amp;amp;format=json&amp;amp;ids=Q915 в JSON] или [https://www.wikidata.org/w/api.php?action=wbgetentities&amp;amp;format=xml&amp;amp;ids=Q915 в XML]&lt;br /&gt;
# [https://github.com/jcreus/pywikidata pywikidata] - проект для доступа и на чтение и запись к элементам Wikidata. [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata].&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://www.wikidata.org/wiki/Help:Contents/ru Справочный портал Wikidata]&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24669</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24669"/>
		<updated>2016-11-10T20:01:49Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Wikidata префиксы */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-[https://www.wikidata.org/wiki/Help:Statements/ru свойство-значения], item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&amp;lt;br&amp;gt;&lt;br /&gt;
Отчёт количества объектов по каждому свойству - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature]&lt;br /&gt;
&lt;br /&gt;
Более миллиона:&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* принадлежность админ делению - https://www.wikidata.org/wiki/Property:P131&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
&lt;br /&gt;
Больше 100 тысяч, менее миллиона:&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
&lt;br /&gt;
Более 10 тысяч, менее 100 тысяч:&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
Редкие, менее 10000:&lt;br /&gt;
* относительная высота https://www.wikidata.org/wiki/Property:P2660&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
&lt;br /&gt;
=== Российские свойства в Wikidata ===&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
* Портал «Герои страны» ID https://www.wikidata.org/wiki/Property:P2943&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
Т.к. исходные данные представляют граф (элемент-свойство-значения) и его расширения (в Wikidata: квалификаторы, ссылки и др.), то большинство запросов SPARQL строятся вокруг поиска ''паттернов в графе''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#GraphPattern&amp;lt;/ref&amp;gt;, зачастую нескольких.&lt;br /&gt;
&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wikidata префиксы ==&lt;br /&gt;
[https://www.mediawiki.org/wiki/Wikibase/Indexing/RDF_Dump_Format#Full_list_of_prefixes Полный список префиксов].&lt;br /&gt;
&lt;br /&gt;
=== Квалификаторы (qualifier) ===&lt;br /&gt;
&lt;br /&gt;
Если открыть [https://www.wikidata.org/wiki/Q915 Пермь], то там указанно множество значений у численности населения (P1082), причём все значения - одного ранга (нормальный).&lt;br /&gt;
&lt;br /&gt;
У некоторых из значений численности населения указаны [https://www.wikidata.org/wiki/Help:Qualifiers/ru квалификаторы] (qualifier) P585 (момент времени) и P459 (метод определения). &lt;br /&gt;
&lt;br /&gt;
* 2 строка: будут выбраны все 43 высказывания у элемента Q915 и свойства P1082&lt;br /&gt;
* 3 строка: выбираем их значения&lt;br /&gt;
* 4-5 строка: выбираем нужные квалификаторы&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20%3Fvalue%20%3Fqualifier%20%3Fwikidataid%20WHERE%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wd%3AQ915%20p%3AP1082%20%3Fstatements%20%20%20%20%20%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20ps%3AP1082%20%3Fvalue%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20pq%3AP585%20%20%3Fqualifier%20%20.%0A%20OPTIONAL%20%7B%20%3Fstatements%20pq%3AP459%20%20%3Fwikidataid%20.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?val ?qualifier ?wikidataid WHERE {&lt;br /&gt;
                 wd:Q915 p:P1082 ?statements           .&lt;br /&gt;
            ?statements ps:P1082 ?val      .&lt;br /&gt;
            ?statements pq:P585  ?qualifier  .&lt;br /&gt;
 OPTIONAL { ?statements pq:P459  ?wikidataid . }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранг (rank) ===&lt;br /&gt;
&lt;br /&gt;
Показать все страны относящиеся у Перми и их [https://www.wikidata.org/wiki/Help:Ranking/ru ранги].&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FdoLabel%20%3Fdo%20%3Frank%20WHERE%20%7B%0A%23%20%20VALUES%20%3Frank%20%7B%20wikibase%3ADeprecatedRank%20wikibase%3ANormalRank%20wikibase%3APreferredRank%20%7D%0A%20%20%20%20wd%3AQ915%20%20%20%20%20%20%20p%3AP17%20%3Fvalue.%0A%20%20%20%20%3Fvalue%20%20%20%20%20%20%20ps%3AP17%20%3Fdo%20.%0A%20%20%20%20%3Fvalue%20wikibase%3Arank%20%3Frank%20.%0A%20%20%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%0A%20%20%20%20%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%20%20%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?doLabel ?do ?rank WHERE {&lt;br /&gt;
#  VALUES ?rank { wikibase:DeprecatedRank wikibase:NormalRank wikibase:PreferredRank }&lt;br /&gt;
    wd:Q915       p:P17 ?value.&lt;br /&gt;
    ?value       ps:P17 ?do .&lt;br /&gt;
    ?value wikibase:rank ?rank .&lt;br /&gt;
  &lt;br /&gt;
   SERVICE wikibase:label {&lt;br /&gt;
     bd:serviceParam wikibase:language &amp;quot;ru&amp;quot; .&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
Более сложные примеры: https://bitbucket.org/sulab/wikidatasparqlexamples&lt;br /&gt;
&lt;br /&gt;
== Альтернативы SPARQL у Wikidata ==&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение. Часть языка на обновление, добавление и удаление данных это [https://www.w3.org/TR/2013/REC-sparql11-update-20130321/ SPARQL 1.1 Update], в данной статье не рассматривалась.&lt;br /&gt;
&lt;br /&gt;
Для доступа на запись (ботом или массово) вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
# [https://www.npmjs.com/package/wikidata-cli wikidata-cli]&lt;br /&gt;
# [https://github.com/maxlath/wikidata-sdk wikidata-sdk]&lt;br /&gt;
# Wikidata API. Заявления у Q915: [https://www.wikidata.org/w/api.php?action=wbgetentities&amp;amp;format=json&amp;amp;ids=Q915 в JSON] или [https://www.wikidata.org/w/api.php?action=wbgetentities&amp;amp;format=xml&amp;amp;ids=Q915 в XML]&lt;br /&gt;
# [https://github.com/jcreus/pywikidata pywikidata] - проект для доступа и на чтение и запись к элементам Wikidata. [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata].&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://www.wikidata.org/wiki/Help:Contents/ru Справочный портал Wikidata]&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24668</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24668"/>
		<updated>2016-11-10T19:37:55Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Альтернативы SPARQL у Wikidata */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-[https://www.wikidata.org/wiki/Help:Statements/ru свойство-значения], item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&amp;lt;br&amp;gt;&lt;br /&gt;
Отчёт количества объектов по каждому свойству - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature]&lt;br /&gt;
&lt;br /&gt;
Более миллиона:&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* принадлежность админ делению - https://www.wikidata.org/wiki/Property:P131&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
&lt;br /&gt;
Больше 100 тысяч, менее миллиона:&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
&lt;br /&gt;
Более 10 тысяч, менее 100 тысяч:&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
Редкие, менее 10000:&lt;br /&gt;
* относительная высота https://www.wikidata.org/wiki/Property:P2660&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
&lt;br /&gt;
=== Российские свойства в Wikidata ===&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
* Портал «Герои страны» ID https://www.wikidata.org/wiki/Property:P2943&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
Т.к. исходные данные представляют граф (элемент-свойство-значения) и его расширения (в Wikidata: квалификаторы, ссылки и др.), то большинство запросов SPARQL строятся вокруг поиска ''паттернов в графе''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#GraphPattern&amp;lt;/ref&amp;gt;, зачастую нескольких.&lt;br /&gt;
&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wikidata префиксы ==&lt;br /&gt;
[https://www.mediawiki.org/wiki/Wikibase/Indexing/RDF_Dump_Format#Full_list_of_prefixes Полный список префиксов].&lt;br /&gt;
&lt;br /&gt;
=== Квалификаторы (qualifier) ===&lt;br /&gt;
&lt;br /&gt;
Если открыть [https://www.wikidata.org/wiki/Q915 Пермь], то там указанно множество значений у численности населения (P1082), причём все значения - одного ранга (нормальный).&lt;br /&gt;
&lt;br /&gt;
У некоторых из значений численности населения указаны квалификаторы (qualifier) P585 (момент времени) и P459 (метод определения). &lt;br /&gt;
&lt;br /&gt;
* 2 строка: будут выбраны все 43 высказывания у элемента Q915 и свойства P1082&lt;br /&gt;
* 3 строка: выбираем их значения&lt;br /&gt;
* 4-5 строка: выбираем нужные квалификаторы&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20%3Fvalue%20%3Fqualifier%20%3Fwikidataid%20WHERE%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wd%3AQ915%20p%3AP1082%20%3Fstatements%20%20%20%20%20%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20ps%3AP1082%20%3Fvalue%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20pq%3AP585%20%20%3Fqualifier%20%20.%0A%20OPTIONAL%20%7B%20%3Fstatements%20pq%3AP459%20%20%3Fwikidataid%20.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?val ?qualifier ?wikidataid WHERE {&lt;br /&gt;
                 wd:Q915 p:P1082 ?statements           .&lt;br /&gt;
            ?statements ps:P1082 ?val      .&lt;br /&gt;
            ?statements pq:P585  ?qualifier  .&lt;br /&gt;
 OPTIONAL { ?statements pq:P459  ?wikidataid . }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранг (rank) ===&lt;br /&gt;
&lt;br /&gt;
Показать все страны относящиеся у Перми и их ранги.&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FdoLabel%20%3Fdo%20%3Frank%20WHERE%20%7B%0A%23%20%20VALUES%20%3Frank%20%7B%20wikibase%3ADeprecatedRank%20wikibase%3ANormalRank%20wikibase%3APreferredRank%20%7D%0A%20%20%20%20wd%3AQ915%20%20%20%20%20%20%20p%3AP17%20%3Fvalue.%0A%20%20%20%20%3Fvalue%20%20%20%20%20%20%20ps%3AP17%20%3Fdo%20.%0A%20%20%20%20%3Fvalue%20wikibase%3Arank%20%3Frank%20.%0A%20%20%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%0A%20%20%20%20%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%20%20%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?doLabel ?do ?rank WHERE {&lt;br /&gt;
#  VALUES ?rank { wikibase:DeprecatedRank wikibase:NormalRank wikibase:PreferredRank }&lt;br /&gt;
    wd:Q915       p:P17 ?value.&lt;br /&gt;
    ?value       ps:P17 ?do .&lt;br /&gt;
    ?value wikibase:rank ?rank .&lt;br /&gt;
  &lt;br /&gt;
   SERVICE wikibase:label {&lt;br /&gt;
     bd:serviceParam wikibase:language &amp;quot;ru&amp;quot; .&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
Более сложные примеры: https://bitbucket.org/sulab/wikidatasparqlexamples&lt;br /&gt;
&lt;br /&gt;
== Альтернативы SPARQL у Wikidata ==&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение. Часть языка на обновление, добавление и удаление данных это [https://www.w3.org/TR/2013/REC-sparql11-update-20130321/ SPARQL 1.1 Update], в данной статье не рассматривалась.&lt;br /&gt;
&lt;br /&gt;
Для доступа на запись (ботом или массово) вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
# [https://www.npmjs.com/package/wikidata-cli wikidata-cli]&lt;br /&gt;
# [https://github.com/maxlath/wikidata-sdk wikidata-sdk]&lt;br /&gt;
# Wikidata API. Заявления у Q915: [https://www.wikidata.org/w/api.php?action=wbgetentities&amp;amp;format=json&amp;amp;ids=Q915 в JSON] или [https://www.wikidata.org/w/api.php?action=wbgetentities&amp;amp;format=xml&amp;amp;ids=Q915 в XML]&lt;br /&gt;
# [https://github.com/jcreus/pywikidata pywikidata] - проект для доступа и на чтение и запись к элементам Wikidata. [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata].&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://www.wikidata.org/wiki/Help:Contents/ru Справочный портал Wikidata]&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24667</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24667"/>
		<updated>2016-11-10T19:36:43Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Альтернативы SPARQL у Wikidata */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-[https://www.wikidata.org/wiki/Help:Statements/ru свойство-значения], item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&amp;lt;br&amp;gt;&lt;br /&gt;
Отчёт количества объектов по каждому свойству - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature]&lt;br /&gt;
&lt;br /&gt;
Более миллиона:&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* принадлежность админ делению - https://www.wikidata.org/wiki/Property:P131&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
&lt;br /&gt;
Больше 100 тысяч, менее миллиона:&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
&lt;br /&gt;
Более 10 тысяч, менее 100 тысяч:&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
Редкие, менее 10000:&lt;br /&gt;
* относительная высота https://www.wikidata.org/wiki/Property:P2660&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
&lt;br /&gt;
=== Российские свойства в Wikidata ===&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
* Портал «Герои страны» ID https://www.wikidata.org/wiki/Property:P2943&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
Т.к. исходные данные представляют граф (элемент-свойство-значения) и его расширения (в Wikidata: квалификаторы, ссылки и др.), то большинство запросов SPARQL строятся вокруг поиска ''паттернов в графе''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#GraphPattern&amp;lt;/ref&amp;gt;, зачастую нескольких.&lt;br /&gt;
&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wikidata префиксы ==&lt;br /&gt;
[https://www.mediawiki.org/wiki/Wikibase/Indexing/RDF_Dump_Format#Full_list_of_prefixes Полный список префиксов].&lt;br /&gt;
&lt;br /&gt;
=== Квалификаторы (qualifier) ===&lt;br /&gt;
&lt;br /&gt;
Если открыть [https://www.wikidata.org/wiki/Q915 Пермь], то там указанно множество значений у численности населения (P1082), причём все значения - одного ранга (нормальный).&lt;br /&gt;
&lt;br /&gt;
У некоторых из значений численности населения указаны квалификаторы (qualifier) P585 (момент времени) и P459 (метод определения). &lt;br /&gt;
&lt;br /&gt;
* 2 строка: будут выбраны все 43 высказывания у элемента Q915 и свойства P1082&lt;br /&gt;
* 3 строка: выбираем их значения&lt;br /&gt;
* 4-5 строка: выбираем нужные квалификаторы&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20%3Fvalue%20%3Fqualifier%20%3Fwikidataid%20WHERE%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wd%3AQ915%20p%3AP1082%20%3Fstatements%20%20%20%20%20%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20ps%3AP1082%20%3Fvalue%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20pq%3AP585%20%20%3Fqualifier%20%20.%0A%20OPTIONAL%20%7B%20%3Fstatements%20pq%3AP459%20%20%3Fwikidataid%20.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?val ?qualifier ?wikidataid WHERE {&lt;br /&gt;
                 wd:Q915 p:P1082 ?statements           .&lt;br /&gt;
            ?statements ps:P1082 ?val      .&lt;br /&gt;
            ?statements pq:P585  ?qualifier  .&lt;br /&gt;
 OPTIONAL { ?statements pq:P459  ?wikidataid . }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранг (rank) ===&lt;br /&gt;
&lt;br /&gt;
Показать все страны относящиеся у Перми и их ранги.&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FdoLabel%20%3Fdo%20%3Frank%20WHERE%20%7B%0A%23%20%20VALUES%20%3Frank%20%7B%20wikibase%3ADeprecatedRank%20wikibase%3ANormalRank%20wikibase%3APreferredRank%20%7D%0A%20%20%20%20wd%3AQ915%20%20%20%20%20%20%20p%3AP17%20%3Fvalue.%0A%20%20%20%20%3Fvalue%20%20%20%20%20%20%20ps%3AP17%20%3Fdo%20.%0A%20%20%20%20%3Fvalue%20wikibase%3Arank%20%3Frank%20.%0A%20%20%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%0A%20%20%20%20%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%20%20%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?doLabel ?do ?rank WHERE {&lt;br /&gt;
#  VALUES ?rank { wikibase:DeprecatedRank wikibase:NormalRank wikibase:PreferredRank }&lt;br /&gt;
    wd:Q915       p:P17 ?value.&lt;br /&gt;
    ?value       ps:P17 ?do .&lt;br /&gt;
    ?value wikibase:rank ?rank .&lt;br /&gt;
  &lt;br /&gt;
   SERVICE wikibase:label {&lt;br /&gt;
     bd:serviceParam wikibase:language &amp;quot;ru&amp;quot; .&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
Более сложные примеры: https://bitbucket.org/sulab/wikidatasparqlexamples&lt;br /&gt;
&lt;br /&gt;
== Альтернативы SPARQL у Wikidata ==&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение. Часть языка на обновление, добавление и удаление данных это [https://www.w3.org/TR/2013/REC-sparql11-update-20130321/ SPARQL 1.1 Update], в данной статье не рассматривалась.&lt;br /&gt;
&lt;br /&gt;
Для доступа на запись (ботом или массово) вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
# [https://www.npmjs.com/package/wikidata-cli wikidata-cli]&lt;br /&gt;
# [https://github.com/maxlath/wikidata-sdk wikidata-sdk]&lt;br /&gt;
# Wikidata API. Заявления у Q915: [https://www.wikidata.org/w/api.php?action=wbgetentities&amp;amp;format=json&amp;amp;ids=Q915 в JSON] или [https://www.wikidata.org/w/api.php?action=wbgetentities&amp;amp;format=json&amp;amp;ids=Q915 в XML]&lt;br /&gt;
# [https://github.com/jcreus/pywikidata pywikidata] - проект для доступа и на чтение и запись к элементам Wikidata. [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata].&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://www.wikidata.org/wiki/Help:Contents/ru Справочный портал Wikidata]&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24666</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24666"/>
		<updated>2016-11-10T19:34:55Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Альтернативы SPARQL у Wikidata */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-[https://www.wikidata.org/wiki/Help:Statements/ru свойство-значения], item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&amp;lt;br&amp;gt;&lt;br /&gt;
Отчёт количества объектов по каждому свойству - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature]&lt;br /&gt;
&lt;br /&gt;
Более миллиона:&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* принадлежность админ делению - https://www.wikidata.org/wiki/Property:P131&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
&lt;br /&gt;
Больше 100 тысяч, менее миллиона:&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
&lt;br /&gt;
Более 10 тысяч, менее 100 тысяч:&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
Редкие, менее 10000:&lt;br /&gt;
* относительная высота https://www.wikidata.org/wiki/Property:P2660&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
&lt;br /&gt;
=== Российские свойства в Wikidata ===&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
* Портал «Герои страны» ID https://www.wikidata.org/wiki/Property:P2943&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
Т.к. исходные данные представляют граф (элемент-свойство-значения) и его расширения (в Wikidata: квалификаторы, ссылки и др.), то большинство запросов SPARQL строятся вокруг поиска ''паттернов в графе''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#GraphPattern&amp;lt;/ref&amp;gt;, зачастую нескольких.&lt;br /&gt;
&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wikidata префиксы ==&lt;br /&gt;
[https://www.mediawiki.org/wiki/Wikibase/Indexing/RDF_Dump_Format#Full_list_of_prefixes Полный список префиксов].&lt;br /&gt;
&lt;br /&gt;
=== Квалификаторы (qualifier) ===&lt;br /&gt;
&lt;br /&gt;
Если открыть [https://www.wikidata.org/wiki/Q915 Пермь], то там указанно множество значений у численности населения (P1082), причём все значения - одного ранга (нормальный).&lt;br /&gt;
&lt;br /&gt;
У некоторых из значений численности населения указаны квалификаторы (qualifier) P585 (момент времени) и P459 (метод определения). &lt;br /&gt;
&lt;br /&gt;
* 2 строка: будут выбраны все 43 высказывания у элемента Q915 и свойства P1082&lt;br /&gt;
* 3 строка: выбираем их значения&lt;br /&gt;
* 4-5 строка: выбираем нужные квалификаторы&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20%3Fvalue%20%3Fqualifier%20%3Fwikidataid%20WHERE%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wd%3AQ915%20p%3AP1082%20%3Fstatements%20%20%20%20%20%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20ps%3AP1082%20%3Fvalue%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20pq%3AP585%20%20%3Fqualifier%20%20.%0A%20OPTIONAL%20%7B%20%3Fstatements%20pq%3AP459%20%20%3Fwikidataid%20.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?val ?qualifier ?wikidataid WHERE {&lt;br /&gt;
                 wd:Q915 p:P1082 ?statements           .&lt;br /&gt;
            ?statements ps:P1082 ?val      .&lt;br /&gt;
            ?statements pq:P585  ?qualifier  .&lt;br /&gt;
 OPTIONAL { ?statements pq:P459  ?wikidataid . }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранг (rank) ===&lt;br /&gt;
&lt;br /&gt;
Показать все страны относящиеся у Перми и их ранги.&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FdoLabel%20%3Fdo%20%3Frank%20WHERE%20%7B%0A%23%20%20VALUES%20%3Frank%20%7B%20wikibase%3ADeprecatedRank%20wikibase%3ANormalRank%20wikibase%3APreferredRank%20%7D%0A%20%20%20%20wd%3AQ915%20%20%20%20%20%20%20p%3AP17%20%3Fvalue.%0A%20%20%20%20%3Fvalue%20%20%20%20%20%20%20ps%3AP17%20%3Fdo%20.%0A%20%20%20%20%3Fvalue%20wikibase%3Arank%20%3Frank%20.%0A%20%20%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%0A%20%20%20%20%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%20%20%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?doLabel ?do ?rank WHERE {&lt;br /&gt;
#  VALUES ?rank { wikibase:DeprecatedRank wikibase:NormalRank wikibase:PreferredRank }&lt;br /&gt;
    wd:Q915       p:P17 ?value.&lt;br /&gt;
    ?value       ps:P17 ?do .&lt;br /&gt;
    ?value wikibase:rank ?rank .&lt;br /&gt;
  &lt;br /&gt;
   SERVICE wikibase:label {&lt;br /&gt;
     bd:serviceParam wikibase:language &amp;quot;ru&amp;quot; .&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
Более сложные примеры: https://bitbucket.org/sulab/wikidatasparqlexamples&lt;br /&gt;
&lt;br /&gt;
== Альтернативы SPARQL у Wikidata ==&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение.&lt;br /&gt;
&lt;br /&gt;
Для доступа на запись (ботом или массово) вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
# [https://www.npmjs.com/package/wikidata-cli wikidata-cli]&lt;br /&gt;
# [https://github.com/maxlath/wikidata-sdk wikidata-sdk]&lt;br /&gt;
# Wikidata API. Заявления у Q915: [https://www.wikidata.org/w/api.php?action=wbgetentities&amp;amp;format=json&amp;amp;ids=Q915 в JSON] или [https://www.wikidata.org/w/api.php?action=wbgetentities&amp;amp;format=json&amp;amp;ids=Q915 в XML]&lt;br /&gt;
# [https://github.com/jcreus/pywikidata pywikidata] - проект для доступа и на чтение и запись к элементам Wikidata. [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata].&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://www.wikidata.org/wiki/Help:Contents/ru Справочный портал Wikidata]&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24665</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24665"/>
		<updated>2016-11-10T19:33:01Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Альтернативы SPARQL у Wikidata */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-[https://www.wikidata.org/wiki/Help:Statements/ru свойство-значения], item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&amp;lt;br&amp;gt;&lt;br /&gt;
Отчёт количества объектов по каждому свойству - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature]&lt;br /&gt;
&lt;br /&gt;
Более миллиона:&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* принадлежность админ делению - https://www.wikidata.org/wiki/Property:P131&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
&lt;br /&gt;
Больше 100 тысяч, менее миллиона:&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
&lt;br /&gt;
Более 10 тысяч, менее 100 тысяч:&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
Редкие, менее 10000:&lt;br /&gt;
* относительная высота https://www.wikidata.org/wiki/Property:P2660&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
&lt;br /&gt;
=== Российские свойства в Wikidata ===&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
* Портал «Герои страны» ID https://www.wikidata.org/wiki/Property:P2943&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
Т.к. исходные данные представляют граф (элемент-свойство-значения) и его расширения (в Wikidata: квалификаторы, ссылки и др.), то большинство запросов SPARQL строятся вокруг поиска ''паттернов в графе''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#GraphPattern&amp;lt;/ref&amp;gt;, зачастую нескольких.&lt;br /&gt;
&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wikidata префиксы ==&lt;br /&gt;
[https://www.mediawiki.org/wiki/Wikibase/Indexing/RDF_Dump_Format#Full_list_of_prefixes Полный список префиксов].&lt;br /&gt;
&lt;br /&gt;
=== Квалификаторы (qualifier) ===&lt;br /&gt;
&lt;br /&gt;
Если открыть [https://www.wikidata.org/wiki/Q915 Пермь], то там указанно множество значений у численности населения (P1082), причём все значения - одного ранга (нормальный).&lt;br /&gt;
&lt;br /&gt;
У некоторых из значений численности населения указаны квалификаторы (qualifier) P585 (момент времени) и P459 (метод определения). &lt;br /&gt;
&lt;br /&gt;
* 2 строка: будут выбраны все 43 высказывания у элемента Q915 и свойства P1082&lt;br /&gt;
* 3 строка: выбираем их значения&lt;br /&gt;
* 4-5 строка: выбираем нужные квалификаторы&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20%3Fvalue%20%3Fqualifier%20%3Fwikidataid%20WHERE%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wd%3AQ915%20p%3AP1082%20%3Fstatements%20%20%20%20%20%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20ps%3AP1082%20%3Fvalue%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20pq%3AP585%20%20%3Fqualifier%20%20.%0A%20OPTIONAL%20%7B%20%3Fstatements%20pq%3AP459%20%20%3Fwikidataid%20.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?val ?qualifier ?wikidataid WHERE {&lt;br /&gt;
                 wd:Q915 p:P1082 ?statements           .&lt;br /&gt;
            ?statements ps:P1082 ?val      .&lt;br /&gt;
            ?statements pq:P585  ?qualifier  .&lt;br /&gt;
 OPTIONAL { ?statements pq:P459  ?wikidataid . }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранг (rank) ===&lt;br /&gt;
&lt;br /&gt;
Показать все страны относящиеся у Перми и их ранги.&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FdoLabel%20%3Fdo%20%3Frank%20WHERE%20%7B%0A%23%20%20VALUES%20%3Frank%20%7B%20wikibase%3ADeprecatedRank%20wikibase%3ANormalRank%20wikibase%3APreferredRank%20%7D%0A%20%20%20%20wd%3AQ915%20%20%20%20%20%20%20p%3AP17%20%3Fvalue.%0A%20%20%20%20%3Fvalue%20%20%20%20%20%20%20ps%3AP17%20%3Fdo%20.%0A%20%20%20%20%3Fvalue%20wikibase%3Arank%20%3Frank%20.%0A%20%20%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%0A%20%20%20%20%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%20%20%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?doLabel ?do ?rank WHERE {&lt;br /&gt;
#  VALUES ?rank { wikibase:DeprecatedRank wikibase:NormalRank wikibase:PreferredRank }&lt;br /&gt;
    wd:Q915       p:P17 ?value.&lt;br /&gt;
    ?value       ps:P17 ?do .&lt;br /&gt;
    ?value wikibase:rank ?rank .&lt;br /&gt;
  &lt;br /&gt;
   SERVICE wikibase:label {&lt;br /&gt;
     bd:serviceParam wikibase:language &amp;quot;ru&amp;quot; .&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
Более сложные примеры: https://bitbucket.org/sulab/wikidatasparqlexamples&lt;br /&gt;
&lt;br /&gt;
== Альтернативы SPARQL у Wikidata ==&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение.&lt;br /&gt;
&lt;br /&gt;
Для доступа на запись (ботом или массово) вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
# [https://www.npmjs.com/package/wikidata-cli wikidata-cli]&lt;br /&gt;
# [https://github.com/maxlath/wikidata-sdk wikidata-sdk]&lt;br /&gt;
# [https://www.wikidata.org/w/api.php?action=wbgetentities&amp;amp;format=json&amp;amp;ids=Q915 Заявления у Q915 в JSON] или [https://www.wikidata.org/w/api.php?action=wbgetentities&amp;amp;format=json&amp;amp;ids=Q915 в XML]&lt;br /&gt;
# [https://github.com/jcreus/pywikidata pywikidata] - проект для доступа и на чтение и запись к элементам Wikidata. [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata].&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://www.wikidata.org/wiki/Help:Contents/ru Справочный портал Wikidata]&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24664</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24664"/>
		<updated>2016-11-10T19:32:12Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Альтернативы SPARQL у Wikidata */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-[https://www.wikidata.org/wiki/Help:Statements/ru свойство-значения], item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&amp;lt;br&amp;gt;&lt;br /&gt;
Отчёт количества объектов по каждому свойству - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature]&lt;br /&gt;
&lt;br /&gt;
Более миллиона:&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* принадлежность админ делению - https://www.wikidata.org/wiki/Property:P131&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
&lt;br /&gt;
Больше 100 тысяч, менее миллиона:&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
&lt;br /&gt;
Более 10 тысяч, менее 100 тысяч:&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
Редкие, менее 10000:&lt;br /&gt;
* относительная высота https://www.wikidata.org/wiki/Property:P2660&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
&lt;br /&gt;
=== Российские свойства в Wikidata ===&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
* Портал «Герои страны» ID https://www.wikidata.org/wiki/Property:P2943&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
Т.к. исходные данные представляют граф (элемент-свойство-значения) и его расширения (в Wikidata: квалификаторы, ссылки и др.), то большинство запросов SPARQL строятся вокруг поиска ''паттернов в графе''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#GraphPattern&amp;lt;/ref&amp;gt;, зачастую нескольких.&lt;br /&gt;
&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wikidata префиксы ==&lt;br /&gt;
[https://www.mediawiki.org/wiki/Wikibase/Indexing/RDF_Dump_Format#Full_list_of_prefixes Полный список префиксов].&lt;br /&gt;
&lt;br /&gt;
=== Квалификаторы (qualifier) ===&lt;br /&gt;
&lt;br /&gt;
Если открыть [https://www.wikidata.org/wiki/Q915 Пермь], то там указанно множество значений у численности населения (P1082), причём все значения - одного ранга (нормальный).&lt;br /&gt;
&lt;br /&gt;
У некоторых из значений численности населения указаны квалификаторы (qualifier) P585 (момент времени) и P459 (метод определения). &lt;br /&gt;
&lt;br /&gt;
* 2 строка: будут выбраны все 43 высказывания у элемента Q915 и свойства P1082&lt;br /&gt;
* 3 строка: выбираем их значения&lt;br /&gt;
* 4-5 строка: выбираем нужные квалификаторы&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20%3Fvalue%20%3Fqualifier%20%3Fwikidataid%20WHERE%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wd%3AQ915%20p%3AP1082%20%3Fstatements%20%20%20%20%20%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20ps%3AP1082%20%3Fvalue%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20pq%3AP585%20%20%3Fqualifier%20%20.%0A%20OPTIONAL%20%7B%20%3Fstatements%20pq%3AP459%20%20%3Fwikidataid%20.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?val ?qualifier ?wikidataid WHERE {&lt;br /&gt;
                 wd:Q915 p:P1082 ?statements           .&lt;br /&gt;
            ?statements ps:P1082 ?val      .&lt;br /&gt;
            ?statements pq:P585  ?qualifier  .&lt;br /&gt;
 OPTIONAL { ?statements pq:P459  ?wikidataid . }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранг (rank) ===&lt;br /&gt;
&lt;br /&gt;
Показать все страны относящиеся у Перми и их ранги.&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FdoLabel%20%3Fdo%20%3Frank%20WHERE%20%7B%0A%23%20%20VALUES%20%3Frank%20%7B%20wikibase%3ADeprecatedRank%20wikibase%3ANormalRank%20wikibase%3APreferredRank%20%7D%0A%20%20%20%20wd%3AQ915%20%20%20%20%20%20%20p%3AP17%20%3Fvalue.%0A%20%20%20%20%3Fvalue%20%20%20%20%20%20%20ps%3AP17%20%3Fdo%20.%0A%20%20%20%20%3Fvalue%20wikibase%3Arank%20%3Frank%20.%0A%20%20%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%0A%20%20%20%20%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%20%20%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?doLabel ?do ?rank WHERE {&lt;br /&gt;
#  VALUES ?rank { wikibase:DeprecatedRank wikibase:NormalRank wikibase:PreferredRank }&lt;br /&gt;
    wd:Q915       p:P17 ?value.&lt;br /&gt;
    ?value       ps:P17 ?do .&lt;br /&gt;
    ?value wikibase:rank ?rank .&lt;br /&gt;
  &lt;br /&gt;
   SERVICE wikibase:label {&lt;br /&gt;
     bd:serviceParam wikibase:language &amp;quot;ru&amp;quot; .&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
Более сложные примеры: https://bitbucket.org/sulab/wikidatasparqlexamples&lt;br /&gt;
&lt;br /&gt;
== Альтернативы SPARQL у Wikidata ==&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение.&lt;br /&gt;
&lt;br /&gt;
Для доступа на запись (ботом или массово) вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
# [https://github.com/maxlath/wikidata-sdk wikidata-sdk]&lt;br /&gt;
# [https://www.wikidata.org/w/api.php?action=wbgetentities&amp;amp;format=json&amp;amp;ids=Q915 Заявления у Q915 в JSON] или [https://www.wikidata.org/w/api.php?action=wbgetentities&amp;amp;format=json&amp;amp;ids=Q915 в XML]&lt;br /&gt;
# [https://github.com/jcreus/pywikidata pywikidata] - проект для доступа и на чтение и запись к элементам Wikidata. [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata].&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://www.wikidata.org/wiki/Help:Contents/ru Справочный портал Wikidata]&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24663</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24663"/>
		<updated>2016-11-10T19:28:16Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Внешние ссылки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-[https://www.wikidata.org/wiki/Help:Statements/ru свойство-значения], item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&amp;lt;br&amp;gt;&lt;br /&gt;
Отчёт количества объектов по каждому свойству - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature]&lt;br /&gt;
&lt;br /&gt;
Более миллиона:&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* принадлежность админ делению - https://www.wikidata.org/wiki/Property:P131&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
&lt;br /&gt;
Больше 100 тысяч, менее миллиона:&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
&lt;br /&gt;
Более 10 тысяч, менее 100 тысяч:&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
Редкие, менее 10000:&lt;br /&gt;
* относительная высота https://www.wikidata.org/wiki/Property:P2660&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
&lt;br /&gt;
=== Российские свойства в Wikidata ===&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
* Портал «Герои страны» ID https://www.wikidata.org/wiki/Property:P2943&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
Т.к. исходные данные представляют граф (элемент-свойство-значения) и его расширения (в Wikidata: квалификаторы, ссылки и др.), то большинство запросов SPARQL строятся вокруг поиска ''паттернов в графе''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#GraphPattern&amp;lt;/ref&amp;gt;, зачастую нескольких.&lt;br /&gt;
&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wikidata префиксы ==&lt;br /&gt;
[https://www.mediawiki.org/wiki/Wikibase/Indexing/RDF_Dump_Format#Full_list_of_prefixes Полный список префиксов].&lt;br /&gt;
&lt;br /&gt;
=== Квалификаторы (qualifier) ===&lt;br /&gt;
&lt;br /&gt;
Если открыть [https://www.wikidata.org/wiki/Q915 Пермь], то там указанно множество значений у численности населения (P1082), причём все значения - одного ранга (нормальный).&lt;br /&gt;
&lt;br /&gt;
У некоторых из значений численности населения указаны квалификаторы (qualifier) P585 (момент времени) и P459 (метод определения). &lt;br /&gt;
&lt;br /&gt;
* 2 строка: будут выбраны все 43 высказывания у элемента Q915 и свойства P1082&lt;br /&gt;
* 3 строка: выбираем их значения&lt;br /&gt;
* 4-5 строка: выбираем нужные квалификаторы&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20%3Fvalue%20%3Fqualifier%20%3Fwikidataid%20WHERE%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wd%3AQ915%20p%3AP1082%20%3Fstatements%20%20%20%20%20%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20ps%3AP1082%20%3Fvalue%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20pq%3AP585%20%20%3Fqualifier%20%20.%0A%20OPTIONAL%20%7B%20%3Fstatements%20pq%3AP459%20%20%3Fwikidataid%20.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?val ?qualifier ?wikidataid WHERE {&lt;br /&gt;
                 wd:Q915 p:P1082 ?statements           .&lt;br /&gt;
            ?statements ps:P1082 ?val      .&lt;br /&gt;
            ?statements pq:P585  ?qualifier  .&lt;br /&gt;
 OPTIONAL { ?statements pq:P459  ?wikidataid . }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранг (rank) ===&lt;br /&gt;
&lt;br /&gt;
Показать все страны относящиеся у Перми и их ранги.&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FdoLabel%20%3Fdo%20%3Frank%20WHERE%20%7B%0A%23%20%20VALUES%20%3Frank%20%7B%20wikibase%3ADeprecatedRank%20wikibase%3ANormalRank%20wikibase%3APreferredRank%20%7D%0A%20%20%20%20wd%3AQ915%20%20%20%20%20%20%20p%3AP17%20%3Fvalue.%0A%20%20%20%20%3Fvalue%20%20%20%20%20%20%20ps%3AP17%20%3Fdo%20.%0A%20%20%20%20%3Fvalue%20wikibase%3Arank%20%3Frank%20.%0A%20%20%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%0A%20%20%20%20%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%20%20%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?doLabel ?do ?rank WHERE {&lt;br /&gt;
#  VALUES ?rank { wikibase:DeprecatedRank wikibase:NormalRank wikibase:PreferredRank }&lt;br /&gt;
    wd:Q915       p:P17 ?value.&lt;br /&gt;
    ?value       ps:P17 ?do .&lt;br /&gt;
    ?value wikibase:rank ?rank .&lt;br /&gt;
  &lt;br /&gt;
   SERVICE wikibase:label {&lt;br /&gt;
     bd:serviceParam wikibase:language &amp;quot;ru&amp;quot; .&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
Более сложные примеры: https://bitbucket.org/sulab/wikidatasparqlexamples&lt;br /&gt;
&lt;br /&gt;
== Альтернативы SPARQL у Wikidata ==&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение.&lt;br /&gt;
&lt;br /&gt;
Для доступа на запись (ботом или массово) вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
# [https://github.com/jcreus/pywikidata pywikidata] - проект для доступа и на чтение и запись к элементам Wikidata. [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata]. &lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://www.wikidata.org/wiki/Help:Contents/ru Справочный портал Wikidata]&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24662</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24662"/>
		<updated>2016-11-10T19:21:20Z</updated>

		<summary type="html">&lt;p&gt;D1g: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-[https://www.wikidata.org/wiki/Help:Statements/ru свойство-значения], item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&amp;lt;br&amp;gt;&lt;br /&gt;
Отчёт количества объектов по каждому свойству - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature]&lt;br /&gt;
&lt;br /&gt;
Более миллиона:&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* принадлежность админ делению - https://www.wikidata.org/wiki/Property:P131&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
&lt;br /&gt;
Больше 100 тысяч, менее миллиона:&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
&lt;br /&gt;
Более 10 тысяч, менее 100 тысяч:&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
Редкие, менее 10000:&lt;br /&gt;
* относительная высота https://www.wikidata.org/wiki/Property:P2660&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
&lt;br /&gt;
=== Российские свойства в Wikidata ===&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
* Портал «Герои страны» ID https://www.wikidata.org/wiki/Property:P2943&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
Т.к. исходные данные представляют граф (элемент-свойство-значения) и его расширения (в Wikidata: квалификаторы, ссылки и др.), то большинство запросов SPARQL строятся вокруг поиска ''паттернов в графе''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#GraphPattern&amp;lt;/ref&amp;gt;, зачастую нескольких.&lt;br /&gt;
&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wikidata префиксы ==&lt;br /&gt;
[https://www.mediawiki.org/wiki/Wikibase/Indexing/RDF_Dump_Format#Full_list_of_prefixes Полный список префиксов].&lt;br /&gt;
&lt;br /&gt;
=== Квалификаторы (qualifier) ===&lt;br /&gt;
&lt;br /&gt;
Если открыть [https://www.wikidata.org/wiki/Q915 Пермь], то там указанно множество значений у численности населения (P1082), причём все значения - одного ранга (нормальный).&lt;br /&gt;
&lt;br /&gt;
У некоторых из значений численности населения указаны квалификаторы (qualifier) P585 (момент времени) и P459 (метод определения). &lt;br /&gt;
&lt;br /&gt;
* 2 строка: будут выбраны все 43 высказывания у элемента Q915 и свойства P1082&lt;br /&gt;
* 3 строка: выбираем их значения&lt;br /&gt;
* 4-5 строка: выбираем нужные квалификаторы&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20%3Fvalue%20%3Fqualifier%20%3Fwikidataid%20WHERE%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wd%3AQ915%20p%3AP1082%20%3Fstatements%20%20%20%20%20%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20ps%3AP1082%20%3Fvalue%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20pq%3AP585%20%20%3Fqualifier%20%20.%0A%20OPTIONAL%20%7B%20%3Fstatements%20pq%3AP459%20%20%3Fwikidataid%20.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?val ?qualifier ?wikidataid WHERE {&lt;br /&gt;
                 wd:Q915 p:P1082 ?statements           .&lt;br /&gt;
            ?statements ps:P1082 ?val      .&lt;br /&gt;
            ?statements pq:P585  ?qualifier  .&lt;br /&gt;
 OPTIONAL { ?statements pq:P459  ?wikidataid . }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранг (rank) ===&lt;br /&gt;
&lt;br /&gt;
Показать все страны относящиеся у Перми и их ранги.&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FdoLabel%20%3Fdo%20%3Frank%20WHERE%20%7B%0A%23%20%20VALUES%20%3Frank%20%7B%20wikibase%3ADeprecatedRank%20wikibase%3ANormalRank%20wikibase%3APreferredRank%20%7D%0A%20%20%20%20wd%3AQ915%20%20%20%20%20%20%20p%3AP17%20%3Fvalue.%0A%20%20%20%20%3Fvalue%20%20%20%20%20%20%20ps%3AP17%20%3Fdo%20.%0A%20%20%20%20%3Fvalue%20wikibase%3Arank%20%3Frank%20.%0A%20%20%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%0A%20%20%20%20%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%20%20%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?doLabel ?do ?rank WHERE {&lt;br /&gt;
#  VALUES ?rank { wikibase:DeprecatedRank wikibase:NormalRank wikibase:PreferredRank }&lt;br /&gt;
    wd:Q915       p:P17 ?value.&lt;br /&gt;
    ?value       ps:P17 ?do .&lt;br /&gt;
    ?value wikibase:rank ?rank .&lt;br /&gt;
  &lt;br /&gt;
   SERVICE wikibase:label {&lt;br /&gt;
     bd:serviceParam wikibase:language &amp;quot;ru&amp;quot; .&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
Более сложные примеры: https://bitbucket.org/sulab/wikidatasparqlexamples&lt;br /&gt;
&lt;br /&gt;
== Альтернативы SPARQL у Wikidata ==&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение.&lt;br /&gt;
&lt;br /&gt;
Для доступа на запись (ботом или массово) вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
# [https://github.com/jcreus/pywikidata pywikidata] - проект для доступа и на чтение и запись к элементам Wikidata. [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata]. &lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24661</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24661"/>
		<updated>2016-11-10T14:18:32Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Wikidata */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение.&lt;br /&gt;
&lt;br /&gt;
Для доступа и на чтение и запись к элементам Wikidata есть проект [https://github.com/jcreus/pywikidata pywikidata], [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata]. Для доступа на запись вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&amp;lt;br&amp;gt;&lt;br /&gt;
Отчёт количества объектов по каждому свойству - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature]&lt;br /&gt;
&lt;br /&gt;
Более миллиона:&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* принадлежность админ делению - https://www.wikidata.org/wiki/Property:P131&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
&lt;br /&gt;
Больше 100 тысяч, менее миллиона:&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
&lt;br /&gt;
Более 10 тысяч, менее 100 тысяч:&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
Редкие, менее 10000:&lt;br /&gt;
* относительная высота https://www.wikidata.org/wiki/Property:P2660&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
&lt;br /&gt;
=== Российские свойства в Wikidata ===&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
* Портал «Герои страны» ID https://www.wikidata.org/wiki/Property:P2943&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Wikidata префиксы ==&lt;br /&gt;
=== Квалификаторы (qualifier) ===&lt;br /&gt;
&lt;br /&gt;
Если открыть [https://www.wikidata.org/wiki/Q915 Пермь], то там указанно множество значений у численности населения (P1082), причём все значения - одного ранга (нормальный).&lt;br /&gt;
&lt;br /&gt;
У некоторых из значений численности населения указаны квалификаторы (qualifier) P585 (момент времени) и P459 (метод определения). &lt;br /&gt;
&lt;br /&gt;
* 2 строка: будут выбраны все 43 высказывания у элемента Q915 и свойства P1082&lt;br /&gt;
* 3 строка: выбираем их значения&lt;br /&gt;
* 4-5 строка: выбираем нужные квалификаторы&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20%3Fvalue%20%3Fqualifier%20%3Fwikidataid%20WHERE%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wd%3AQ915%20p%3AP1082%20%3Fstatements%20%20%20%20%20%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20ps%3AP1082%20%3Fvalue%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20pq%3AP585%20%20%3Fqualifier%20%20.%0A%20OPTIONAL%20%7B%20%3Fstatements%20pq%3AP459%20%20%3Fwikidataid%20.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?val ?qualifier ?wikidataid WHERE {&lt;br /&gt;
                 wd:Q915 p:P1082 ?statements           .&lt;br /&gt;
            ?statements ps:P1082 ?val      .&lt;br /&gt;
            ?statements pq:P585  ?qualifier  .&lt;br /&gt;
 OPTIONAL { ?statements pq:P459  ?wikidataid . }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
Т.к. исходные данные представляют граф (элемент-свойство-значения) и его расширения (в Wikidata: квалификаторы, ссылки и др.), то большинство запросов SPARQL строятся вокруг поиска ''паттернов в графе''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#GraphPattern&amp;lt;/ref&amp;gt;, зачастую нескольких.&lt;br /&gt;
&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24660</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24660"/>
		<updated>2016-11-10T13:28:44Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Квалификаторы (qualifier) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение.&lt;br /&gt;
&lt;br /&gt;
Для доступа и на чтение и запись к элементам Wikidata есть проект [https://github.com/jcreus/pywikidata pywikidata], [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata]. Для доступа на запись вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature]&amp;lt;br&amp;gt;&lt;br /&gt;
Отчёт количества объектов по каждому свойству - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
Более миллиона:&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* принадлежность админ делению - https://www.wikidata.org/wiki/Property:P131&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
&lt;br /&gt;
Больше 100 тысяч, менее миллиона:&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
&lt;br /&gt;
Более 10 тысяч, менее 100 тысяч:&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
Редкие, менее 10000:&lt;br /&gt;
* относительная высота https://www.wikidata.org/wiki/Property:P2660&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
&lt;br /&gt;
=== Российские свойства в Wikidata ===&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
* Портал «Герои страны» ID https://www.wikidata.org/wiki/Property:P2943&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Wikidata префиксы ==&lt;br /&gt;
=== Квалификаторы (qualifier) ===&lt;br /&gt;
&lt;br /&gt;
Если открыть [https://www.wikidata.org/wiki/Q915 Пермь], то там указанно множество значений у численности населения (P1082), причём все значения - одного ранга (нормальный).&lt;br /&gt;
&lt;br /&gt;
У некоторых из значений численности населения указаны квалификаторы (qualifier) P585 (момент времени) и P459 (метод определения). &lt;br /&gt;
&lt;br /&gt;
* 2 строка: будут выбраны все 43 высказывания у элемента Q915 и свойства P1082&lt;br /&gt;
* 3 строка: выбираем их значения&lt;br /&gt;
* 4-5 строка: выбираем нужные квалификаторы&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20%3Fvalue%20%3Fqualifier%20%3Fwikidataid%20WHERE%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wd%3AQ915%20p%3AP1082%20%3Fstatements%20%20%20%20%20%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20ps%3AP1082%20%3Fvalue%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20pq%3AP585%20%20%3Fqualifier%20%20.%0A%20OPTIONAL%20%7B%20%3Fstatements%20pq%3AP459%20%20%3Fwikidataid%20.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?val ?qualifier ?wikidataid WHERE {&lt;br /&gt;
                 wd:Q915 p:P1082 ?statements           .&lt;br /&gt;
            ?statements ps:P1082 ?val      .&lt;br /&gt;
            ?statements pq:P585  ?qualifier  .&lt;br /&gt;
 OPTIONAL { ?statements pq:P459  ?wikidataid . }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
Т.к. исходные данные представляют граф (элемент-свойство-значения) и его расширения (в Wikidata: квалификаторы, ссылки и др.), то большинство запросов SPARQL строятся вокруг поиска ''паттернов в графе''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#GraphPattern&amp;lt;/ref&amp;gt;, зачастую нескольких.&lt;br /&gt;
&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24659</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24659"/>
		<updated>2016-11-10T13:27:33Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Квалификаторы (qualifier) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение.&lt;br /&gt;
&lt;br /&gt;
Для доступа и на чтение и запись к элементам Wikidata есть проект [https://github.com/jcreus/pywikidata pywikidata], [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata]. Для доступа на запись вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature]&amp;lt;br&amp;gt;&lt;br /&gt;
Отчёт количества объектов по каждому свойству - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
Более миллиона:&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* принадлежность админ делению - https://www.wikidata.org/wiki/Property:P131&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
&lt;br /&gt;
Больше 100 тысяч, менее миллиона:&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
&lt;br /&gt;
Более 10 тысяч, менее 100 тысяч:&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
Редкие, менее 10000:&lt;br /&gt;
* относительная высота https://www.wikidata.org/wiki/Property:P2660&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
&lt;br /&gt;
=== Российские свойства в Wikidata ===&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
* Портал «Герои страны» ID https://www.wikidata.org/wiki/Property:P2943&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Wikidata префиксы ==&lt;br /&gt;
=== Квалификаторы (qualifier) ===&lt;br /&gt;
&lt;br /&gt;
Если открыть [https://www.wikidata.org/wiki/Q915 Пермь], то там указанно множество значений у численности населения (P1082), причём все значения - одного ранга (нормальный).&lt;br /&gt;
&lt;br /&gt;
У некоторых из значений численности населения указаны квалификаторы (qualifier) P585 (момент времени) и P459 (метод определения). &lt;br /&gt;
&lt;br /&gt;
У элемента Пермь, у всех значений свойства P1082 выбрем 2 квалификатора (P585, P459).&lt;br /&gt;
&lt;br /&gt;
* 2 строка: будут выбраны все 43 высказывания у элемента Q915 и свойства P1082&lt;br /&gt;
* 3 строка: выбираем их значения&lt;br /&gt;
* 4-5 строка: выбираем нужные квалификаторы&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20%3Fvalue%20%3Fqualifier%20%3Fwikidataid%20WHERE%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wd%3AQ915%20p%3AP1082%20%3Fstatements%20%20%20%20%20%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20ps%3AP1082%20%3Fvalue%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20pq%3AP585%20%20%3Fqualifier%20%20.%0A%20OPTIONAL%20%7B%20%3Fstatements%20pq%3AP459%20%20%3Fwikidataid%20.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?val ?qualifier ?wikidataid WHERE {&lt;br /&gt;
                 wd:Q915 p:P1082 ?statements           .&lt;br /&gt;
            ?statements ps:P1082 ?val      .&lt;br /&gt;
            ?statements pq:P585  ?qualifier  .&lt;br /&gt;
 OPTIONAL { ?statements pq:P459  ?wikidataid . }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
Т.к. исходные данные представляют граф (элемент-свойство-значения) и его расширения (в Wikidata: квалификаторы, ссылки и др.), то большинство запросов SPARQL строятся вокруг поиска ''паттернов в графе''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#GraphPattern&amp;lt;/ref&amp;gt;, зачастую нескольких.&lt;br /&gt;
&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24658</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24658"/>
		<updated>2016-11-10T13:06:51Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Элементы SPARQL запросов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение.&lt;br /&gt;
&lt;br /&gt;
Для доступа и на чтение и запись к элементам Wikidata есть проект [https://github.com/jcreus/pywikidata pywikidata], [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata]. Для доступа на запись вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature]&amp;lt;br&amp;gt;&lt;br /&gt;
Отчёт количества объектов по каждому свойству - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
Более миллиона:&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* принадлежность админ делению - https://www.wikidata.org/wiki/Property:P131&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
&lt;br /&gt;
Больше 100 тысяч, менее миллиона:&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
&lt;br /&gt;
Более 10 тысяч, менее 100 тысяч:&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
Редкие, менее 10000:&lt;br /&gt;
* относительная высота https://www.wikidata.org/wiki/Property:P2660&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
&lt;br /&gt;
=== Российские свойства в Wikidata ===&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
* Портал «Герои страны» ID https://www.wikidata.org/wiki/Property:P2943&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Wikidata префиксы ==&lt;br /&gt;
=== Квалификаторы (qualifier) ===&lt;br /&gt;
&lt;br /&gt;
Если открыть [https://www.wikidata.org/wiki/Q915 Пермь], то там указанно множество значений у численности населения (P1082), причём все значения - одного ранга (нормальный).&lt;br /&gt;
&lt;br /&gt;
У некоторых из значений численности населения указаны квалификаторы (qualifier) P585 (момент времени) и P459 (метод определения). &lt;br /&gt;
&lt;br /&gt;
У элемента Пермь, у всех значений свойства P1082 выбрем 2 квалификатора (P585, P459).&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20%3Fvalue%20%3Fqualifier%20%3Fwikidataid%20WHERE%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wd%3AQ915%20p%3AP1082%20%3Fstatements%20%20%20%20%20%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20ps%3AP1082%20%3Fvalue%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20pq%3AP585%20%20%3Fqualifier%20%20.%0A%20OPTIONAL%20%7B%20%3Fstatements%20pq%3AP459%20%20%3Fwikidataid%20.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?val ?qualifier ?wikidataid WHERE {&lt;br /&gt;
                 wd:Q915 p:P1082 ?statements           .&lt;br /&gt;
            ?statements ps:P1082 ?val      .&lt;br /&gt;
            ?statements pq:P585  ?qualifier  .&lt;br /&gt;
 OPTIONAL { ?statements pq:P459  ?wikidataid . }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
Т.к. исходные данные представляют граф (элемент-свойство-значения) и его расширения (в Wikidata: квалификаторы, ссылки и др.), то большинство запросов SPARQL строятся вокруг поиска ''паттернов в графе''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#GraphPattern&amp;lt;/ref&amp;gt;, зачастую нескольких.&lt;br /&gt;
&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24657</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24657"/>
		<updated>2016-11-10T12:52:33Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Квалификаторы (qualifier) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение.&lt;br /&gt;
&lt;br /&gt;
Для доступа и на чтение и запись к элементам Wikidata есть проект [https://github.com/jcreus/pywikidata pywikidata], [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata]. Для доступа на запись вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature]&amp;lt;br&amp;gt;&lt;br /&gt;
Отчёт количества объектов по каждому свойству - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
Более миллиона:&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* принадлежность админ делению - https://www.wikidata.org/wiki/Property:P131&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
&lt;br /&gt;
Больше 100 тысяч, менее миллиона:&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
&lt;br /&gt;
Более 10 тысяч, менее 100 тысяч:&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
Редкие, менее 10000:&lt;br /&gt;
* относительная высота https://www.wikidata.org/wiki/Property:P2660&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
&lt;br /&gt;
=== Российские свойства в Wikidata ===&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
* Портал «Герои страны» ID https://www.wikidata.org/wiki/Property:P2943&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Wikidata префиксы ==&lt;br /&gt;
=== Квалификаторы (qualifier) ===&lt;br /&gt;
&lt;br /&gt;
Если открыть [https://www.wikidata.org/wiki/Q915 Пермь], то там указанно множество значений у численности населения (P1082), причём все значения - одного ранга (нормальный).&lt;br /&gt;
&lt;br /&gt;
У некоторых из значений численности населения указаны квалификаторы (qualifier) P585 (момент времени) и P459 (метод определения). &lt;br /&gt;
&lt;br /&gt;
У элемента Пермь, у всех значений свойства P1082 выбрем 2 квалификатора (P585, P459).&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20%3Fvalue%20%3Fqualifier%20%3Fwikidataid%20WHERE%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wd%3AQ915%20p%3AP1082%20%3Fstatements%20%20%20%20%20%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20ps%3AP1082%20%3Fvalue%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20pq%3AP585%20%20%3Fqualifier%20%20.%0A%20OPTIONAL%20%7B%20%3Fstatements%20pq%3AP459%20%20%3Fwikidataid%20.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?val ?qualifier ?wikidataid WHERE {&lt;br /&gt;
                 wd:Q915 p:P1082 ?statements           .&lt;br /&gt;
            ?statements ps:P1082 ?val      .&lt;br /&gt;
            ?statements pq:P585  ?qualifier  .&lt;br /&gt;
 OPTIONAL { ?statements pq:P459  ?wikidataid . }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24656</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24656"/>
		<updated>2016-11-10T12:51:24Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Квалификаторы (qualifier) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение.&lt;br /&gt;
&lt;br /&gt;
Для доступа и на чтение и запись к элементам Wikidata есть проект [https://github.com/jcreus/pywikidata pywikidata], [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata]. Для доступа на запись вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature]&amp;lt;br&amp;gt;&lt;br /&gt;
Отчёт количества объектов по каждому свойству - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
Более миллиона:&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* принадлежность админ делению - https://www.wikidata.org/wiki/Property:P131&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
&lt;br /&gt;
Больше 100 тысяч, менее миллиона:&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
&lt;br /&gt;
Более 10 тысяч, менее 100 тысяч:&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
Редкие, менее 10000:&lt;br /&gt;
* относительная высота https://www.wikidata.org/wiki/Property:P2660&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
&lt;br /&gt;
=== Российские свойства в Wikidata ===&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
* Портал «Герои страны» ID https://www.wikidata.org/wiki/Property:P2943&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Wikidata префиксы ==&lt;br /&gt;
=== Квалификаторы (qualifier) ===&lt;br /&gt;
&lt;br /&gt;
Если открыть [https://www.wikidata.org/wiki/Q915 Пермь], то там указанно множество значений у численности населения (P1082), причём все значения - одного ранга (нормальный).&lt;br /&gt;
&lt;br /&gt;
У некоторых из значений численности населения указаны квалификаторы (qualifier) P585 (момент времени) и P459 (метод определения). &lt;br /&gt;
&lt;br /&gt;
Выбрем 2 квалификатора (P585, P459) всех значений свойства P1082 у элемента Пермь.&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20%3Fvalue%20%3Fqualifier%20%3Fwikidataid%20WHERE%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wd%3AQ915%20p%3AP1082%20%3Fstatements%20%20%20%20%20%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20ps%3AP1082%20%3Fvalue%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20pq%3AP585%20%20%3Fqualifier%20%20.%0A%20OPTIONAL%20%7B%20%3Fstatements%20pq%3AP459%20%20%3Fwikidataid%20.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?val ?qualifier ?wikidataid WHERE {&lt;br /&gt;
                 wd:Q915 p:P1082 ?statements           .&lt;br /&gt;
            ?statements ps:P1082 ?val      .&lt;br /&gt;
            ?statements pq:P585  ?qualifier  .&lt;br /&gt;
 OPTIONAL { ?statements pq:P459  ?wikidataid . }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24655</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24655"/>
		<updated>2016-11-10T12:49:11Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Квалификаторы (qualifier) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение.&lt;br /&gt;
&lt;br /&gt;
Для доступа и на чтение и запись к элементам Wikidata есть проект [https://github.com/jcreus/pywikidata pywikidata], [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata]. Для доступа на запись вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature]&amp;lt;br&amp;gt;&lt;br /&gt;
Отчёт количества объектов по каждому свойству - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
Более миллиона:&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* принадлежность админ делению - https://www.wikidata.org/wiki/Property:P131&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
&lt;br /&gt;
Больше 100 тысяч, менее миллиона:&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
&lt;br /&gt;
Более 10 тысяч, менее 100 тысяч:&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
Редкие, менее 10000:&lt;br /&gt;
* относительная высота https://www.wikidata.org/wiki/Property:P2660&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
&lt;br /&gt;
=== Российские свойства в Wikidata ===&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
* Портал «Герои страны» ID https://www.wikidata.org/wiki/Property:P2943&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Wikidata префиксы ==&lt;br /&gt;
=== Квалификаторы (qualifier) ===&lt;br /&gt;
&lt;br /&gt;
Если открыть [https://www.wikidata.org/wiki/Q915 Пермь], то там указанно множество значений у численности населения (P1082), причём все значения - одного ранга (нормальный).&lt;br /&gt;
&lt;br /&gt;
У некоторых из значений численности населения указаны квалификаторы (qualifier) P585 (момент времени) и P459 (метод определения). Выбрать только их, зная item (Пермь).&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20%3Fvalue%20%3Fqualifier%20%3Fwikidataid%20WHERE%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wd%3AQ915%20p%3AP1082%20%3Fstatements%20%20%20%20%20%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20ps%3AP1082%20%3Fvalue%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20pq%3AP585%20%20%3Fqualifier%20%20.%0A%20OPTIONAL%20%7B%20%3Fstatements%20pq%3AP459%20%20%3Fwikidataid%20.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?val ?qualifier ?wikidataid WHERE {&lt;br /&gt;
                 wd:Q915 p:P1082 ?statements           .&lt;br /&gt;
            ?statements ps:P1082 ?val      .&lt;br /&gt;
            ?statements pq:P585  ?qualifier  .&lt;br /&gt;
 OPTIONAL { ?statements pq:P459  ?wikidataid . }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24654</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24654"/>
		<updated>2016-11-10T12:46:09Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Wikidata Blazegraph */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение.&lt;br /&gt;
&lt;br /&gt;
Для доступа и на чтение и запись к элементам Wikidata есть проект [https://github.com/jcreus/pywikidata pywikidata], [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata]. Для доступа на запись вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature]&amp;lt;br&amp;gt;&lt;br /&gt;
Отчёт количества объектов по каждому свойству - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
Более миллиона:&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* принадлежность админ делению - https://www.wikidata.org/wiki/Property:P131&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
&lt;br /&gt;
Больше 100 тысяч, менее миллиона:&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
&lt;br /&gt;
Более 10 тысяч, менее 100 тысяч:&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
Редкие, менее 10000:&lt;br /&gt;
* относительная высота https://www.wikidata.org/wiki/Property:P2660&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
&lt;br /&gt;
=== Российские свойства в Wikidata ===&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
* Портал «Герои страны» ID https://www.wikidata.org/wiki/Property:P2943&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Wikidata префиксы ==&lt;br /&gt;
=== Квалификаторы (qualifier) ===&lt;br /&gt;
&lt;br /&gt;
Если открыть [https://www.wikidata.org/wiki/Q915 Пермь], то там указанно множество значений у численности населения (P1082), причём все значения - одного ранга (нормальный).&lt;br /&gt;
&lt;br /&gt;
У некоторых из значений численности населения указаны квалификаторы (qualifier) P585 и P459. Давайте попробуем выбрать только их, зная item (Пермь).&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20%3Fvalue%20%3Fqualifier%20%3Fwikidataid%20WHERE%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20wd%3AQ915%20p%3AP1082%20%3Fstatements%20%20%20%20%20%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20ps%3AP1082%20%3Fvalue%20%20%20%20%20%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Fstatements%20pq%3AP585%20%20%3Fqualifier%20%20.%0A%20OPTIONAL%20%7B%20%3Fstatements%20pq%3AP459%20%20%3Fwikidataid%20.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?val ?qualifier ?wikidataid WHERE {&lt;br /&gt;
                 wd:Q915 p:P1082 ?statements           .&lt;br /&gt;
            ?statements ps:P1082 ?val      .&lt;br /&gt;
            ?statements pq:P585  ?qualifier  .&lt;br /&gt;
 OPTIONAL { ?statements pq:P459  ?wikidataid . }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24651</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24651"/>
		<updated>2016-11-10T08:31:48Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Географические свойства в Wikidata */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение.&lt;br /&gt;
&lt;br /&gt;
Для доступа и на чтение и запись к элементам Wikidata есть проект [https://github.com/jcreus/pywikidata pywikidata], [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata]. Для доступа на запись вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature]&amp;lt;br&amp;gt;&lt;br /&gt;
Отчёт количества объектов по каждому свойству - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
Более миллиона:&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* принадлежность админ делению - https://www.wikidata.org/wiki/Property:P131&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
&lt;br /&gt;
Больше 100 тысяч, менее миллиона:&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
&lt;br /&gt;
Более 10 тысяч, менее 100 тысяч:&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
Редкие, менее 10000:&lt;br /&gt;
* относительная высота https://www.wikidata.org/wiki/Property:P2660&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
&lt;br /&gt;
=== Российские свойства в Wikidata ===&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
* Портал «Герои страны» ID https://www.wikidata.org/wiki/Property:P2943&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24650</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24650"/>
		<updated>2016-11-10T08:22:32Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Географические свойства в Wikidata */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение.&lt;br /&gt;
&lt;br /&gt;
Для доступа и на чтение и запись к элементам Wikidata есть проект [https://github.com/jcreus/pywikidata pywikidata], [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata]. Для доступа на запись вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature]&amp;lt;br&amp;gt;&lt;br /&gt;
Отчёт количества объектов по каждому свойству - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
Редкие (менее 8000):&lt;br /&gt;
* относительная высота https://www.wikidata.org/wiki/Property:P2660&lt;br /&gt;
&lt;br /&gt;
=== Российские свойства в Wikidata ===&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
* Портал «Герои страны» ID https://www.wikidata.org/wiki/Property:P2943&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24649</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24649"/>
		<updated>2016-11-10T08:18:04Z</updated>

		<summary type="html">&lt;p&gt;D1g: Портал «Герои страны» ID&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение.&lt;br /&gt;
&lt;br /&gt;
Для доступа и на чтение и запись к элементам Wikidata есть проект [https://github.com/jcreus/pywikidata pywikidata], [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata]. Для доступа на запись вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature]&amp;lt;br&amp;gt;&lt;br /&gt;
Отчёт количества объектов по каждому свойству - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
=== Российские свойства в Wikidata ===&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
* Портал «Герои страны» ID https://www.wikidata.org/wiki/Property:P2943&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24648</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24648"/>
		<updated>2016-11-10T08:03:01Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Географические свойства в Wikidata */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение.&lt;br /&gt;
&lt;br /&gt;
Для доступа и на чтение и запись к элементам Wikidata есть проект [https://github.com/jcreus/pywikidata pywikidata], [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata]. Для доступа на запись вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature]&amp;lt;br&amp;gt;&lt;br /&gt;
Отчёт количества объектов по каждому свойству - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
Российские:&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24647</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24647"/>
		<updated>2016-11-10T08:01:33Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Географические свойства в Wikidata */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение.&lt;br /&gt;
&lt;br /&gt;
Для доступа и на чтение и запись к элементам Wikidata есть проект [https://github.com/jcreus/pywikidata pywikidata], [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata]. Для доступа на запись вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature].&lt;br /&gt;
Отчёт по каждому свойству и количеству объектов - [https://www.wikidata.org/wiki/Wikidata:Database_reports/List_of_properties/all Wikidata:Database_reports/List_of_properties/all]&lt;br /&gt;
&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
Российские:&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24646</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24646"/>
		<updated>2016-11-10T08:00:34Z</updated>

		<summary type="html">&lt;p&gt;D1g: ОКАТО ОКТМО&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение.&lt;br /&gt;
&lt;br /&gt;
Для доступа и на чтение и запись к элементам Wikidata есть проект [https://github.com/jcreus/pywikidata pywikidata], [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata]. Для доступа на запись вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature].&lt;br /&gt;
&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
Российские:&lt;br /&gt;
* код ОКАТО https://www.wikidata.org/wiki/Property:P721&lt;br /&gt;
* код ОКТМО https://www.wikidata.org/wiki/Property:P764&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24645</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24645"/>
		<updated>2016-11-09T14:11:41Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Города в России с телефонными кодами */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение.&lt;br /&gt;
&lt;br /&gt;
Для доступа и на чтение и запись к элементам Wikidata есть проект [https://github.com/jcreus/pywikidata pywikidata], [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata]. Для доступа на запись вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature].&lt;br /&gt;
&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?countrydialingcode ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24644</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24644"/>
		<updated>2016-11-09T14:10:05Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Города в России с телефонными кодами */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение.&lt;br /&gt;
&lt;br /&gt;
Для доступа и на чтение и запись к элементам Wikidata есть проект [https://github.com/jcreus/pywikidata pywikidata], [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata]. Для доступа на запись вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature].&lt;br /&gt;
&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/qdwezf5 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24643</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24643"/>
		<updated>2016-11-09T14:09:07Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Города в России с телефонными кодами */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение.&lt;br /&gt;
&lt;br /&gt;
Для доступа и на чтение и запись к элементам Wikidata есть проект [https://github.com/jcreus/pywikidata pywikidata], [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata]. Для доступа на запись вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature].&lt;br /&gt;
&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/nnvo2kw Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  wd:Q159 wdt:P474 ?countrydialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24642</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24642"/>
		<updated>2016-11-09T11:59:53Z</updated>

		<summary type="html">&lt;p&gt;D1g: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение.&lt;br /&gt;
&lt;br /&gt;
Для доступа и на чтение и запись к элементам Wikidata есть проект [https://github.com/jcreus/pywikidata pywikidata], [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры скриптов миграции данных из Википедии и Wikidata]. Для доступа на запись вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature].&lt;br /&gt;
&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/hygo6k7 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24641</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24641"/>
		<updated>2016-11-09T11:50:24Z</updated>

		<summary type="html">&lt;p&gt;D1g: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение.&lt;br /&gt;
&lt;br /&gt;
Для доступа и на чтение и запись к элементам Wikidata есть проект [https://github.com/jcreus/pywikidata pywikidata], [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры типовых скриптов]. Для доступа на запись вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature].&lt;br /&gt;
&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/hygo6k7 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24640</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24640"/>
		<updated>2016-11-09T11:47:32Z</updated>

		<summary type="html">&lt;p&gt;D1g: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение.&lt;br /&gt;
Для доступа и на чтение и запись к элементам Wikidata есть проект [https://github.com/jcreus/pywikidata pywikidata], [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры типовых скриптов]. Для доступа на запись вам необходимо ознакомиться с короткой [https://www.wikidata.org/wiki/Wikidata:Bots процедурой регистрации ботов] и [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot отправить заявку участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature].&lt;br /&gt;
&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/hygo6k7 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24639</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24639"/>
		<updated>2016-11-09T11:43:14Z</updated>

		<summary type="html">&lt;p&gt;D1g: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение.&lt;br /&gt;
Для доступа и на чтение и запись к элементам Wikidata есть проект [https://github.com/jcreus/pywikidata pywikidata], [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры типовых скриптов]. Для доступа на запись вам необходимо [https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot пройти процедуру регистрации участника-ботовода].&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature].&lt;br /&gt;
&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/hygo6k7 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24638</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24638"/>
		<updated>2016-11-09T11:42:08Z</updated>

		<summary type="html">&lt;p&gt;D1g: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
Нужно отметить что SPARQL подразумевает только запросы на чтение.&lt;br /&gt;
Для доступа и на чтение и запись к элементам Wikidata есть проект [https://github.com/jcreus/pywikidata pywikidata], [https://www.wikidata.org/wiki/Wikidata:Creating_a_bot руководство по созданию ботов] и [https://www.mediawiki.org/wiki/Manual:Pywikibot/Scripts#Wikidata примеры типовых скриптов]. Для доступа на запись вам необходимо пройти процедуру регистрации участника-ботовода.&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature].&lt;br /&gt;
&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/hygo6k7 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24637</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24637"/>
		<updated>2016-11-09T11:27:02Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Города примерно с таким же населением как и Пермь */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature].&lt;br /&gt;
&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/hygo6k7 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций на числах'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24636</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24636"/>
		<updated>2016-11-09T11:26:11Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Города примерно с таким же населением как и Пермь */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature].&lt;br /&gt;
&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/hygo6k7 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
Города, отличающиеся менее чем на 1000 населения от [https://www.wikidata.org/wiki/Q915 Перми].&lt;br /&gt;
&lt;br /&gt;
* 6 строка: abs&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#func-abs&amp;lt;/ref&amp;gt; это одна из множества возможных ''функций'' в ''тестовых выражениях'' и ''фильтрах''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#expressions&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24635</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24635"/>
		<updated>2016-11-09T11:15:39Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Города примерно с таким же населением как и Пермь */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature].&lt;br /&gt;
&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/hygo6k7 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
± 1000 населения&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20.%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 .&lt;br /&gt;
  ?city wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24634</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24634"/>
		<updated>2016-11-09T10:48:31Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Внешние ссылки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature].&lt;br /&gt;
&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/hygo6k7 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
± 1000 населения&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20%3B%0A%20%20%20%20%20%20%20%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 ;&lt;br /&gt;
        wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_10/SPARQL_Tutorials_Part_10.html 10] и [https://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_11/SPARQL_Tutorials_Part_11.html 11] покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24633</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24633"/>
		<updated>2016-11-09T10:39:48Z</updated>

		<summary type="html">&lt;p&gt;D1g: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature].&lt;br /&gt;
&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/hygo6k7 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
± 1000 населения&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20%3B%0A%20%20%20%20%20%20%20%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 ;&lt;br /&gt;
        wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
* [https://virtuoso.openlinksw.com/tutorials/sparql/ Обучающие материалы OpenLink Software о SPARQL] - части 10, 11 и 12 покрывают основы GeoSPARQL&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24632</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24632"/>
		<updated>2016-11-09T10:28:47Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Wikidata */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature].&lt;br /&gt;
&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Wikidata Blazegraph ==&lt;br /&gt;
&lt;br /&gt;
blazegraph - расширения от Wikidata к [https://www.blazegraph.com/ Blazegraph] чтобы сделать запросы к Wikibase более эффективными. Лицензия GPLv2.&lt;br /&gt;
&lt;br /&gt;
* функция [https://github.com/wikimedia/wikidata-query-rdf/blob/master/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java geof:distance] возвращает минимальное расстояние между двумя точками.&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/hygo6k7 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
± 1000 населения&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20%3B%0A%20%20%20%20%20%20%20%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 ;&lt;br /&gt;
        wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24631</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24631"/>
		<updated>2016-11-09T08:31:37Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Города, которые соединяется с Транссибирской магистралью или Трансмонгольской железной дорогой */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature].&lt;br /&gt;
&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/hygo6k7 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
± 1000 населения&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20%3B%0A%20%20%20%20%20%20%20%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 ;&lt;br /&gt;
        wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяются с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24630</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24630"/>
		<updated>2016-11-09T07:57:01Z</updated>

		<summary type="html">&lt;p&gt;D1g: Wikidata терминология: элемент, свойства и значения&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют географические свойства.&lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Свойства Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические свойства в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature].&lt;br /&gt;
&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
=== Географические элементы в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/hygo6k7 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
± 1000 населения&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20%3B%0A%20%20%20%20%20%20%20%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 ;&lt;br /&gt;
        wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяется с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24629</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24629"/>
		<updated>2016-11-09T07:49:46Z</updated>

		<summary type="html">&lt;p&gt;D1g: Wikidata терминология отличается от классической, отразил&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot; (в терминах Wikidata элемент-свойство-значения, item-property-values). Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют предикаты (свойства объектов) относящиеся к географическим свойствам. &lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Предикаты Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические предикаты в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature].&lt;br /&gt;
&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
=== Географические объекты в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/hygo6k7 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
± 1000 населения&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20%3B%0A%20%20%20%20%20%20%20%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 ;&lt;br /&gt;
        wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяется с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24628</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24628"/>
		<updated>2016-11-09T07:44:16Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Wikidata */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot;. Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют предикаты (свойства объектов) относящиеся к географическим свойствам. &lt;br /&gt;
&lt;br /&gt;
Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary/ru Викиданные:Глоссарий]&lt;br /&gt;
&lt;br /&gt;
[https://commons.wikimedia.org/wiki/File:Wikidata_statement_ru.svg Диаграмма русскоязычной терминологии утверждений в Викиданных]&lt;br /&gt;
&lt;br /&gt;
=== Предикаты Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические предикаты в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature].&lt;br /&gt;
&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
=== Географические объекты в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/hygo6k7 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
± 1000 населения&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20%3B%0A%20%20%20%20%20%20%20%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 ;&lt;br /&gt;
        wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяется с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24625</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24625"/>
		<updated>2016-11-08T20:38:45Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Объекты-побратимы всех российских объектов и их страны */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot;. Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют предикаты (свойства объектов) относящиеся к географическим свойствам. Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary Wikidata:Glossary]&lt;br /&gt;
&lt;br /&gt;
=== Предикаты Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические предикаты в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature].&lt;br /&gt;
&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
=== Географические объекты в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/hygo6k7 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: [https://www.wikidata.org/wiki/Q2366010 Академический район] будет выбран как находящийся в России.&lt;br /&gt;
* Строка 4: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) будет выбран как побратим Академического района.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
± 1000 населения&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20%3B%0A%20%20%20%20%20%20%20%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 ;&lt;br /&gt;
        wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяется с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24624</id>
		<title>SPARQL на примерах Wikidata</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=SPARQL_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0%D1%85_Wikidata&amp;diff=24624"/>
		<updated>2016-11-08T20:01:06Z</updated>

		<summary type="html">&lt;p&gt;D1g: /* Wikidata */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Статья|Черновик|SPARQL-with-Wikidata}}&lt;br /&gt;
&lt;br /&gt;
{{Аннотация|SPARQL это язык запросов к данным, основанных на модели &amp;quot;субъект-предикат-значение&amp;quot;. Wikidata - это открытый проект, потенциально интересный в гео-проектах и доступный в виде публичной SPARQL-точки}}&lt;br /&gt;
&lt;br /&gt;
== Инструментарий запросов ==&lt;br /&gt;
Запросы к Wikidata можно составлять с помощью различных SPARQL клиентов, но ключевая особенность Wikidata это общедоступная и публичная точка доступа SPARQL. Более того, был написан простой web интерфейс к ней.&lt;br /&gt;
&lt;br /&gt;
=== query.wikidata.org ===&lt;br /&gt;
&lt;br /&gt;
https://query.wikidata.org - веб-интерфейс. &lt;br /&gt;
&lt;br /&gt;
У этого инструмента есть целое руководство на английском языке https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual и репозиторий для разработчиков https://github.com/wikimedia/wikidata-query-rdf.&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, что результаты запросов можно скачать в формате CSV - хорошее подспорье для более серьёзной работы с помощью других инструментов.&lt;br /&gt;
&lt;br /&gt;
В таблице результатов (в нижней части экрана) можно отфильтровать результаты, используя поиск по всем полям сразу (например, можно попробовать найти &amp;quot;Moscow&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Wikidata ==&lt;br /&gt;
В рамках gis-lab в первую очередь интересуют предикаты (свойства объектов) относящиеся к географическим свойствам. Для помощи по терминологии и модели Wikidata можно подсмотреть [https://www.wikidata.org/wiki/Wikidata:Glossary Wikidata:Glossary]&lt;br /&gt;
&lt;br /&gt;
=== Предикаты Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Wikidata:List_of_properties Wikidata:List_of_properties].&lt;br /&gt;
&lt;br /&gt;
* дата прекращения существования - https://www.wikidata.org/wiki/Property:P576&lt;br /&gt;
* дата окончания - https://www.wikidata.org/wiki/Property:P582&lt;br /&gt;
&lt;br /&gt;
=== Географические предикаты в Wikidata ===&lt;br /&gt;
Полный перечень - [https://www.wikidata.org/wiki/Special:MyLanguage/Wikidata:List_of_properties/Geographical_feature Wikidata:List_of_properties/Geographical_feature].&lt;br /&gt;
&lt;br /&gt;
* Координаты (точка) - https://www.wikidata.org/wiki/Property:P625 (при выборке этого свойства появляется возможность представить результаты на карте в нижней части экрана)&lt;br /&gt;
* ID отношения из OpenStreetMap - https://www.wikidata.org/wiki/Property:P402&lt;br /&gt;
* принадлежность стране - https://www.wikidata.org/wiki/Property:P17&lt;br /&gt;
* столица - https://www.wikidata.org/wiki/Property:P36&lt;br /&gt;
* численность населения - https://www.wikidata.org/wiki/Property:P1082&lt;br /&gt;
* официальный язык - https://www.wikidata.org/wiki/Property:P37&lt;br /&gt;
* город-побратим - https://www.wikidata.org/wiki/Property:P190&lt;br /&gt;
&lt;br /&gt;
=== Географические объекты в Wikidata ===&lt;br /&gt;
* континент - https://www.wikidata.org/wiki/Q5107&lt;br /&gt;
* суверенное государство - https://www.wikidata.org/wiki/Q3624078&lt;br /&gt;
* историческое государство - https://www.wikidata.org/wiki/Q3024240&lt;br /&gt;
* город - https://www.wikidata.org/wiki/Q515&lt;br /&gt;
&lt;br /&gt;
* северный полюс - https://www.wikidata.org/wiki/Q934&lt;br /&gt;
* южный полюс - https://www.wikidata.org/wiki/Q933&lt;br /&gt;
&lt;br /&gt;
* гора - https://www.wikidata.org/wiki/Q8502&lt;br /&gt;
&lt;br /&gt;
== Элементы SPARQL запросов ==&lt;br /&gt;
=== Города в России с телефонными кодами ===&lt;br /&gt;
&lt;br /&gt;
Самый простой пример.&lt;br /&gt;
* 1 строка: SELECT запросы&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#QueryForms&amp;lt;/ref&amp;gt; выбирают данные или их часть&lt;br /&gt;
* 2 строка: выбираем субъекты (?item) у которых явно указано, что они в стране - ''Россия'' (Q159)&lt;br /&gt;
* 3 строка: выбираем субъекты (?item) у которых явно указано, что они суть - ''города'' (Q515)&lt;br /&gt;
* 4-6 строка: т.к. значения предиката &amp;quot;ID отношения из OpenStreetMap&amp;quot; P402 могут быть просто не заполнены у отдельных объектов, такие объекты будут исключены из результатов. Это не совсем интуитивно понятно для людей, привыкших к SQL-запросам (где NULL-значения возвращаются в большинстве случаев). В SPARQL ''необязательные значения''&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#optionals&amp;lt;/ref&amp;gt; нужно включать в результаты вручную.&lt;br /&gt;
* 7 строка: выбираем все возможные субъекты и объекты у предиката P473 (код города). Примечание о части &amp;quot;?localdialingcode&amp;quot;: в Wikidata у [https://www.wikidata.org/wiki/Q649 Москвы] указано сразу два объекта &amp;quot;495&amp;quot; и &amp;quot;499&amp;quot; у предиката P473, поэтому вернутся 2 результата, а не один. В SQL пришлось бы писать JOIN на ровном месте, а в SPARQL его нет вообще.&lt;br /&gt;
&lt;br /&gt;
[http://tinyurl.com/hygo6k7 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT ?item ?relationid ?itemLabel ?localdialingcode WHERE {&lt;br /&gt;
  ?item wdt:P17 wd:Q159.&lt;br /&gt;
  ?item wdt:P31 wd:Q515.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?item wdt:P402 ?relationid.&lt;br /&gt;
  }&lt;br /&gt;
  ?item wdt:P473 ?localdialingcode.&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Объекты-побратимы всех российских объектов и их страны ===&lt;br /&gt;
Этот пример призван показать всю простоту JOIN-ов в SPARQL.&lt;br /&gt;
&lt;br /&gt;
Для подходящего ''первичного ключа'' (в реляционных терминах) было достаточно найти только сам предикат (город-побратим).&lt;br /&gt;
&lt;br /&gt;
Более того, в отличие от реляционных подходов, мы избавлены от вопросов: &amp;quot;в какой именно таблице хранятся города&amp;quot;, &amp;quot;в какой таблице хранится информация о побратимстве&amp;quot;. Сложность отличий нормальных форм не сбрасывается сразу на пользователя на уровне языка запросов. Необходимость в тщательном дизайне баз данных (таблиц и отношений) тоже уменьшается (по сравнению с табличным подходом и SQL).&lt;br /&gt;
&lt;br /&gt;
Составители запросов SPARQL просто исследуют данные запросами, а не постоянно думают где именно эти данные расположены и как именно их будут связывать.&lt;br /&gt;
&lt;br /&gt;
* Строка 2: обратите внимание на данные в Wikidata: [https://www.wikidata.org/wiki/Q33349 Мелитополь] (Украина) указан как побратим московского района [https://www.wikidata.org/wiki/Q2366010 Академический район]. Академический район будет выбран как находящийся в России.&lt;br /&gt;
* Строка 7: исключаем исторические страны у городов-побратимов в результатах&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3FwikidataCity%20%3FrussianPlace%20%3Fcountry%20WHERE%20%7B%0A%20%20%3FrussianPlace%20wdt%3AP17%20wd%3AQ159%20.%0A%20%20%0A%20%20%3FrussianPlace%20wdt%3AP190%20%3FwikidataCity%20.%0A%20%20%3FwikidataCity%20wdt%3AP17%20%3Fcountry%20.%0A%20%20%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%7D%0AORDER%20BY%20%3FrussianPlace%20%3Fcountry Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?wikidataCity ?russianPlace ?country WHERE {&lt;br /&gt;
  ?russianPlace wdt:P17 wd:Q159 .&lt;br /&gt;
  &lt;br /&gt;
  ?russianPlace wdt:P190 ?wikidataCity .&lt;br /&gt;
  ?wikidataCity wdt:P17 ?country .&lt;br /&gt;
  &lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?russianPlace ?country&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Существующие страны и их столицы ===&lt;br /&gt;
В отличие от OpenStreetMap, Wikidata не ограничен &amp;quot;существующими прямо сейчас&amp;quot; объектами. Это можно использовать как хороший пример исключения из результатов.&lt;br /&gt;
* 5 строка: исключаем&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#negation&amp;lt;/ref&amp;gt; те страны, которые - исторические&lt;br /&gt;
* 10 строка: результаты упорядочены&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#solutionModifiers&amp;lt;/ref&amp;gt; по названиям на русском или английском&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%0AWHERE%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ3624078%20.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%3Fcountry%20wdt%3AP31%20wd%3AQ3024240%7D%0A%20%20OPTIONAL%20%7B%20%3Fcountry%20wdt%3AP36%20%3Fcapital%20%7D%20.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%2C%20%22en%22%20%7D%0A%7D%0AORDER%20BY%20%3FcountryLabel Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country wdt:P31 wd:Q3624078 .&lt;br /&gt;
  FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}&lt;br /&gt;
  OPTIONAL { ?country wdt:P36 ?capital } .&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru&amp;quot;, &amp;quot;en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY ?countryLabel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города примерно с таким же населением как и Пермь ===&lt;br /&gt;
± 1000 населения&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulatie2%20%3Fcoor%20WHERE%20%7B%0A%20%20wd%3AQ915%20wdt%3AP1082%20%3Fpopulatie%20.%0A%20%20%3Fcity%20wdt%3AP1082%20%3Fpopulatie2%20%3B%0A%20%20%20%20%20%20%20%20wdt%3AP625%20%3Fcoor%20.%0A%20%20FILTER%20%28abs%28%3Fpopulatie%20-%20%3Fpopulatie2%29%20%3C%201000%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?populatie2 ?coor WHERE {&lt;br /&gt;
  wd:Q915 wdt:P1082 ?populatie .&lt;br /&gt;
  ?city wdt:P1082 ?populatie2 ;&lt;br /&gt;
        wdt:P625 ?coor .&lt;br /&gt;
  FILTER (abs(?populatie - ?populatie2) &amp;lt; 1000)&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ранжирование городов по населению ===&lt;br /&gt;
&lt;br /&gt;
* Строка 10-17: BIND конструкция&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#assignment&amp;lt;/ref&amp;gt; позволяет создать переменную и присвоить ей значение. В данном примере мы использовали другую переменную (?population) чтобы создать новую (?layer)&lt;br /&gt;
* Строка 11: первый из 5 вложенных в &amp;quot;хвостовую часть&amp;quot; IF(условие, значение при истине, значение при не истине)&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Flayer%20%3Fcoordinates%20WHERE%20%7B%0A%20%20%3Fcity%20wdt%3AP17%20wd%3AQ159.%0A%20%20%3Fcity%20wdt%3AP31%20wd%3AQ515.%0A%0A%20%20OPTIONAL%20%7B%20%3Fcity%20wdt%3AP1082%20%3Fpopulation.%20%7D%0A%20%20%0A%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates.%0A%20%20%0A%20%20BIND%28%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20500%2C%20%22500%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000%2C%20%2210K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%20100000%2C%20%22100K%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%201000000%2C%20%221M%22%2C%0A%20%20%20%20IF%28%3Fpopulation%20%3C%2010000000%2C%20%2210M%22%2C%0A%20%20%20%20%22%3E20M%22%29%29%29%29%29%0A%20%20%20%20AS%20%3Flayer%29.%0A%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22%20%7D%0A%7D%0AORDER%20BY%20%0ADESC%28%3Fpopulation%29 Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?city ?cityLabel ?population ?layer ?coordinates WHERE {&lt;br /&gt;
  ?city wdt:P17 wd:Q159.&lt;br /&gt;
  ?city wdt:P31 wd:Q515.&lt;br /&gt;
&lt;br /&gt;
  OPTIONAL { ?city wdt:P1082 ?population. }&lt;br /&gt;
  &lt;br /&gt;
  ?city wdt:P625 ?coordinates.&lt;br /&gt;
  &lt;br /&gt;
  BIND(&lt;br /&gt;
    IF(?population &amp;lt; 500, &amp;quot;500&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000, &amp;quot;10K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 100000, &amp;quot;100K&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 1000000, &amp;quot;1M&amp;quot;,&lt;br /&gt;
    IF(?population &amp;lt; 10000000, &amp;quot;10M&amp;quot;,&lt;br /&gt;
    &amp;quot;&amp;gt;20M&amp;quot;)))))&lt;br /&gt;
    AS ?layer).&lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
ORDER BY &lt;br /&gt;
DESC(?population)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Бывшие столицы государств ===&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcountry%20%3FcountryLabel%20%3Fcapital%20%3FcapitalLabel%20%3Fcoordinates%20%3Fended%0AWHERE%0A%7B%0A%20%20%3Fcountry%20p%3AP36%20%3Fstat.%0A%20%20%3Fstat%20ps%3AP36%20%3Fcapital.%0A%20%20%3Fcapital%20wdt%3AP625%20%3Fcoordinates.%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcountry%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcapital%20wdt%3AP582%7Cwdt%3AP576%20%3Fended.%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fstat%20pq%3AP582%20%3Fended.%0A%20%20%7D%0A%20%20FILTER%28BOUND%28%3Fended%29%29.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT DISTINCT ?country ?countryLabel ?capital ?capitalLabel ?coordinates ?ended&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
  ?country p:P36 ?stat.&lt;br /&gt;
  ?stat ps:P36 ?capital.&lt;br /&gt;
  ?capital wdt:P625 ?coordinates.&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?country wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?capital wdt:P582|wdt:P576 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  OPTIONAL {&lt;br /&gt;
    ?stat pq:P582 ?ended.&lt;br /&gt;
  }&lt;br /&gt;
  FILTER(BOUND(?ended)).&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Города, которые соединяется с Транссибирской магистралью или Трансмонгольской железной дорогой ===&lt;br /&gt;
&lt;br /&gt;
* 5 строка: конструкция VALUES&amp;lt;ref&amp;gt;https://www.w3.org/TR/sparql11-query/#inline-data&amp;lt;/ref&amp;gt; используется чтобы вручную указать значения у отдельных элементов&amp;lt;ref&amp;gt;http://www.snee.com/bobdc.blog/2012/09/sparql-11s-new-values-keyword.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fcity%20%3FcityLabel%20%3Fcoordinates%0AWHERE%0A%7B%0A%20%20%20VALUES%20%3Fhighway%20%7B%20wd%3AQ559037%20wd%3AQ58767%20%7D%20%0A%20%20%20%3Fhighway%20wdt%3AP2789%20%3Fcity%20.%0A%20%20%20%20%3Fcity%20wdt%3AP625%20%3Fcoordinates%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%2Cen%22.%20%7D%0A%7D Открыть на query.wikidata.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line&amp;gt;&lt;br /&gt;
#defaultView:Map&lt;br /&gt;
SELECT ?city ?cityLabel ?coordinates&lt;br /&gt;
WHERE&lt;br /&gt;
{&lt;br /&gt;
   VALUES ?highway { wd:Q559037 wd:Q58767 } &lt;br /&gt;
   ?highway wdt:P2789 ?city .&lt;br /&gt;
    ?city wdt:P625 ?coordinates .&lt;br /&gt;
   SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;ru,en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Примеры запросов ==&lt;br /&gt;
&lt;br /&gt;
Часть [https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service/queries/examples примеров]:&lt;br /&gt;
&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20%3Fcontinent%20%3FcontinentLabel%0AWHERE%0A%7B%0A%20%20%3Fcontinent%20wdt%3AP31%20wd%3AQ5107.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D%0AORDER%20BY%20xsd%3Ainteger%28SUBSTR%28STR%28%3Fcontinent%29%2CSTRLEN%28%22http%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ%22%29%2B1%29%29 Все континенты из Wikidata, отсортированные по убыванию их Wikidata идентификатора]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20%3Fplace%20%3FplaceLabel%20%3Flocation%20WHERE%20%7B%0A%20%20wd%3AQ933%20wdt%3AP625%20%3FsouthPole.%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20coordinates%20of%20south%20pole%0A%20%20%3Fplace%20wdt%3AP30%20wd%3AQ51%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20continent%3A%20antarctica%0A%20%20%20%20%20%20%20%20%20wdt%3AP625%20%3Flocation.%0A%20%20FILTER%28geof%3Adistance%28%3Flocation%2C%20%3FsouthPole%29%20%3E%203000%29.%20%23%20over%203000%3Fkm%20away%20from%20south%20pole%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22.%20%7D%0A%7D Объекты в более чем 3000 км от южного полюса, но всё ещё относящиеся к Антарктике]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%20DISTINCT%20%3FcountryLabel%20%3Fpopulation%0A%7B%0A%20%20%3Fcountry%20wdt%3AP31%20wd%3AQ6256%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20wdt%3AP1082%20%3Fpopulation%20.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AGROUP%20BY%20%3Fpopulation%20%3FcountryLabel%0AORDER%20BY%20DESC%28%3Fpopulation%29 Страны по убыванию населения]&lt;br /&gt;
* [https://query.wikidata.org/#%23defaultView%3AMap%0ASELECT%20DISTINCT%20%3Fcity%20%3FcityLabel%20%3Fpopulation%20%3Fcountry%20%3FcountryLabel%20%3Floc%20WHERE%20%7B%0A%09%7B%0A%09%09SELECT%20%28MAX%28%3Fpopulation%29%20AS%20%3Fpopulation%29%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%09%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%09%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%09%7D%0A%09%09GROUP%20BY%20%3Fcountry%0A%09%09ORDER%20BY%20DESC%28%3Fpopulation%29%0A%09%7D%0A%09%3Fcity%20wdt%3AP31%2Fwdt%3AP279%2a%20wd%3AQ515%20.%0A%09%3Fcity%20wdt%3AP1082%20%3Fpopulation%20.%0A%09%3Fcity%20wdt%3AP17%20%3Fcountry%20.%0A%09%3Fcity%20wdt%3AP625%20%3Floc%20.%0A%09SERVICE%20wikibase%3Alabel%20%7B%0A%09%09bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20.%0A%09%7D%0A%7D Самый населённый город в каждой стране]&lt;br /&gt;
* [https://query.wikidata.org/#SELECT%0A%09%3Fcountry%20%3FcountryLabel%0A%09%3FwikiPersons%0A%09%3Fpopulation%0A%09%28ROUND%28%3FwikiPersons%2F%3Fpopulation%2a1000000%29%20AS%20%3FwikiPersonsPerM%29%0AWHERE%0A%7B%0A%09%7B%20SELECT%20%3Fcountry%20%28count%28%2a%29%20as%20%3FwikiPersons%29%20WHERE%20%7B%0A%09%09%7BSELECT%20DISTINCT%20%3Fperson%20%3Fcountry%20WHERE%20%7B%0A%09%09%09%3Fcountry%20wdt%3AP31%20wd%3AQ185441%20.%0A%09%09%09%23%20BIND%28%20wd%3AQ30%20AS%20%3Fcountry%20%29%20%23%20use%20instead%20of%20previous%20line%20to%20check%20individual%20countries%0A%09%09%09%3Fperson%20wdt%3AP31%20wd%3AQ5%20.%0A%09%09%09%3Fperson%20wdt%3AP27%20%3Fcountry%20.%0A%09%09%09FILTER%20NOT%20EXISTS%7B%20%3Fperson%20wdt%3AP570%20%3Fdate%20%7D%20%23%20only%20count%20living%20people%0A%09%09%7D%20%7D%0A%09%7D%20GROUP%20BY%20%3Fcountry%20%20%7D%0A%09%3Fcountry%20wdt%3AP1082%20%3Fpopulation%0A%09SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22ru%22%20%7D%0A%7D%0AORDER%20BY%20DESC%28%3FwikiPersonsPerM%29 Количество записей о людях в Викиданных на каждый миллион населения в данной стране]&lt;br /&gt;
&lt;br /&gt;
== Внешние ссылки ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>D1g</name></author>
	</entry>
</feed>