Сравнительный анализ населённых пунктов по числу жителей
в разных странах
Andrew Krizhanovsky1 and Anna Eparskaya2
1
Institute of Applied Mathematical Research of the Karelian Research Centre of the
Russian Academy of Sciences
2
Petrozavodsk State University
20 декабря 2017 г.
Аннотация
Викиданные представляют собой базу структурированных данных. В статье исследуется объект Викиданных “населённый пункт” (human settlement) и его свойства. В каждом из разделов представлены задачи, решённые с помощью SPARQL-запросов. В их числе: нахождение экземпляров объекта “населённый пункт” (human settlement), построение упорядоченного списка стран по суммарному количеству населения, проживающего в “населённых пунках”
(human settlement), и списка объектов, сопутствующих “населённым пунктам” (human settlement) в свойстве “экземпляр”
(instance of). Также построена диаграмма, показывающая долю населения страны, проживающего в “населённых пунктах” (human settlement). Диаграмма показывает, что высокий процент населения, проживающих в “населённых пунках”
(human settlement), приходится на менее промышленные страны, в то время как маленький процент населения, проживающих в “населённых пунках” (human settlement), имеют индустриальные страны. Кроме того, описан анализ полноты
Викиданных на основе решённых задач. На основании исследования полноты Викиданных устанавливается, что для решения проблем полноты Викиданных необходимо прорабатывать, то есть заполнять свойствами существующие данные.
Поэтому для улучшения результатов решения вышеописанных задач отдельные объекты были дополнены свойством
“экземпляр” (instance of).
1
Экземпляры объекта ”Населённый пункт”
• Объект: human settlement (Q486972).
• Свойство: instance of (P31).
Построим список всех населённых пунктов.
1
2
3
4
5
6
7
# 20.10.2017
SELECT ?hum ? humLabel
WHERE
{
?hum wdt : P31 wd : Q486972 . # i n s t a n c e s o f human s e t t l e m e n t
SERVICE w i k i b a s e : l a b e l { bd : s e r v i c e P a r a m w i k i b a s e : l a n g u a g e " en " . }
}
Листинг 1: Список населённых пунктов
SPARQL-запрос, 411393 записей.
1
Наиболее полными и проработанными населенными пунктами на Викиданных являются: Antakya,
General Roca, Padre Las Casas.
Почти пустыми и малоинформативными населенными пунктами оказались: Belomorsk, Segezha, Yanishpole.
Произведено объединение дублей объектов Belomorsk c Belomorsk, Segezha c Segezha, Yanishpole c
Yanishpole.
2
Список стран по суммарному количеству населения
Построим упорядоченный список стран по суммарному количеству населения, проживающего в "населённых пунктах".
1
2
3
4
5
6
7
# 26.10.2017
SELECT ? c o u n t r y L a b e l (SUM( ? p o p u l a t i o n ) a s ? sumPopulation )
WHERE
{
?hum wdt : P31 wd : Q486972 ;
# i n s t a n c e s o f human s e t t l e m e n t
wdt : P17 ? c o u n t r y ;
wdt : P1082 ? p o p u l a t i o n .
8
9
10
11
12
SERVICE w i k i b a s e : l a b e l { bd : s e r v i c e P a r a m w i k i b a s e : l a n g u a g e " en " . }
}
GROUP BY ? c o u n t r y ? c o u n t r y L a b e l
ORDER BY DESC ( ? sumPopulation )
Листинг 2: Список стран по суммарному числу населения
SPARQL-запрос, 161 записей.
Для группирования населённых пунктов по странам, используем команду GROUP BY:
1
GROUP BY ? c o u n t r y ? c o u n t r y L a b e l
Пузырьковая диаграмма выше показывает соотношение стран по количеству населения в "населённых
пунктах". Результат запроса в виде диаграммы показывает, что наибольшее количество населения
проживает в объектах "населённый пункт"в таких странах, как: Бразилия (12 млн), Пакистан (10 млн),
Мексика (8 млн), Йемен (8 млн), Индия (7 млн), Бангладеш (7 млн). Эти страны имеют климатические
и географические условия для комфортного проживания в населённых пунктах.
2.1
Проверка правильности выполнения скрипта
Проверим правильность подсчётов вышеописанного запроса, который строит список стран по суммарному числу населения. Для этого напишем скрипт, где для страны с самым маленьким результатом
суммарного числа населения можно увидеть список поселений с количеством жителей. Запрос показал, что это страна Черногория, следовательно, получим список населённых пунктов и численность
населения населённых пунктов Черногории.
1
2
3
4
5
6
7
# 26.10.2017
SELECT ? humLabel ?hum ? p o p u l a t i o n
WHERE
{
?hum wdt : P31 wd : Q486972 ; # i n s t a n c e s o f human s e t t l e m e n t
wdt : P17 wd : Q236 ;
# Montenegro
wdt : P1082 ? p o p u l a t i o n .
8
9
10
}
SERVICE w i k i b a s e : l a b e l { bd : s e r v i c e P a r a m w i k i b a s e : l a n g u a g e " en " . }
Листинг 3: Список населенных пунктов и их численность население в Черногории
2
Рис. 1: Пузырьковая диаграмма стран по суммарному количеству населения, проживающего в объектах
типа “населённый пункт”
SPARQL-запрос, 1 запись.
Проверка прошла успешно, так как данный скрипт подтвердил результат численности населения, проживающего в "населённых пунктах"Черногории.
2.2
Полнота Викиданных
Населённый пункт — это общее название мест с постоянными жителями. По версии редакторов в понятие насёленный пункт входят города, села, деревни и другие. Полный список можно увидеть в разделе
4. Точной информации о количестве населённых пунктов в мире не было найдено. Поэтому проверим
полноту населённых пунктов, которые есть в Викиданных и которые использовались для решения
задачи. Была поставлена задача: построить упорядоченный список стран по суммарному количеству
населения, проживающего в "human settlement". Для этого построим SPARQL-запрос, который выведет населённые пункты с незаполненным свойством ’population’. Запрос показал, что таких населённых
пунктов 372997. Значит из 411393 (исходя из запроса) только у 38396 или 9,3% населенных пунктов
мира указано количество населения (свойство ’population’). А теперь посмотрим населённые пункты,
у которых не указана принадлежность к какой-либо стране — SPARQL-запрос. Таких нашлось 8427
объектов. Поэтому в результате решения данной задачи получились неполная картина о суммарном
количестве населения в населённых пунктах по странам.
Рассмотрим населённые пункты России. По данным проекта "Населённые пункты России/Статистика"
Русская Википедия содержит приблизительно 75000 статей о населённых пунктах России. По переписи
2010 года в России 155 510 населённых пунктов. Проверим, сколько объектов содержится в Викиданных
о населённых пунктах России с помощью следующего SPARQL-запрос. В результате получено 4113
объектов, что составляет 2,6% от общего числа населённых пунктов по переписи за 2010 год. Таким
образом, в Викиданных содержится слишком мало информации о населённых пунктах России.
Итак, степень заполненности Викиданных по населённым пунктам низкая. А именно, у некоторых
3
городов, поселков, деревень и других населённых пунктов на Викиданны отсутствует свойство "экземпляр"(instance of), значением которого может быть "населённый пункт"(human settlement). Кроме
того, есть почти пустые и плохо проработанные объекты. Для решения этих проблем необходимо заполнять эти свойства и связывать между собой объекты Викиданных.
2.3
Заполнение Викиданных
В ходе заполнения объектов Викиданных было решено заполнять свойство "экземпляр"(instance of).
Были внесены данные о 100 объектах России, которые не имели значения "населённый пункт"(human
settlement) в свойстве "экземпляр"(instance of).
На 25.10.2017 Викиданные содержали 4207 объектов о населённых пунктах России, что составляло 2,6%
от общего числа населённых пунктов по переписи за 2010 год и 5,6% от данных Русской Википедии.
Это можно увидеть с помощью следующего SPARQL-запроса. Результат - 4207 объектов.
3
Доля населения страны, проживающего в ”human settlement”
Построим упорядоченный список стран по проценту населения, проживающего в "населённых пунктах к числу жителей в стране. проживающего в "населённых пунктах"
1
2
3
4
5
6
7
8
9
10
11
# 23.11.2017
SELECT ? c o u n t r y L a b e l (SUM( ? p o p u l a t i o n / ? pop ) a s ? p r o p o r t i o n P o p u l a t i o n ) ( ?
p r o p o r t i o n P o p u l a t i o n ∗ 100 a s ? p e r c e n t P o p u l a t i o n )
WHERE {
?hum wdt : P31 wd : Q486972 .
# i n s t a n c e s o f human s e t t l e m e n t
?hum wdt : P17 ? c o u n t r y .
# country
?hum wdt : P1082 ? p o p u l a t i o n . # p o p u l a t i o n
? c o u n t r y wdt : P1082 ? pop .
# population in the country
SERVICE w i k i b a s e : l a b e l { bd : s e r v i c e P a r a m w i k i b a s e : l a n g u a g e " en " . }
}
GROUP BY ? c o u n t r y ? c o u n t r y L a b e l
ORDER BY DESC ( ? p e r c e n t P o p u l a t i o n )
Листинг 4: Доля населения страны
SPARQL-запрос, 158 записей.
Рис. 2: Диаграмма доли населения страны, проживающего в “населённых пунктах”
Кривая на рисунке позволяет увидеть для каждой отдельной страны отношение количества проживающих в "населённых пунктах"к числу жителей в стране. Из графика видно, что наиболее высокий
процент приходится на следующие страны: Кирибати (78%), Ниуэ (70%), Греция (53%), Тувалу (48%),
4
Коморы (43%), Маврикий (42%). Интересно заметить, что в основном это маленькие островные государства. Вероятно, большая часть жителей этих стран сконцентрирована в населённых пунктах.
Рассмотрим отдельно страны большой восьмёрки: Россия (2.98%), США (1.76%), Япония (0.80%), Канада (0.26%), Франция (0.20%), Германия (0.24%), Великобритания (0.18%), Италия (0.07%). Отметим,
что это страны промышленно развитые.
Предположим следующую гипотезу: высокий процент населения страны, проживающего в "населённых пунктах указывает на более аграрную страну. В действительности имеется возможность развития
сельского хозяйства на данных территориях. Исходя из диаграммы и запроса видно, что наиболее
высокий процент населения страны, проживающего в "населённых пунктах приходится на островные,
южные, жаркие страны, в которых, по-видимому, менее развита промышленность (маленькая территория, небольшое количество населения, удаленность от материков). А индустриальные страны (большой
восьмёрки) имеют очень низкий процент населения страны, проживающего в "населённых пунктах".
Следовательно, предполагаемая гипотеза подтверждена.
4
Cписок объектов, сопутствующих ”human settlement” в ”instance
of”
Построим список объектов, сопутствующих "human settlement"в свойстве "instance of". сопутствующих
"населённым пунктам"
1
2
3
4
5
6
7
8
9
# 20.10.2017
SELECT ? i n s t L a b e l (COUNT( ?hum) a s ?sumHum)
WHERE
{
?hum wdt : P31 wd : Q486972 ; # i n s t a n c e s o f human s e t t l e m e n t
wdt : P31 ? i n s t .
# other objects in instance
SERVICE w i k i b a s e : l a b e l { bd : s e r v i c e P a r a m w i k i b a s e : l a n g u a g e " en " . }
}
GROUP BY ? i n s t ? i n s t L a b e l
Листинг 5: Cписок объектов
SPARQL-запрос, 610 объектов, сопутствующих "human settlement"в "instance of".
Так как вышеописанный запрос слишком долго выполняется и выводится сообщение об ошибке: "Query
timeout limit reached сделаем его более лёгким. Для этого уменьшим число перебираемых объектов.
Во-первых, выключим из рассмотрения такие населённые пункты, которые имеют в списке "instance
of"только human settlement. Результат не ухудшится, так как в него не будут включёны экземпляры только типа "human settlement". С этой целью внесём в наш скрипт фильтр для отбора нужных
поселений.
Во-вторых, не будем рассматривать такие объекты переменной ?inst, которые имеют свойство "country".
Это позволит отсечь сотни типов населённых пунктов специфичных для отдельных стран, например,
административно-территориальная единица России.
Эти ограничения позволили выполнить запрос по всем странам мира за приемлемое время (87 мс).
сопутствующих "населённым пунктам"
1
2
3
4
5
6
# 15.11.2017
SELECT ? i n s t L a b e l (COUNT( ?hum) a s ?sumHum)
WHERE
{
?hum wdt : P31 wd : Q486972 ; # i n s t a n c e s o f human s e t t l e m e n t
wdt : P31 ? i n s t .
# other objects in instance
5
7
8
9
10
11
12
MINUS {? i n s t wdt : P17 [ ] } . # w i t h o u t c o u n t r y
FILTER( ? i n s t != wd : Q486972 ) . # w i t h o u t human s e t t l e m e n t
SERVICE w i k i b a s e : l a b e l { bd : s e r v i c e P a r a m w i k i b a s e : l a n g u a g e " en " . }
}
GROUP BY ? i n s t ? i n s t L a b e l
Листинг 6: Cписок объектов
SPARQL-запрос, 355 объектов.
В число таких объектов входят:
1. Cёла (village) - 2844.
2. Муниципалитеты (municipality) - 1181.
3. Деревни (hamlet) - 662.
4. Археологические памятники (archaeological site) - 425.
5. Местные поселения (locality) - 425.
6. Разрушенные города (destroyed city) - 423.
7. Города (city) - 322.
8. Малые города (town) - 277.
9. Заброшенные деревни (abandoned village) - 254.
10. Внутренние районы (quarter) - 207.
6
Список литературы
.
.
.
.
Проект:Населённые пункты России/Статистика — Википедия. https://ru.wikipedia.org/wiki/ URL
https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B5%D0%BA%D1%82:%D0%9D%D0%B0%D1%81%
D0%B5%D0%BB%D1%91%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BF%D1%83%D0%BD%D0%BA%D1%82%D1%8B_%D0%A0%
D0%BE%D1%81%D1%81%D0%B8%D0%B8/%D0%A1%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA%
D0%B0. Accessed on Tue, December 19, 2017.
Населённые пункты в России — Википедия.
https://ru.wikipedia.org/wiki/ URL https:
//ru.wikipedia.org/wiki/%D0%9D%D0%B0%D1%81%D0%B5%D0%BB%D1%91%D0%BD%D0%BD%D1%8B%D0%
B5_%D0%BF%D1%83%D0%BD%D0%BA%D1%82%D1%8B_%D0%B2_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8.
Accessed on Tue, December 19, 2017.
.
7
Отзывы:
Авторизуйтесь, чтобы оставить отзыв