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

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

Исследование участников Наполеоновских войн на основе Викиданных.

Какие войны входят в Наполеоновские[править]

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

#List of wars that were part of Napoleonic wars
SELECT ?war ?warLabel WHERE {
  SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en". }
  {
    SELECT DISTINCT ?war WHERE {
      ?war wdt:P361 wd:Q78994. # part of Napoleonic wars
      ?war wdt:P31 wd:Q198. # instance of war
    }
  }
}

SPARQL-запрос, 9 войн, которые являются частью Наполеоновских (2022 год).

Помимо войн, которые мы получили в запросе, также будем использовать войны антинаполеоновских коалиций(кроме войны первой коалиции, поскольку Наполеон не являлся правителем во время этой войны). Войну второй коалиции будем учитывать в списке конфликтов, поскольку Наполеон являлся правителем страны во второй половине войны.

Список участников Наполеоновских войн[править]

Получим список участников Наполеоновских войн, о которых есть записи в Википедии и у которых в свойстве Викиданных "конфликт" указаны Наполеоновские войны.

 
#List of participants of Napoleonic Wars 
SELECT ?hero ?heroLabel
WHERE
{
  ?hero wdt:P31 wd:Q5. #hero is human
  ?hero wdt:P607 wd:Q78994. #participant of Napoleonic Wars 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en"}
}

SPARQL-запрос, 1914 человек, которые участвовали в Наполеоновских войнах (2022 год).

Получим список участников Наполеоновских войн, о которых есть записи в Википедии и у которых в свойстве Викиданных "конфликт" указана одна из войн, являющаяся частью Наполеоновских войн.

#List of participants of wars that included in Napoleonic wars
SELECT DISTINCT ?hero ?heroLabel WHERE {
  VALUES ?wars { wd:Q78994 wd:Q26749 wd:Q249232 wd:Q605977 wd:Q684324 wd:Q138107 
                           wd:Q39194 wd:Q31301 wd:Q19950012 wd:Q6059656 wd:Q4065191 wd:Q2441248 wd:Q1116646 wd:Q199955 wd:Q152499} # list of wars
  ?hero wdt:P31 wd:Q5; # participant is human 
  wdt:P607 ?wars. # participant of one of the wars 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en". }
}

SPARQL-запрос, 2685 человек, которые участвовали в Наполеоновских войнах (2022 год).

Воинские подразделения, участвовавшие в Наполеоновских войнах[править]

Получим список воинских подразделений, которые принимали участие в Наполеоновских войнах. Поскольку в те времена некоторые страны использовали воинские подразделения, сформированные из граждан других стран, выведем, где доступно, страну, из которой были солдаты этого подразделения (свойство P17) и род войск (свойство P241).

#List of units that took part in Napoleonic wars
SELECT DISTINCT ?unit ?unitLabel ?country_of_origin ?country_of_originipLabel ?military_branch ?military_branchLabel WHERE {
  VALUES ?wars { wd:Q78994 wd:Q26749 wd:Q249232 wd:Q605977 wd:Q684324 wd:Q138107 
                           wd:Q39194 wd:Q31301 wd:Q19950012 wd:Q6059656 wd:Q4065191 wd:Q2441248 wd:Q1116646 wd:Q199955 wd:Q152499} # list of wars
  ?unit wdt:P31 wd:Q176799; # military unit
  wdt:P607 ?wars. # took part in one of the wars
  OPTIONAL {?unit wdt:P241 ?military_branch.} # military branch
  OPTIONAL {?unit wdt:P17 ?country_of_origin.} # country of origin
  SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en" }
}

SPARQL-запрос, 41 воинское подразделение, участвовавшее в Наполеоновских войнах (2022 год).

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

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

#Bar chart of inception years of units of Napoleonic wars
#defaultView:BarChart
SELECT DISTINCT (STR(?year) as ?year_str) (COUNT(?unit) AS ?quantity) WHERE {
  VALUES ?wars { wd:Q78994 wd:Q26749 wd:Q249232 wd:Q605977 wd:Q684324 wd:Q138107 
                           wd:Q39194 wd:Q31301 wd:Q19950012 wd:Q6059656 wd:Q4065191 wd:Q2441248 wd:Q1116646 wd:Q199955 wd:Q152499} # list of wars
  ?unit wdt:P31 wd:Q176799; # military unit
  wdt:P607 ?wars. # took part in one of the wars
  ?unit wdt:P571 ?inception. # year of inception
  BIND(YEAR(?inception) as ?year)
  SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en". }
}
Group by ?year

SPARQL-запрос

Из графика видно, что наиболее старое подразделение, о котором есть запись в Википедии, и которое участвовало в Наполеоновских войнах было создано в 1717 году. Больше всего записей о подразделениях, созданных в 1808 году (6 подразделений). Также мы видим, что есть запись о подразделении созданном в 1881 году, этим подразделением является Королевская легкая пехота Йоркшира. Наличие данного подразделения можно объяснить тем, что подразделения-прорадители даннного полка участвовали в Наполеоновских войнах и в связи с этим редакторы статьи указали в списках конфликтов один из конфликтов времен Наполеоновских войн.

