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

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

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

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

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

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

#added 2017-02
#List of `instances of` "national park" 
SELECT ?park ?parkLabel
WHERE
{
    ?park wdt:P31 wd:Q46169.
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}

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

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

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

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

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

#added 2017-03
#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. #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-запрос 612 записей.

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

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


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

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


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

#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 записей.

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

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


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

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

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

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

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

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

#List of national parks in Russia
#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 "en"}
}

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

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

Построим список национальных парков России, используя подкласс (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 "en"}
}

SPARQL-запрос 44 записи.

Полученный список состоит из 44 парков (рис. 4).


Обратимся к статье на Русской Википедии. Список национальных парков России включает 49 парков.

В книге "Вокруг Света. Национальные парки России. Поволжье и Северный Кавказ. Путеводитель" говорится на момент написания (2007 год) о действующих 35 национальных парках России.

Сайт dic.academic описывает 41 национальный парк. Такое количество парков может быть связано с тем, что имеющиеся данные обновлялись довольно давно.

Викигид показывает результат в 40 национальных парков в России.

На просторах английской Википедии можно найти результат в 48 национальных парков (National_parks_of_Russia).

Заполнение 100 объектов[править]

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

SPARQL-запрос 283 записи.

#List of national parks with unfilled property 'location' 
SELECT ?park ?parkLabel ?location
WHERE
{
  ?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 "en"}
}

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

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

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

#List of national parks 
#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 "en"}
}

После выполнения листинга на карте отобразилось 1417 национальных парка. Необходимо заполнить поле 'location', чтобы количество выводимых парков оказалось больше.

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

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


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

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

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

1

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

Ущелье Донисар.jpg Алания
Buzuluksky Bor national park.jpg Бузулукский бор
Долина Роз (Кисловодск).JPG Кисловодский
Baikal north.jpg Прибайкальский

2

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

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

3

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

1 место (1919),2 место (1968),3 место (1971),4 место (2003)
Congaree swamp.jpg Конгари
Acadia National Park 02.JPG Акадия
Double-O-Arch Arches National Park 2.jpg Арчес
Redwood National Park, fog in the forest.jpg Редвуд

4

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

5

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

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


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

Литература[править]

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