Перейти к содержанию

Программирование Викиданных/Национальный парк

Материал из Викиверситета

Данная статья посвящена исследованию объекта Викиданных "Национальный парк". С помощью SPARQL-запросов, вычисляемых на объектах типа "национальный парк" в Викиданных, решены такие задачи: выведен список всех ныне существующих национальных парков, список национальных парков, упорядоченных по дате создания, диаграмма парков, упорядоченных по количеству за разные годы и по странам мира, а так же карта всех национальных парков, построенная на основе географических координат. Кроме того, сделаны выводы по поводу полноты Викиданных по данной теме.

Экземпляры объекта "Национальный парк"

[править]

Национальный парк - территория, где в целях охраны окружающей среды ограничена деятельность человека. В дальнейшем, возможно, будет использовано сокращение слова "национальный парк" до "парк" с целью лучшего понимания текста.

Построим список всех национальных парков.

#List of instances of "national park" 
SELECT ?park ?parkLabel
WHERE
{
    ?park wdt:P31 wd:Q46169. # instance of national park
    SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en" }
}

SPARQL-запрос 1665 записей (2017) и 2251 записей (2022)

Среди отечественных парков в Викиданных больше всего свойств по данным ProWD у Национального заповедника «Лосиный остров» (14 свойств). Лидером по паркам всего мира является Fort Stevens (31 свойство).

👍Наиболее полными и проработанными национальными парками на Викиданных являются: Тейде, Тингветлир, Национальный парк имени Александра Гумбольдта

👎Почти пустыми и малоинформативными национальными парками оказались: Припышминские Боры, Смольный (национальный парк), Хвалынский национальный парк

Диаграмма парков, упорядоченных по количеству за разные годы и по странам мира

[править]

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

#defaultView:BarChart
#underscore is for using a variable more than 1 time 
SELECT DISTINCT  (SAMPLE(?year) AS ?year) (COUNT(?year) AS ?count) (SAMPLE(?parkLabel) AS ?parkLabel) WHERE {
  ?object (wdt:P31) wd:Q46169. #instance of national park
  BIND(str(YEAR(?inception)) AS ?year) #definition of year
  ?object wdt:P571 ?inception. #definition of inception
  ?object wdt:P17 ?country. #parks belong to country
  ?country rdfs:label ?parkLabel.
  FILTER((LANG(?parkLabel)) = "ru") #filter in parkLabel = ru
}
GROUP BY ?inception ?country #group by inception + country
ORDER BY ?year ?inception #order by year + inception

SPARQL-запрос 612 записей (2017) и 1042 записей (2022).

Данный скрипт выводит количество созданных парков в определенные года, а так же страны, в которых они были созданы (рис. 1). Например, столбик голубого цвета за 2006 год означает, что было создано 25 национальных парков в Австралии.

Рис. 1: Гистограмма парков, упорядоченных по количеству за разные года и по странам мира (2021 г)


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

Рис. 2: Гистограмма количества новых парков в странах мира, упорядоченная по годам их создания (2017 г.)


Недостаток полученного скрипта в том, что, возможно, не все национальные парки мира выведутся. Это связано с тем, что у национальных парков мира существует подкласс национальных парков по странам (например, национальные парки Норвегии). Дополним предыдущую диаграмму, включив в нее эти подклассы.

#defaultView:BarChart
SELECT DISTINCT  (SAMPLE(?year) AS ?year) (COUNT(?year) AS ?count) (SAMPLE(?parkLabel) AS ?parkLabel) WHERE {
  ?object (wdt:P31/wdt:P279*) wd:Q46169. #instance of national park of .. (Russia as example)
  BIND(str(YEAR(?inception)) AS ?year) #definition of year
  ?object wdt:P571 ?inception. #definition of _inception
  ?object wdt:P17 ?country. #definition of _country
  ?country rdfs:label ?parkLabel.
  FILTER((LANG(?parkLabel)) = "ru") #filter in parkLabel = ru
}
GROUP BY ?inception ?country #group by inception + country
ORDER BY ?year ?inception #order by year + inception

SPARQL-запрос 980 записей (2017) и 1519 записей (2022).

Можно заметить по (рис. 3), что количество национальных парков выросло.

