Программирование Викиданных/Области России

Материал из Викиверситета
Перейти к навигации Перейти к поиску

Худорожникова Мария Юрьевна.

Статья посвящена исследованию наиболее важных свойств объекта Викиданных "Субъекты России". С помощью SPARQL-запросов были получены данные о количестве экземпляров объекта "Области России", о количестве всех существующих на данный момент времени субъектов Российской Федерации(рассматривались области России, республики, города федерального значения, края, автономные области, автономные округа, бывшие административно-территориальные единицы), построен граф соседних субъектов РФ и стран, а также нарисована карта, на которой отмечена численность населения отдельных субъектов Российской Федерации. Более того, рассматривалась задача, в которой исследовалась заполненость свойства "shares border with"(граничит с) у каждого экземпляра рассматриваемых объектов. По ходу работы пополнялись поля со свойствами в Викиданных. Читатель познакомится с компьютерной обработкой Викиданных и визуализацией информации о регионах России.

Экземпляры объекта "Области России"[править]

Построим список всех областей России.

#List of `instances of` "oblast of Russia" 
SELECT ?oblast ?oblastLabel
WHERE
{
    ?oblast wdt:P31 wd:Q835714.
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}

SPARQL запрос, 48 записей.

👍 Наиболее полными и проработанными областями России на Викиданных являются: Московская область, Тюменская область, Курская область

👎 Почти пустыми и малоинформативными областями России оказались: Читинская область,Костромская область, Оренбургская область.

Субъекты Российской Федерации[править]

Построим список всех субъектов Российской Федерации - республики, края, области, города федерального значения, автономные области и автономные округа.

Используются:

#List of `instances of` "subjects of Russia" 
SELECT ?subject ?subjectLabel
WHERE
{
  { ?subject wdt:P31 wd:Q835714 } UNION  # Oblast of Russia
  { ?subject wdt:P31 wd:Q41162 } UNION  # Republic of Russia
  { ?subject wdt:P31 wd:Q183342 } UNION  # Federal city of Russia
  { ?subject wdt:P31 wd:Q831740 } UNION  # Krai of Russia
  { ?subject wdt:P31 wd:Q309166 } UNION # Autonomus oblast of Russia
  { ?subject wdt:P31 wd:Q184122 } # Autonomus okrug of Russia
  
  FILTER NOT EXISTS {?subject wdt:P31 wd:Q19953632} # Former administrative territorial entity
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}

SPARQL запрос, 85 записей.

Соседние субъекты[править]

Построим граф соседних субъектов РФ по свойству "shares border with".

Используются:

#Graph of "subjects of Russia" `shares border with`. 
#defaultView:Graph
SELECT ?subject ?subjectLabel ?sharesBorderWith ?sharesBorderWithLabel
WHERE
{
  { ?subject wdt:P31 wd:Q835714 } UNION  # Oblast of Russia
  { ?subject wdt:P31 wd:Q41162 } UNION  # Republic of Russia
  { ?subject wdt:P31 wd:Q183342 } UNION  # Federal city of Russia
  { ?subject wdt:P31 wd:Q831740 } UNION  # Krai of Russia
  { ?subject wdt:P31 wd:Q309166 } UNION # Autonomus oblast of Russia
  { ?subject wdt:P31 wd:Q184122 } # Autonomus okrug of Russia
  
  FILTER NOT EXISTS {?subject wdt:P31 wd:Q19953632} # Former administrative territorial entity
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
  
  ?subject wdt:P47 ?sharesBorderWith 
}

SPARQL-запрос, 467 записей.

Полученное число формируется путем сложения количества соседних территорий для всех субъектов России. Результат работы скрипта - граф, отображающий соседние субъекты, представлен на рисунке ниже. На нем отчетливо видно изолированную компоненту, которая является Калининградской областью.

Результат работы скрипта - граф, отображающий соседние субъекты. Вершинами графа являются наименования субъектов и стран. Два любых соседствующих субъекта соединяются ребром

Полнота Викиданных[править]

Построим список субъектов РФ с пустым свойством "shares border with" (граничит с):

Используются:

#List of "subjects of Russia" without `shares border with`. 
SELECT ?subject ?subjectLabel ?sharesBorderWith ?sharesBorderWithLabel
WHERE
{
  { ?subject wdt:P31 wd:Q835714 } UNION  # Oblast of Russia
  { ?subject wdt:P31 wd:Q41162 } UNION  # Republic of Russia
  { ?subject wdt:P31 wd:Q183342 } UNION  # Federal city of Russia
  { ?subject wdt:P31 wd:Q831740 } UNION  # Krai of Russia
  { ?subject wdt:P31 wd:Q309166 } UNION # Autonomus oblast of Russia
  { ?subject wdt:P31 wd:Q184122 } # Autonomus okrug of Russia
  
  FILTER NOT EXISTS {?subject wdt:P31 wd:Q19953632} # Former administrative territorial entity
  MINUS { ?subject  wdt:P47 [] } . #Shares border with 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
   
}

SPARQL-запрос, ноль записей.

