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

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

Список видов спорта править

Построим список всех экземпляров объекта «Виды спорта».

# List of types of sport
SELECT ?s ?sLabel
WHERE
{
    ?s wdt:P31/wdt:P279* wd:Q31629; # instances of "type of sport"
    SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en" }
}

SPARQL query 605 записей (январь 2023).

Самый проработанный вид спорта на Викиданных: футбол (Q2736) (743 свойства). Среди наименее проработанных: зимний виндсерфинг (Q4191991) (12 свойств) и полиатлон (Q4369855) (13 свойств).

Теперь проверим гипотезу, что свойство "иконка" есть только у тех видов спорта, которые относятся к олимпийским. Для того, чтобы опровергнуть данную гипотезу - надо доказать, что хотя бы у одного не олимпийского вида спорта есть иконка. Проверим это следующим запросом.

Олимпийские виды спорта с иконками править

Получим все олимпийские виды спорта с иконками.

# List of Olympic types of sport with icons
#defaultView:ImageGrid
SELECT ?s ?sLabel ?icon
WHERE
{
    ?s wdt:P31 wd:Q31629. # instances of "type of sport" 
    ?s wdt:P31|wdt:P279 wd:Q212434. # Olympic by class or instance
    ?s wdt:P2910 ?icon. # with icons
    SERVICE wikibase:label { bd:serviceParam wikibase:language "ru" }
}

SPARQL-запрос возвращает 45 олимпийских видов спорта с иконками (январь 2023).

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

 
Рис. 1: Олимпийские виды спорта с иконками

Проверяем гипотезу о том, что «свойство иконка есть только у тех видов спорта, которые относятся к олимпийским» править

# List of types of sport with icons
#defaultView:ImageGrid
SELECT ?s ?sLabel ?icon
WHERE
{
    ?s wdt:P31 wd:Q31629. # instances of "type of sport" 
    ?s wdt:P2910 ?icon. # with icons
    SERVICE wikibase:label { bd:serviceParam wikibase:language "ru" }
}

SPARQL-запрос, 94 вида спорта (январь 2023).

Среди результатов запроса присутствуют такие виды спорта, как Сумо (Q40561), Сквош (Q133201), Футгольф (Q2155787). Каждый из которых имеет иконку, и не является олимпийским видом спорта согласно данной статье. Значит, наше предположение неверно, свойство иконка есть не только у олимпийских видов спорта.

Страны происхождения видов спорта править

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

# List of countries sorted by number of types of sport
#defaultView:BubbleChart
SELECT ?c ?cLabel (COUNT(?s) AS ?numberSports)
WHERE
{
    ?s wdt:P31 wd:Q31629. # instances of "type of sport" 
    ?s wdt:P495 ?c # types of sport contain origin countries
    SERVICE wikibase:label { bd:serviceParam wikibase:language "ru, en" }
}
GROUP BY ?c ?cLabel
ORDER BY DESC(?numberSports)

SPARQL-запрос, 50 стран (февраль 2023).

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

 
Рис. 2: Пузырьковая диаграмма стран происхождения видов спорта

Из этой диаграммы мы видим, что больше всего видов спорта было придумано в Англии (Q21, 13 видов спорта придумано), Японии (Q17, 11 видов), Франции (Q142, 10 видов), Италии (Q38, 9 видов) и США (Q30, 8 видов).

Согласно статье всего на Земле существует 195 стран. В результатах данного запроса, мы получили 50 стран, из которых 39 являются странами согласно статье, которые существуют на данный момент (февраль 2023) и являются самостоятельными государствами. Итого, мы получили, что только 39 стран из 195 являются странами происхождения того или иного вида спорта из добавленных в Викиданные. В остальных 156 странах не было придумано ни одного вида спорта из тех, что были добавлены в Викиданные.

Страны из полученного списка, которые либо не существуют на данный момент, либо входят в состав других самостоятельных государств:

Проверяем гипотезу о том, что «все войны прекращаются на время проведения Олимпийских игр» править

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

