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

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

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


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

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

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

SPARQL-запрос, 1564 записи.

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

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

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

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

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

# 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 "en". }
}
GROUP BY ?manufacture ?manufactureLabel # group by manufacture

SPARQL-запрос, 300 результатов.

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

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

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

# 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.     # show country
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}
GROUP BY ?country ?countryLabel # group by country

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

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

Соотношение количества производителей воздушных судов по странам

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

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

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

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

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

Для заполнения были выбраны поля 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.1939 18.11.1949 1.01.1922 1.01.1939
Миг
Вымпел
Туполев
Сухой

3

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

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

4

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

5

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

LAPD Bell 206 Jetranger.jpg
W-6 Ossoaviachim wiki.jpg
Airliners 28.07.2009 10-01-28.JPG


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

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

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

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

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

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

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

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

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

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

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