Таким образом, на Викиданных нет изолированных субъектов РФ, что соответствует действительности.
Информация, необходимая для решения задачи:

  • По данным Конституции Российской Федерации Россия состоит из 85 субъектов — республик, краёв, областей, городов федерального значения, автономной области, автономных округов[1].
  • В этой задаче не учитываются субъекты, которые на текущий момент времени не входят в состав РФ (например: Читинская область (Q182902)), поскольку они не являются экземплярами объектов "oblast of Russia", "republic of Russia", "federal city of Russia", "krai of Russia", "autonomus okrug of Russia", "autonomus oblast of Russia", а относятся к объекту "former administrative territorial entity" (бывшая административно-территориальная единица). Для данной задачи важно то, что общее количество субъектов РФ с учётом бывших административно-территориальных единиц увеличится.(Получаем 94 объекта после выполнения SPARQL-запроса).
  • По данным категории "Субъекты Российской Федерации" Русской Википедии существует 85 субъектов РФ.
  • По данным категории "Federal subjects of Russia" Английской Википедии так же существует 85 субъектов РФ.

Численность населения отдельных субъектов Российской Федерации[править]

Обозначим на карте субъекты Российской Федерации, разделив их на 6 групп по количеству населения. Субъекты, принадлежащие одной группе, будут отображаться на карте одним цветом, а именно:

  • субъекты с количеством населения менее 500000 обозначаются синим цветом
  • субъекты с количеством населения более 500000, но менее 1000000 обозначаются оранжевым цветом
  • субъекты с количеством населения более 1000000, но менее 3000000 обозначаются зеленым цветом
  • субъекты с количеством населения более 300000, но менее 8000000 обозначаются красным цветом
  • субъекты с количеством населения более 800000, но менее 10000000 найдены не были
  • субъекты с количеством населения более 1000000 обозначаются фиолетовым цветом

Используются:

#Map of `population` "subject of Russia"
#defaultView:Map
SELECT DISTINCT ?subject ?subjectLabel (SAMPLE(?location) AS ?location) (MAX(?population) AS ?population) (SAMPLE(?layer) AS ?layer)
WHERE
{
  {
    { ?subject wdt:P31 wd:Q835714 } UNION  # Oblast of Russia
  { ?subject wdt:P31 wd:Q41162 } UNION  # Republic of Russia
  { ?subject wdt:P31 wd:Q183342 } UNION  # Federal city of Russia
  { ?subject wdt:P31 wd:Q831740 } UNION  # Krai of Russia
  { ?subject wdt:P31 wd:Q309166 } UNION # Autonomus oblast of Russia
  { ?subject wdt:P31 wd:Q184122 } # Autonomus okrug of Russia
  }   
  ?subject wdt:P625 ?location .
  ?subject wdt:P1082 ?population .
  FILTER NOT EXISTS {?subject wdt:P31 wd:Q19953632}  # former administrative territorial entity
  BIND(
    IF(?population < 500000, "менее 500000",
    IF(?population < 1000000, "500000 - 1000000",
    IF(?population < 3000000, "1000000 - 3000000",
    IF(?population < 8000000, "3000000 - 8000000",
    IF(?population < 10000000, "8000000 - 10000000",
    "более 10000000")))))
    AS ?layer).
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
GROUP BY ?subject ?subjectLabel
ORDER BY ?population

SPARQL-запрос, 85 записей.

Результат работы скрипта представлен на рисунке ниже.

Карта субъектов Российской Федерации, разделенных на 6 групп по количеству населения и отмеченных разными цветами в зависимости от группы, в которую субъект входит

Будущая работа[править]

  1. Выстроить все субъекты Российской Федерации в порядке убывания количества территорий, с которыми они граничат. Для наглядности можно построить диаграмму. На основании полученных данных написать свое предположение о том, почему одни субъекты имеют больше соседей, а другие — меньше.
  2. Найти субъекты Российской Федерации, которые граничат с зарубежными странами. Отметить эти субъекты на карте.
  3. Сгруппировать все субъекты Российской Федерации по часовым поясам, в которых они находятся. Определить общую численность населения для каждой из групп, на основании чего построить пузырьковую диаграмму.

Упражнения[править]

1

Этот субъект, расположенный на северо-западе России, возник в 1923 году. Он граничит с Ленинградской, Вологодской, Архангельской и Мурманской областью. Также граничит с Финляндией на западе.
Выберите флаг того субъекта, который подходит под прочитанное вами описание.

Flag of Leningrad Oblast.svg
Flag of Moscow oblast.svg
Flag of Karelia.svg
Flag of Murmansk Oblast.svg

2

Выберите, какие из представленных субъектов на текущий момент входят в состав Российской Федерации, а какие-нет.

Входит Не входит
Республика Адыгея
Камчатский край
Читинская область
Чукотский автономный округ

3

О флаге какого субъекта идет речь:
«Флаг этого субъекта представляет собой прямоугольное полотнище с отношением ширины к длине 2:3, красного цвета с двусторонним изображением в верхнем ближнем к древку углу основного элемента герба этого субъекта — развёрнутого к древку Святого Георгия Победоносца. Габаритная ширина изображения основного элемента герба на флаге этого субъекта составляет 1/5 часть длины полотнища флага».



SPARQL-запросы с ответами:

Примечания[править]

  1. Конституция Российской Федерации, 1993

Ссылки[править]