Страны по числу участников[править]

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

# Buble chart of participants of Napoleonic wars by countries
#defaultView:BubbleChart
SELECT DISTINCT ?country_of_citizenship ?country_of_citizenshipLabel(count(*) as ?countryCount) WHERE {
  VALUES ?wars { wd:Q78994 wd:Q26749 wd:Q249232 wd:Q605977 wd:Q684324 wd:Q138107 
                           wd:Q39194 wd:Q31301 wd:Q19950012 wd:Q6059656 wd:Q4065191 wd:Q2441248 wd:Q1116646 wd:Q199955 wd:Q152499} # list of wars
  ?hero wdt:P31 wd:Q5; #instance of human
    wdt:P607 ?wars; #participant of one of the wars   
    wdt:P27 ?country_of_citizenship.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en" }
}
GROUP BY ?country_of_citizenship ?country_of_citizenshipLabel  # Group by country
ORDER BY DESC(?countryCount)

SPARQL-запрос, 85 стран, граждане которых принимали участия в Наполеоновских войнах (2022 год).

На диаграмме выводятся Королевство Великобритания и Соединённое королевство Великобритании и Ирландии. Это связано с тем что в Великобритании, в 1800 году, произошло преобразование, в результате которого произошло слияние английского и ирландского парламентов. Напишем запрос, в котором будем игнорировать участников с устаревшим гражданством.

# Buble chart of participants of Napoleonic wars by countries
#defaultView:BubbleChart
SELECT DISTINCT ?country_of_citizenship ?country_of_citizenshipLabel(count(*) as ?countryCount) WHERE {
  VALUES ?wars { wd:Q78994 wd:Q26749 wd:Q249232 wd:Q605977 wd:Q684324 wd:Q138107 
                           wd:Q39194 wd:Q31301 wd:Q19950012 wd:Q6059656 wd:Q4065191 wd:Q2441248 wd:Q1116646 wd:Q199955 wd:Q152499} # list of wars
  ?hero wdt:P31 wd:Q5; #instance of human
    wdt:P607 ?wars; #participant of one of the wars   
    wdt:P27 ?country_of_citizenship.
  FILTER (?country_of_citizenship != wd:Q161885) # ignore participants with old citizenship 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en" }
}
GROUP BY ?country_of_citizenship ?country_of_citizenshipLabel  # Group by country
ORDER BY DESC(?countryCount)

SPARQL-запрос, 84 страны, граждане которых принимали участия в Наполеоновских войнах (2022 год).

Из результатов запроса можно увидеть, что в Википедии есть информация о 557 участниках из Франции, 395 из Соединённого королевства Великобритании и Ирландии, 273 из Российской империи, 81 из Германии и 72 из Речи Посполитой.

Люди, воевавшие не на стороне своего гражданства[править]

Люди не всегда воевали за ту страну, гражданство которой они имели. Для отслеживания того, за какую страну воевал человек, в Викиданных используется свойство P945 ("allegiance"). Построим диаграмму, которая показывает сколько человек из других стран воевали за страну.

На основе запроса, 50 стран, в которых воевали граждане из других стран (2022 год).

Люди из других стран, воевавшие за Россию[править]

Получим портреты людей, которые воевали за Россию и были гражданами других стран

#Image grid of participants of Napoleonic wars with Russian allegiance without Russian citizenship
#defaultView:ImageGrid
SELECT DISTINCT ?hero ?heroLabel ?image WHERE {
  VALUES ?wars { wd:Q78994 wd:Q18817 wd:Q26749 wd:Q249232 wd:Q605977 wd:Q684324 wd:Q138107 
                           wd:Q39194 wd:Q31301 wd:Q19950012 wd:Q6059656 wd:Q4065191 wd:Q2441248 wd:Q1116646 wd:Q199955 wd:Q152499} # list of wars
  ?hero wdt:P31 wd:Q5; # instance of human
    wdt:P607 ?wars; # participant of one of the wars 
    wdt:P945 ?country_of_allegiance; # country of allegiance
    wdt:P27 ?country. # country of citizenship
  FILTER (?country_of_allegiance = wd:Q34266) # country of allegiance is Russia
  FILTER (?country != ?country_of_allegiance) # country of citizenship is not Russia
  OPTIONAL {?hero wdt:P18 ?image}
  SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en"}
}

SPARQL-запрос, 58 человек из других стран, воевавших за Россию (2022 год).

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

Отображение битв, относящихся к войнам, на картах[править]

Связь битвы и войны в Викиданных[править]

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

