Программирование Викиданных/Страны

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

Эта глава посвящена исследованию стран на основе базы знаний международного проекта Викиданные. С помощью SPARQL-запросов, вычисляемых на объектах типа ”страна” в Викиданных, получен список всех ныне существующих стран, выведен перечень стран, упорядоченных по дате создания, найден список этнохоронимов стран, построены пузырьковая диаграмма с формами правления стран и граф соседних стран. Рассмотрен вопрос полноты представления информации о странах в Викиданных.

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

Построим список всех стран на английском и русском языках.

#List of countries in English and Russian
SELECT ?country ?label_en ?label_ru
WHERE
{
    ?country wdt:P31 wd:Q6256.
    ?country rdfs:label ?label_en filter (lang(?label_en) = "en").
    ?country rdfs:label ?label_ru filter (lang(?label_ru) = "ru").
}

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

👍 Примерами наиболее полных и проработанных стран на Викиданных являются: Соединённые Штаты Америки, Канада, Испания

👎 Почти пустыми и малоинформативными странами были: Сахарская Арабская Демократическая Республика, Приднестровская Молдавская Республика, Косово

Возраст стран[править]

Построим список стран, отсортированных по дате основания страны (первом упоминании о стране).

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

#List of `instances of` "countries sorted by inception" 
SELECT ?country ?countryLabel ?inception
WHERE
{
    ?country wdt:P31 wd:Q6256.
    ?country wdt:P571 ?inception .
    
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}

ORDER BY (?inception)

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

В результате выполнения запроса получен список стран с датами их создания. Например, Абхазия (Q23334) - 1 января 0786, Россия (Q159) - 1 января 0862, Косово (Q1246) - 17 февряля 2008, Южный Судан (Q958) - 9 июля 2011. Годы, в которые было создано наибольшее количество стран - 1991 (17 стран), 1812 (6 стран) и 1918 (5 стран).

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

Проанализируем полноту Викиданных.

По данным "Общероссийского классификатора стран мира" на земле существует 251 страна[1].

В этой задаче не учитываются древние, уже не существующие государства (например: Ассирия (Q41137)), поскольку они являются экземпляром не объекта "country", а объекта "former country" (бывшие страны). Отметим, что количество бывших стран на порядок больше существующих ныне стран (см. SPARQL-запрос, возвращающий более двух тысяч таких стран).

По данным категории "Алфавитный список стран и территорий" Русской Википедии существует 252 страны(В ”Общероссийском классификаторе стран мира” недостает Косово).

По данным категории "List of sovereign states" Английской Википедии существует 206 стран.

Не всегда можно точно указать дату основания страны по разным причинам: отсутствие, недостаток или противоречие письменных источников. Например, основание Древнерусского государства связывают с призванием варяжского князя Рюрика в 862 году, но точной даты нет (объект Россия (Q159)). Так же некоторым современным странам предшествовали ряд других и дату образования какого из них считать за дату создания современной страны ‒ это вопрос открытый (например, Монголия (Q711)).

Страны с незаполненной датой основания[править]

Выведем список стран с пустым свойством "дата основания":

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

#List of `instances of` "countries without a inception" 
SELECT ?country ?countryLabel 
WHERE
{
    ?country wdt:P31 wd:Q6256. # country
    
    MINUS { ?country wdt:P571 [] } . #inception of country is empty
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}

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

Итак, на 6 марта 2017 года Викиданные содержали 100 из 198 записей о ныне существующих странах с неизвестным годом основания страны на русском языке.

Этнохоронимы на русском языке[править]

Этнохороним — название жителей определённой местности, соотнесённое с топонимом. Например, Россия – россияне, россиянин, россиянка, Чехия – чехи, чех, чешка.

Помимо географического мотиватора, новых лексемы, используемые для определения происхождения либо принадлежности, происходят так же от этнических, политических, религиозных характеристик людей. [2]

Название жителей может исходить от наименования различных объектов земной поверхности — гор, островов, континентов. Так же обозначение места происхождения людей может зависеть от политико-административного делению. Например, для обозначения гражданства; Украина — украинцы, Канада - канадцы. Внутригосударственное деление так же может породить новые наименования, Крым — крымчане.

Построим список стран у которых есть этнохоронимы на русском языке.

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

#List of countries with demonyms in Russian
SELECT ?country ?countryLabel 
WHERE
{
	?country wdt:P31 wd:Q6256.       #country
	?country wdt:P1549 ?demonym .    #demonym
	FILTER((LANG(?demonym)) = "ru")
	SERVICE wikibase:label { bd:serviceParam wikibase:language "ru" }
}

GROUP BY ?country ?countryLabel

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

На 19 марта 2017 года Викиданные содержали 28 из 198 стран с заполненными этнохоронимами на русском языке.

Cписок этнохоронимов[править]

Выведем список всех этнохоронимом на русском языке.

#List of demonyms in Russian
SELECT ?country ?countryLabel ?demonym
WHERE
{
	?country wdt:P31 wd:Q6256.      #country
	?country wdt:P1549 ?demonym .   #demonym
	FILTER((LANG(?demonym)) = "ru")
	SERVICE wikibase:label { bd:serviceParam wikibase:language "ru" }
}

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

На 19 марта 2017 года Викиданные содержат 83 заполненных этнохоронима.