# List of Olympic games periods
SELECT ?s ?sLabel ?st ?et
WHERE
{
    ?s wdt:P31/wdt:P279* wd:Q5389; # instances of "Olympic games"
       wdt:P580 ?st; # start time
       wdt:P582 ?et. # end time
    SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en" }
}

SPARQL-запрос, 59 периодов проведения Олимпийских игр (февраль 2023).

График периодов проведения Олимпийских игр представлен ниже:

 
Рис. 3: График периодов проведения Олимпийских игр

Исследуемый нами интервал с 1896 по 2023 год охватывает все периоды Олимпийских игр, данные о которых есть на Викиданных. На графике можно наблюдать два больших перерыва в проведении Олимпийских игр: c 1912 по 1920 год и с 1936 по 1948 год. Это связано с двумя мировыми войнами, которые проходили в эти периоды, более подробную информацию можно прочитать в статье Олимпийские игры, перечеркнутые войной (1916, 1940, 1944 гг. ).

Получаем список периодов войн:

# List of war periods
SELECT ?war ?warLabel ?start_time ?end_time
WHERE 
{  
  ?c wdt:P31 wd:Q3624078. # instances of "sovereign state"
  ?c wdt:P31 wd:Q6256. # instances of "country"
  ?war wdt:P31 wd:Q198. # instances of "war"
  ?war wdt:P710 ?c. # country - participant of war
  ?war wdt:P580 ?start_time. # war start date
  ?war wdt:P582 ?end_time. # war end date
  SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en" }
}
GROUP BY ?war ?warLabel ?start_time ?end_time

SPARQL-запрос, 170 периодов войн (февраль 2023).

В данном скрипте мы ищем именно войны между суверенными странами, которые существуют на данный момент (март 2023 года). Для этого выбираем сущности стран принадлежащие категориям "country" и "sovereign state", с помощью строк 5 и 6. Если закомментировать строку 5 то будет получено на пять войн больше (176 войн).

Данные войны перечислены ниже:

Вторая Датско-ганзейская война

Великая война (1409—1411)

Трёхсоттридцатипятилетняя война присутствует два раза с разными датами окончания

Австро-прусско-датская война

В вышеперечисленных войнах принимали участие государственные образования/политические союзы, которые не являются суверенными государствами на данный момент (март 2023 года). Например, Вторая Датско-гензейская война проходила в 1367-1370 годах, и в ней принимала участие Ганзейская лига, которая не существует на данный момент как суверенное государство.

Если закомментировать строку 6 то будет получено на 13 войн больше (184 войны).

Данные войны перечислены ниже:

Итальянские войны

First Spanish Hispaniola War 1494-1495

Война Камбрейской лиги

Малая война в Венгрии

Турецко-венецианская война (1537—1540)

Mixtón War

Тринадцатилетняя война в Венгрии

Bündner Wirren

Война из-за уха Дженкинса

Война в Пиренеях

Захват Менорки

Perak War

Вторая мелильская кампания

В вышеперечисленных войнах принимали участия государственные образования/политические союзы, которые не являются странами на данный момент (март 2023 года). Например, Тринадцатилетняя война в Венгрии проходила между Габсбургской монархией и Османской империей, которые не существуют на данный момент.

Таким образом, применяя 5 и 6 строку в данном скрипте, мы отсекаем страны участники войн, которые не являются полноценными государствами на данный момент (март 2023).

График периодов войн представлен ниже:

 
Рис. 4: График периодов войн между странами

На графике представлены все периоды войн, которые были с 1896 по 2023 год и занесены в Викиданные. На вертикальной оси взято число одновременно идущих войн за рассматриваемый период. На графике отсутствуют данные о войнах, которые проходили с 2009 по 2015 год, хотя согласно статье Иракская война шла вплоть до 2011 года. Информация об этой войне отсутствуют на Викиданных. Это означает, что есть определенные пробелы в данных для объекта война (Q198). Также, согласно графику, наибольшее число одновременно идущих войн равно 11, и наблюдалось примерно в 1918 году, последнем году Первой мировой войны.