#List of batles of Napoleonic wars
SELECT DISTINCT ?batle ?batleLabel WHERE {
VALUES ?wars { wd:Q78994 wd:Q26749 wd:Q249232 wd:Q605977 wd:Q684324 wd:Q138107 
                           wd:Q39194 wd:Q31301 wd:Q19950012 wd:Q6059656 wd:Q4065191 wd:Q2441248 wd:Q1116646 wd:Q199955 wd:Q152499} # list of wars
   ?batle wdt:P31 wd:Q178561; # instance of batle
    wdt:P361 ?wars. # part of Napoleonic wars
  SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en"}
}

SPARQL-запрос, 285 битв (2022 год).

Отображение битв на карте[править]

#Map of batles of Napoleonic wars
#defaultView:Map
SELECT DISTINCT ?batle ?batleLabel ?location WHERE {
VALUES ?wars { wd:Q78994 wd:Q26749 wd:Q249232 wd:Q605977 wd:Q684324 wd:Q138107 
                           wd:Q39194 wd:Q31301 wd:Q19950012 wd:Q6059656 wd:Q4065191 wd:Q2441248 wd:Q1116646 wd:Q199955 wd:Q152499 wd:Q179250} # list of wars
   ?batle wdt:P31 wd:Q178561; # instance of batle
    wdt:P361 ?wars. # part of Napoleonic wars
   ?batle wdt:P625 ?location. # location of batle
  SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en"}
}

SPARQL-запрос

Из карты можно увидеть, что в Википедии есть информация о сражениях во всех частях света. Наибольшая плотность сражений на Пиренейском полуострове и в альпийском регионе. Большая плотность сражений на Пиренейском полуострове объясняется тем, что Пиренейские войны продолжались более пяти лет. Большую плотность сражений в альпийском регионе можно объяснить тем, что этот регион находится рядом с французской границей.

Потери сторон[править]

Потери сторон в каждой конкретной битве[править]

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

#List of batles of Napoleonic wars with casaulties
SELECT DISTINCT ?batle ?batleLabel ?deaths WHERE {
VALUES ?wars { wd:Q78994 wd:Q26749 wd:Q249232 wd:Q605977 wd:Q684324 wd:Q138107 
                           wd:Q39194 wd:Q31301 wd:Q19950012 wd:Q6059656 wd:Q4065191 wd:Q2441248 wd:Q1116646 wd:Q199955 wd:Q152499} # list of wars
   ?batle wdt:P31 wd:Q178561; # instance of batle
    wdt:P361 ?wars. # part of Napoleonic wars
    OPTIONAL {?batle wdt:P1120 ?deaths.} #print number of deaths if specified 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en"}
}

SPARQL-запрос, 279 битв (2023 год).

После выполнения запроса, мы видим, что ни одна из битв не имеет свойства число погибших.

Потери сторон по годам[править]

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

#defaultView:BarChart
#Bar chart of number of deaths by year
SELECT (STR(?deathYear) as ?Year) (COUNT(?hero) AS ?quantity)
WHERE
{
  VALUES ?wars { wd:Q78994 wd:Q26749 wd:Q249232 wd:Q605977 wd:Q684324 wd:Q138107 
                           wd:Q39194 wd:Q31301 wd:Q19950012 wd:Q6059656 wd:Q4065191 wd:Q2441248 wd:Q1116646 wd:Q199955 wd:Q152499 wd:Q179250} # list of wars
  ?hero wdt:P31 wd:Q5. #hero is human
  ?hero wdt:P607 ?wars. #participant of Napoleonic Wars
  ?hero wdt:P570 ?death. #date of death
  BIND(YEAR(?death) as ?deathYear)
  Filter(?deathYear != wdt:Q24238356)
  SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en"}
}
Group By ?deathYear
Order By ASC(?deathYear)

SPARQL-запрос, 102 различных года смерти (2023 год).

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

Модернизируем запрос, чтобы получить диаграмму годов смерти участников Наполеоновских войн, которые воевали на стороне Франции. Диаграмма годов смертей участников Наполеоновских войн из Франции

Проделаем тоже самое и получим диаграмму годов смерти участников Наполеоновских войн, которые воевали за основные страны антинаполеоновских коалиций(Россию, Австрию, Пруссию или Великобританию).

Диаграмма годов смертей солдат анти наполеоновских коалиций

Возрастная пирамида участников Наполеоновских войн[править]

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

Из пирамиды на рисунке видно, что большая часть участников войн находится в возрастной группе 71-80 лет. Вероятно, это связанно с тем, что Викиданные содержат информацию только о знаменитых и выдающихся персонах (например, писателях, политиках). Из рисунка видно, что людей, выступивших на стороне коалиции, больше, чем на стороне Франции (Из запросов мы получаем 1461 участников на стороне антинаполеоновских коалиций и 738 участников из Франции). Это может быть связанно с тем, что коалиция (в том виде, в котором ее рассматриваем мы) включала четыре страны.