Рис. 3: Гистограмма количества новых парков в странах мира, упорядоченная по годам и по странам мира (2017 г.)


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

Площади парков

[править]

Продолжаем анализ парков России и всего мира. Но теперь будем считать не количество, а качество. Мерой качества выступит площадь парка. Сначала подсчитаем, у скольких парков в мире не заполнено свойство "площадь", в абсолютных числах и в процентах.

#List of national parks with unfilled property 'area' 
SELECT ?park ?parkLabel
WHERE
{
  ?park wdt:P31 wd:Q46169. #instance of national park
  FILTER NOT EXISTS { ?park wdt:P2046 [] } #if property area is unfilled
  SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en"}
}

SPARQL-запрос

В результате выполнения данного скрипта мы получили 586 парков. Согласно предыдущим данным, всего в мире 2251 парков. Получается, свойство "площадь" не заполнено у 26,03% парков.

Теперь проанализируем аналогично национальные парки России. Будем считать, у скольких парков в России не заполнено свойство "площадь".

#List of national parks in Russia with unfilled property 'area' 
SELECT ?park ?parkLabel
WHERE
{
  ?park wdt:P31 wd:Q1969226. #instance of national park in Russia
  FILTER NOT EXISTS { ?park wdt:P2046 [] } #if property area is unfilled
  SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en"}
}

SPARQL-запрос

В результате выполнения данного скрипта мы получили 7 парков. Всего в России 65 парков. Получается, свойство "площадь" не заполнено у 10,77% парков России, что гораздо меньше в сравнении по паркам всего мира.

Хотелось бы проверить, сколько парков в мире было закрыто по Викиданным:

#List of national parks with property 'closure date' 
SELECT ?park ?parkLabel ?date
WHERE
{
  ?park wdt:P31 wd:Q46169. #instance of national park
  ?park wdt:P576 ?date #display date
  SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en"}
}

SPARQL-запрос

Поскольку парки обычно не закрывают (в результате выполнения скрипта выяснили, что число мало - 7 результатов), то будем считать, что раз парк открыли, то площадь добавилась.

Построим диаграмму роста площади парков по странам по годам. На странице некоторых национальных парков в Викиданных указано не одно, а несколько значений площади, например как мы увидели в результатах промежуточного скрипта в парке Ондердален: 135 кв. км, 133.996 кв. км и 13,399.62468 гектаров. Второе и третье значение почти равны, но в разных единицах измерения. Мы видим три числа: 133996246.8, 135000000, 133996000 (числа уже переведены в км). Мы можем себе упростить задачу и взять максимальное значение из всех возможных. То есть оптимистичное предположение, что площади парков или постоянны или увеличиваются. Поэтому мы использовали функцию MAX(): (MAX(?area) AS ?maxArea). Для парка Ондердален максимальной площадью будет 135000000 (или 135 кв. км). В результате получим измененный скрипт:

#defaultView:BarChart
#diagram of the growth of the area of parks by country by year.
SELECT DISTINCT (SAMPLE(?year) AS ?year) (MAX(?area) AS ?maxArea)  (SAMPLE(?countryLabel) AS ?countryLabel)
WHERE
{
  ?park wdt:P31 wd:Q46169. #instance of national park
  BIND(str(YEAR(?inception)) AS ?year) #definition of year
  ?park wdt:P571 ?inception. #definition of inception
  ?park wdt:P17 ?country. #park belongs to country 
  # Get the area of the park (Use the psn: prefix to normalize the values to a common unit of area)
  ?park p:P2046/psn:P2046/wikibase:quantityAmount ?area.
  ?country rdfs:label ?countryLabel.
  FILTER((LANG(?countryLabel)) = "en") #filter in parkLabel = en
  FILTER EXISTS { ?park wdt:P2046 [] } #if property area is filled
  FILTER(?year != "1") #except the mistakes
}
GROUP BY ?area ?country
ORDER BY DESC(?maxArea)

SPARQL-запрос

В строке 11 мы использовали префикс psn ?park p:P2046/psn:P2046/wikibase:quantityAmount ?area. для нормализации значений к общей единице площади. Так же мы отсекаем ошибочные данные по годам: FILTER(?year != "1"). Благодаря функции максимального значения MAX() берется максимальное по площади значение. В группировке на строке 17 объекты ?park, группируются по странам и площадям командой GROUP BY ?area ?country. Для представления результатов в виде столбчатой диаграммы используется стиль отображения BarChart. Горизонтальной оси на графике отвечает переменная ?year.