График периодов Олимпийских игр, наложенный на график войн:

 
Рис. 5: График периодов Олимпийских игр, наложенный на график войн

На данном графике можно видеть некоторые закономерности. Например, то что Олимпийские игры 1920 года начались только после того, как спал общий уровень числа войн, а именно - закончилась Первая мировая война. Такая же ситуация видна и с Олимпийскими играми 1948 года. Их проведение стало возможным только, когда спал уровень числа войн в мире. А именно - закончилась Вторая мировая война. Также, визуально заметно, что интенсивность войн уменьшается в периоды проведения Олимпийских игр. Алгоритм проверки данного предположения и результаты его работы описаны ниже.

График пересечений периодов Олимпийских игр и войн:

 
Рис. 6: График пересечений периодов Олимпийских игр и войн

Данный график отображает общие периоды на графиках проведения Олимпийских игр и войн.

На языке Python был реализован следующий алгоритм (ссылка на скрипт):

Если война начиналась менее чем за месяц после конца Олимпийских игр, или заканчивалась менее чем за один месяц до начала - то значение переменной hypothesis_True увеличивалось на 1. Если период войны пересекался с периодом Олимпийских игр - то значение переменной hypothesis_True уменьшалось на 1. Начальное значение переменной hypothesis_True было взято равное 0.

Результаты работы алгоритма:

Значение переменной hypothesis_True равно -151. Было найдено 11 фактов подтверждающих гипотезу и 162 факта ее опровергающих.

Далее, приведены примеры войн наиболее близко заканчивающиеся и начинающиеся к периодам проведения Олимпийских игр:

Приднестровский конфликт (Q285280) закончился 21 июля 1992 года, а уже 25 июля начались Летние Олимпийские игры 1992 (Q8488)

Летние Олимпийские игры 1992 (Q8488) закончились 9 августа 1992 года, а уже 14 августа началась война в Абхазии (Q1209169)

Зимние Олимпийские игры 1998 (Q9664) закончились 22 февраля 1998 года, а уже 27 февраля началась Косовская война (Q190029)

Алгоритм, описанный выше не учитывает уменьшение плотности войн перед Олимпийскими играми и после.

Поэтому был предложен следующий алгоритм, реализованный на языке Python (ссылка на скрипт):

Для каждого периода проведения Олимпийских игр, берется разница плотности войн за время T до начала проведения, сложенная с разностью плотности войн за время T после проведения Олимпийских игр. Далее, эти значения складываются для всех периодов проведения Олимпийских игр. В итоге мы получаем показатель deltaWar, который отражает степень правдивости нашей изначальной гипотезы, для данного параметра T. Параметр T меняется от значения 1 месяц до значения 23 месяца, так как минимальный временной промежуток между Олимпийскими играми составляет два года (без учета месяца и даты начала и конца Олимпийских игр).

В итоге был получен следующий график, отражающий зависимость показателя deltaWar от параметра T:

 
Рис. 7: График зависимости показателя deltaWar от T

Таким образом, получаем что показатель deltaWar больше нуля при любом значении параметра T. При этом наблюдаются стабильно высокие значения показателя deltaWar на середине интервала от 1 до 23, а именно примерно за год до начала Олимпийских игр и через год после конца. Стоит отметить, что значения deltaWar являются относительно небольшими для такого числа рассматриваемых войн и Олимпийских игр. Всего при построении последнего графика было обработано 92 военных периода и 54 периода Олимпийских игр. Также, интересно отметить, что начало и конец графика содержат более низкие значения чем его середина, при этом конец графика содержит более высокие значения чем его начало. Объяснение такой особенности может быть следующим, не все Олимпийские игры имеют интервал два года, первые Олимпийские игры были только летними и интервал между играми составлял 4 года. Поэтому, если предполагать, что между Олимпийскими играми интенсивность войн становится больше, то для первых семи летних Олимпийских игр середина интервала будет при значении T равном 24. Видимо, эти данные внесли свой вклад в рассматриваемый график, что объясняет более высокую плотность войн в конце графика, нежели в начале.

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

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