Программирование Викиданных/Воздушные суда

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

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


Экземпляры объекта "Воздушные суда"[править]

Построим список всех экземпляров объекта "Воздушные суда".

#List of `instances of` "aircraft" 
SELECT ?item ?itemLabel
WHERE
{
    ?item wdt:P31 wd:Q11436. # instances of aircraft
    SERVICE wikibase:label { bd:serviceParam wikibase:language "ru" }
}

SPARQL-запрос, 1564 записи (2017), 3325 записей (2020).

SPARQL-запрос, 153 записи имеют название на русском языке (label) (2017), 299 записей имеют название на русском языке (label) (2020).

Заполнены не очень плохо: МиГ-3, Як-36, Mitsubishi A5M

Заполнены не очень хорошо: МиГ-1, Су-6, Ил-103

На 2020 год наиболее проработанными на Викиданных воздушными судами в являются: Sopwith Triplane (18 свойств), Ил-103 (14 свойств), Martin 2-0-2 (14 свойств).

На 2020 год малоинформативными воздушными судами являются: Бе-1 (3 свойства), Литуаника (4 свойства), Ла-168 (3 свойства).

Производители воздушных судов[править]

Построим список производителей воздушных судов.

# Count aircraft having property manufacture, group by manufacture
SELECT ?manufactureLabel (COUNT(?item) AS ?count) 
WHERE {
  ?item wdt:P31 wd:Q11436.     # instance of aircraft
  ?item wdt:P176 ?manufacture. # show manufacture
  SERVICE wikibase:label { bd:serviceParam wikibase:language "ru". }
}
GROUP BY ?manufacture ?manufactureLabel # group by manufacture

SPARQL-запрос, 300 результатов (2017), 597 результатов (2020).

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

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

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

SELECT ?itemLabel ?count WHERE {
  SERVICE wikibase:label { bd:serviceParam wikibase:language "ru". }
  ?item wdt:P31 wd:Q11436. # instance of aircraft
  ?item wdt:P1092 ?count.  # total aircraft manufactured
}

SPARQL-запрос, 177 записей (2020).

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

SELECT ?itemLabel ?count WHERE {
  SERVICE wikibase:label { bd:serviceParam wikibase:language "ru". }
  ?item wdt:P31 wd:Q11436. # instance of aircraft
  ?item wdt:P1092 ?count. # total aircraft manufactured
  
  FILTER (?count > 10)
}

SPARQL-запрос, 86 записей (2020).

В результате выполнения запроса видно, что больше всего было выпущено воздушных судов следующих моделей: Piper PA-32 (7842 штук), Piper PA-24 Comanche (4857), Junkers W 34 (3000), Piper J-4 (1251).

Теперь попытаемся ответить на вопрос: "Выполняется ли w:Закон Парето относительно числа моделей самолётов"?

Для того чтобы построить график необходимо выполнить следующие шаги:

1. Подсчитать общее число самолётов по всем моделям. Для выполнения этой задачи был написан следующий скрипт:
SELECT (SUM(?count) as ?sum) WHERE {
  SELECT ?count WHERE {
    SERVICE wikibase:label { bd:serviceParam wikibase:language "ru". }
    ?item wdt:P31 wd:Q11436; # instance of aircraft
      wdt:P1092 ?count. # total aircraft manufactured
  }
}
SPARQL-запрос, 33 177 самолётов (2020).
2. По оси Х - число рассматриваемых моделей самолётов (то есть 1 - количество выпущенных самолётов 1-ой модели, 2 - сумма выпущенных самолётов 1-ой и 2-ой модели и т.д.). По оси Y будем откладывать процентное соотношение количества выпущенных моделей самолётов к общему числу выпущенных самолётов за всё время. Также по оси Х откладываем вторую шкалу от 0 до 100%, чтобы легче было определить параметры для закона Парето.

По графику видно, что 80% всех выпущенных самолётов приходится на 16 различных моделей самолётов, что составляет 9,2% от общего числа моделей. Закон Парето утверждает, что: «20 % усилий дают 80 % результата, а остальные 80 % усилий — лишь 20 % результата». Можно сделать вывод, что выполняется более сильный закон, чем принцип Парето относительно числа моделей самолётов.

В каких странах делают самолёты[править]

Построим список с соотношением количества производителей воздушных судов по странам. Для выполнения запроса используем группировку по странам (GROUP BY) и при помощи функции <<Count>> для каждой страны подсчитаем количество производств.