График площадей национальных парков мира, начиная с 1593-х гг. представлен на столбчатой диаграмме ниже:

Рис. 4: Диаграмма роста площади национальных парков по странам по годам (2022 г.)


На получившейся диаграмме мы видим прямоугольники разных цветов, где каждому цвету соответствуют парки определенной страны, а высота прямоугольника (ось ординат) - площадь парков этой страны, описанных в Викиданных за конкретные года (расположенные по оси абсцисс). Как можно заметить по изображению (рис. 4), с большим отрывом в столбце по площади лидирует Норвегия (к примеру, на рисунке фиолетовым цветом отображаются парки Норвегии, и за 2006 год мы видим прямоугольник необычайно большого размера).

Для изучения этого момента подробнее выведем список национальных парков Норвегии:

#List of Norway National parks (view maximum area)
SELECT DISTINCT (SAMPLE(?park) AS ?park) (SAMPLE(?parkLabel) AS ?parkLabel) (MAX(?area) AS ?maxArea) (SAMPLE(?year) AS ?year) 
WHERE
{
  ?park wdt:P31 wd:Q46169. #instance of national park
  ?park wdt:P571 ?inception. #definition of inception
  BIND(str(YEAR(?inception)) AS ?year) #definition of year
  ?park wdt:P17 wd:Q20. #view only Norway parks
  ?park p:P2046/psn:P2046/wikibase:quantityAmount ?area.
  ?park rdfs:label ?parkLabel.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en"}
  FILTER EXISTS { ?park wdt:P2046 [] } #if property area is filled
}
GROUP BY ?park
ORDER BY DESC(?maxArea)

SPARQL-запрос

Из графика мы видим, что действительно, большие по площади парки расположены на территории Норвегии (13,36% от площади всех национальных парков мира).

Полнота Викиданных по паркам

[править]

Существует много национальных парков мира. Однако, скорее всего, далеко не у всех заполнено поле 'географические координаты' (англ. 'location'). Построим список национальных парков, у которых заполнены географические координаты.

#defaultView:Map
#Map of national parks that have location filled in
SELECT ?park ?parkLabel ?location
WHERE
{
  ?park wdt:P31 wd:Q46169. # instance of national park
  ?park wdt:P625 ?location #display location
  SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en"}
}

SPARQL-запрос 1405 записей (2017) и 2359 записей (2022).

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

#Map of national parks in Russia that have location filled in
#defaultView:Map
SELECT ?park ?parkLabel ?location
WHERE
{
  ?park wdt:P31 wd:Q46169. #instance of national park
  ?park wdt:P17 wd:Q159. #country = Russia
  ?park wdt:P625 ?location #display location
  SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en"}
}

SPARQL-запрос 7 записей (2017) и 6 записей (2022).

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

Построим список национальных парков России, используя подкласс (national park in Russia).

#List of national parks in Russia
#defaultView:Map
SELECT ?park ?parkLabel ?location
WHERE
{
  ?park wdt:P31 wd:Q1969226. #instance of national park in Russia
  ?park wdt:P625 ?location #display location
  SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en"}
}

SPARQL-запрос 44 записи (2017) и 65 записей (2021).


Количество национальных парков России неизменно меняется. В книге "Вокруг Света. Национальные парки России. Поволжье и Северный Кавказ. Путеводитель" [1] говорится о действующих 35 национальных парках России. Согласно другим статьям, данные изменились, например, Джанджугазова Е. А. в своей работе говорит о том, что "В настоящее время в РФ функционирует 47 национальных парков, число которых с каждым годом растет" [2].

Викигид показывает результат в 40 национальных парков в России (данные 2010 года). Сайт dic.academic описывает 41 национальный парк. Такое количество парков может быть связано с тем, что имеющиеся данные обновлялись довольно давно (2015 год).

Обратимся к статье на Русской Википедии. Список национальных парков России включает 64 парка. На просторах английской Википедии можно найти таблицу, содержащую список в 59 национальных парков (National_parks_of_Russia). По нашим сведениям получается так, что все национальные парки представлены в Викиданных.