Страны с незаполненными этнохоронимами[править]

Построим список стран, у которых нет этнохоронимов на русском языке.

#List of countries without demonyms in Russian
SELECT ?country ?countryLabel 
WHERE
{
	?country wdt:P31 wd:Q6256.              # country
	MINUS { ?country wdt:P1549 ?demonym.    # except with demonyms
            FILTER((LANG(?demonym)) = "ru") # in Russian
          }    
    
	SERVICE wikibase:label { bd:serviceParam wikibase:language "ru" }
}
GROUP BY ?country ?countryLabel

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

На 19 марта 2017 года Викиданные содержат 170 из 198 стран с незаполненными этнохоронимами.

После заполнения авторами статьи этнохоронимов число стран, у которых их нет на русском языке стало 69, а самих этнохоронимов теперь языке 276 (на 20 марта 2017 года).

Количество заполненных этнохоронимов у стран[править]

Выведем список стран, упорядоченный по количеству заполненных в Викиданных этнохоронимов.

#Count of demonyms in countries
SELECT  ?country ?countryLabel (count(*) as ?count)
WHERE
{
	?country wdt:P31 wd:Q6256.      #country
	?country wdt:P1549 ?demonym .   #demonym
	SERVICE wikibase:label { bd:serviceParam wikibase:language "ru" }
}

GROUP BY ?country ?countryLabel 
ORDER BY DESC(?count)

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

Наибольшее число этнохоронимов у Соединённых Штатов Америки (41 этнохороним), затем идут Великобритания (40), Германия (40), Канада (36) и Россия (34).

Формы правления стран[править]

Построим пузырьковую диаграмму форм правления стран.

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

#basic form of government ranking
#defaultView:BubbleChart
SELECT ?bfog ?form (count(*) as ?count)
WHERE 
{
    ?country wdt:P31 wd:Q6256.
    ?country wdt:P122 ?bfog .
    OPTIONAL {
		?bfog rdfs:label ?form
		filter (lang(?form) = "ru")
	}
}
GROUP BY ?bfog ?form
ORDER BY DESC(?count) ASC(?form)

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

Пузырьковая диаграмма форм правления стран


В результате выполнения запроса мы получаем пузырьковую диаграмму с наиболее распространенными формами правления в странах. Основные формы правления стран: республика (в 20 странах), конституционная монархия (в 18 странах), федеративная республика (в 18 странах), парламентская республика (в 17 странах) и президентская республика (в 12 странах).

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

Построим граф соседних стран.

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

#neighboring countries graph
#defaultView:Graph
SELECT ?country ?countryLabel ?sharesBorderWith ?sharesBorderWithLabel
WHERE
{
    ?country wdt:P31 wd:Q6256.

    SERVICE wikibase:label { bd:serviceParam wikibase:language "ru" }
    OPTIONAL { ?country wdt:P47 ?sharesBorderWith . }

}

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

Граф соседних стран, в центре Россия


В результате выполнения запроса мы получаем граф с 787 ребрами, где ребро – это соседство между двумя странами. Граф представляет из себя несколько связных компонент, так как есть островные страны, у которых нет соседей (например, Маврикий, Мальдивы, Мадагаскар).

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

  1. Для каждой страны выведете её флаг и девиз.
  2. Выведете карту с отмеченными на ней столицами всех ныне существующих стран.
  3. В каждой части света вычислите первые пять стран с наибольшей плотностью населения.
  4. Построить столбчатую диаграмму демонстрирующую распределение количества стран по формам правления. Оцените, является ли это распределение тяжелым хвостом
  5. Вывести список стран упорядоченных по числу соседей. У каких стран максимальное и минимальное количество соседей, какое среднее число соседей? Есть ли корреляция между этим показателем и каким-либо другим параметром стран?

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

1

Какие из двухсот существующих сегодня стран возникли в самые "урожайные" годы по количеству образованных стран?

1821, 1918, 1971, 1991
16 стран: Россия, Молдавия, Белоруссия, Украина, Эстония, Словения, Республика Македония, Хорватия, Азербайджан, Грузия, Казахстан, Узбекистан, Армения, Киргизия, Таджикистан
6 стран: Греция, Перу, Гватемала, Гондурас, Коста-Рика, Никарагуа
5 стран: Латвия, Литва, Польша, Эстония, Грузия
4 страны: Бангладеш, Бахрейн, Катар, Шри-Ланка

2

У Латвии их 119, у Таиланда 77, у Дании 5, а у России 81. О чём идет речь?

Количество городов с населением более миллиона человек
Количество высших учебных заведений
Количество административных единиц
Количество официальных языков

3

Площадь Израиля 20770 квадратных километров, население 8463400 человек, площадь Монголии 1566000 квадратных километров, население 2953190 человек, площадь Республики Кореи 100295 квадратных километров, население 50219669 человек, а площадь Сингапура 719.1 квадратных километров, население 5781728 человек.
Расположите флаги этих стран Азии в порядке возрастания плотности населения.

1 место,2 место,3 место,4 место
Flag of South Korea.svg
Flag of Singapore.svg
Flag of Israel.svg
Flag of Mongolia.svg

4

Какие из этих языков являются официальными в России?

абазинский
мокшанский
эрзянский
белорусский

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

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

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

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