# Count manufacture having property country group by country
SELECT ?countryLabel (count(?item) as ?count)
WHERE
{
    ?item wdt:P31 wd:Q936518.   # instance of manufacture
    ?item wdt:P17 ?country.     # belong to country
    SERVICE wikibase:label { bd:serviceParam wikibase:language "ru" }
}
GROUP BY ?country ?countryLabel # group by country

SPARQL-запрос, 39 записей (2017), 46 записей (2020).

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


Как видно из ответа на запрос, страны происхождения указаны у производителей воздушных судов куда хуже, чем могли бы быть, и предоставляют мало информации. Больше всего производителей указано у США (115), Великобритании (30), Германии (17), России (17) на май 2017.

Сравнивая 2 пузырьковые диаграммы за 2017 и 2020 года, можно сделать вывод, что основными производителями воздушных судов являются: США (135), Великобритания (43), Франция (29), Германия (26), Россия (21). Лидером по прежнему является США, а вот Франция за 3 года сумела опередить Германию, увеличив количество производств до 29 (Германия - 26), тем самым заняв 3-е место. Но в целом соотношение по производству воздушных судов между различными странами остаётся на прежнем уровне.

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

Согласно сайту aviationfanatic.com существует около 1700 производителей воздушных судов[1] (2017 год) и 1939 (2020 год), но SPARQL-запрос вернул всего 300 записей в 2017 году, а в 2020 году - 595 записей. Из этого можно сделать вывод о неполноте Викиданных. Скорее всего, не указанные производители сделали слишком мало самолетов или не сделали их вовсе, поэтому из-за недостатка информации они не были включены в Викиданные.

Согласно полученным данным можно сделать прогноз, когда данные в Викиданных будут полными. За три года количество производителей воздушных судов увеличилось на 239, что составляет ежегодный прирост примерно на 80 авиа-производителей. Также за это время в Викиданные была занесена информация о 295 авиа-производителей, то есть ежегодно добавляется около 98 новых записей. Также на 2020 год в Викиданных отсутствуют записи о 1344 авиа-производителях. Если считать, что ежегодно будет появляться фиксированное количество новых авиа-производителей и количество ежегодно заносимых записей в Викиданные останется неизменным, то можно предположить, что примерно через 75 лет (то есть в 2095 году) Викиданные будут содержать записи обо всех авиа-производителях.

В категории Авиастроительные компании России указано наличие в России 58 авиастроительных компании в 2017 году и 62 компаний в 2020 году, но в то же время на сайте aviationfanatic.com указано [2] наличие 61 завода в 2017 году и 71 в 2020 году. Среди авиастроительных компаний России представлены такие компании как: Иркут, МиГ, Туполев.

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

Для заполнения были выбраны поля label и description у объектов, перечисленных в категории Авиастроительные компании России. Так как объектов там много, было решено автоматизировать заполнение, для чего была написана соответствующая программа. Для начала был создан JSON-файл с объектами из категории и пустыми полями для заполнения:

{
  "121 авиационный ремонтный завод": {
    "description": "",
    "descriptionen": "",
    "nameen": "",
    "qid": "Q4028573"
    },
  ...
}

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

{
  "121 авиационный ремонтный завод": {
    "description": "авиаремонтное предприятие, расположенное посёлке Старый Городок",
    "descriptionen": "aircraft repair facility, located in the village Stary Gorodok",
    "nameen": "121 aircraft repair plant",
    "qid": "Q4028573"
  },
  ...
}

Во второй части программы записывались данные из JSON-файла в Викиданные.

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

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

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

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

1 У каких российских производителей есть веб-сайты?

Миг
Саратовский авиационный завод
Туполев
Сухой

2 Совместите дату основания и компанию.

1.12.193918.11.19491.01.19221.01.1939
Миг
Вымпел
Туполев
Сухой

3 Совместите расположение штаб-квартиры компании с компанией.

КазаньСаратовУлан-УдэМосква
Казанский вертолётный завод
Саратовский авиационный завод
Улан-Удэнский авиационный завод
Сухой

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

5 Как выглядит дирижабль?


SPARQL-запрос по производителям с веб-сайтами

SPARQL-запрос дат основания производителей

SPARQL-запрос штаб-квартир производителей

SPARQL-запрос дирижабль

SPARQL-запрос дирижабли с картинками

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

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

List of all Manufacturers. Aviation Fanatic. Проверено 29 мая 2017.

List of Russian Manufacturers. Aviation Fanatic. Проверено 29 мая 2017.

Рыбин Е.И., Крижановский А.А.. Два с половиной SPARQL-запроса и воздушные суда. — Authorea.

Рыбин Е.И. Код программы по заполнению викиданных. GitHub.

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

  • Artem.Potes Aircraft (англ.). ProWD (2020). Проверено 29 сентября 2020.