Парки без указанных географических координат

[править]

Информация на Викиданных говорит о том, что не у всех парков заполнено поле 'географические координаты' (англ.'location'). Напишем скрипт, который выводит список всех национальных парков с незаполненным полем 'location'.

{
  ?park wdt:P31 wd:Q46169. #instance of national park
  FILTER NOT EXISTS { ?park wdt:P625 [] } #if property location is unfilled
  SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en"}
}
#List of national parks with unfilled property 'location' 
SELECT ?park ?parkLabel ?location
WHERE

SPARQL-запрос 283 записи (2017) и 82 записей (2022).

Данный скрипт построил список из 82 национальных парков с незаполненным полем 'location'.

Напишем скрипт, который построит список из всех национальных парков, у которых заполнено поле 'location'.

#List of national parks with filled property 'location' 
#defaultView:Map
SELECT ?park ?parkLabel ?location
WHERE
{
  ?park wdt:P31 wd:Q46169. #instance of national park
  ?park wdt:P625 ?location #display location
  SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en"}
}

SPARQL-запрос 1417 записей (2017) и 2359 записей (2022).


После выполнения листинга на карте отобразилось 2359 национальных парка. Как можно заметить по изображению (рис. 5), количество выведенных парков стало больше. А страной с наибольшим количеством национальных парков (312) оказалась Австралия.

Рис. 5: Карта всех национальных парков, построенная на основе свойства 'географические координаты' (англ. 'location') (2021 г.)


Парки мира, являющиеся охраняемыми зонами

[править]

Согласно информации из Викиданных, у 1937 национальных парков имеется отметка о том, что они охраняются.

#List of national parks with filled property 'location' 
#defaultView:Map
SELECT ?park ?parkLabel ?location
WHERE
{
  ?park wdt:P31 wd:Q46169. #instance of national park
  FILTER EXISTS { ?park wdt:P814 [] } #if property "IUCN protected areas category" is filled
  ?park wdt:P625 ?location #display location
  SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en"}
}

SPARQL-запрос 1937 записей (2022 осень).

Представленный скрипт отображает на карте все национальные парки, у которых заполнено поле "IUCN protected areas category".

Будущая работа

[править]
  • Выведите на карте все парки мира, являющиеся охраняемыми зонами (с заполненным полем "IUCN protected areas category")
  • Выведите 10 стран, в которых количество национальных парков является наибольшим
  • Постройте гистограмму (Bar chart) национальных парков России по годам создания, посчитайте, какой год был "пиковым" (наибольшее количество парков), сравните с парками какой-либо другой страны
  • Найти субъект России, в котором находится наибольшее количество национальных парков.
  • Найти список самых молодых национальных парков России, к примеру, получивших статус после 2010 года.
  • Подсчитать и построить графики площадей национальных парков России, по отношению к национальным паркам всего мира.

Упражнения

[править]

1 Этот национальный парк был создан 13 февраля 1986 года. Располагается национальный парк в Иркутской области.
Выберите изображение того парка, который подходит под прочитанное вами описание.

Алания
Бузулукский бор
Кисловодский
Прибайкальский

2 Выберите, какие из представленных национальных парков располагаются на территории Российской Федерации, а какие - нет.

Располагается Не располагается
Земля леопарда
Национальный парк Тикаль
Национальный парк Бикин
Национальный парк Голубые Горы

3 Известно, что одними из самых живописных парков являются национальные парки США. В том числе, известны года создания этих парков: 1919, 1968, 1971, 2003.
Расположите данные парки в порядке возрастания даты их создания (1 место - самый старый парк, 4 место - самый новый).

1 место (1919),2 место (1968),3 место (1971),4 место (2003)
Конгари
Акадия
Арчес
Редвуд

4 О каком национальном парке идёт речь:
«Расположен в пределах типичной горно-таёжной области. Рельеф горный. В границах парка выделяются крупные орографические единицы: Святоносский хребет, Баргузинский хребет, Чивыркуйский перешеек и Ушканьи острова.»

5 Расставьте страны в порядке возрастания количества национальных парков:

1 2 3 4
Япония
Австралия
Индия
Индонезия


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

Примечания

[править]

Литература

[править]

Ссылки

[править]