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

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

Буллиева Дарья

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

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

Аниме - японская анимация. У каждого аниме есть актеры озвучивания. В дальнейшем мы будем употреблять слово "сэйю" (т.е. японские актеры озвучивания). Актеры озвучивания и сэйю являются синонимами, когда речь заходит о Японии и японской анимации. Слово "тайтл" (название) будет упоминаться при обращении к какому-то аниме (или японской анимации в целом).

Построим список всех аниме:

#added 2017-06
#List of `instances of` "anime" 
SELECT ?anime ?animeLabel
WHERE
{
    ?anime wdt:P31 wd:Q1107.
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}

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

👍 Наиболее полные и проработанные аниме на Викиданных: Гуррен-Лаганн, Space Battleship Yamato, Project A-Ko

👎 Малоинформативные аниме: Charlotte, Dagashi kashi, KonoSuba

Упорядоченный список сэйю по числу озвученных ими аниме[править]

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

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

#Ordered list of actors (seiyu) according to the quantity of their anime
SELECT ?seiyu (SAMPLE(?label) AS ?seiyuLabel) (COUNT(?anime) AS ?count)
WHERE
{
  ?anime wdt:P31 wd:Q1107;	 # Instance of anime
         wdt:P725 ?seiyu. 	 # Instance of seiyu (voice actor)
  ?seiyu rdfs:label ?label.	 # Subclass of label
  FILTER(LANG(?label) = "en").
}
GROUP BY ?seiyu		# Group by seiyu 
ORDER BY DESC(?count)	# Order by count of voiced anime

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

Мы видим список, состоящий из 148 сэйю. Список получится немногочисленным, но и количество аниме на Викиданных было столь же немногочисленным - всего 683 тайтла (речь о полноте будет дальше). В данный список вошли сэйю, озвучившие несколько аниме (например, Aki Toyosaki - 26 аниме).

Гистограмма по числу сэйю, озвучивших одно и более аниме[править]

Было бы интересно построить гистограмму (линейную диаграмму) из сэйю, озвучивших аниме (чем больше аниме озвучил сэйю, тем дальше на диаграмме он будет находиться, "правее" в данном случае).

#added 2017-06
#Histogram of the number of seiyu who voiced one or more anime
#defaultView:LineChart         # Do line chart as result representation
SELECT ?haveseiyu (COUNT(?haveseiyu) AS ?quantity) WHERE {  # Count number of seiyu having a voice acting                                                                      # and number of sister cities themselves
  {
     SELECT (COUNT(?seiyu) AS ?haveseiyu) WHERE {      # Count quantity of voice acting
       ?anime wdt:P31 wd:Q1107;
              wdt:P725 ?seiyu.       
       SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
     }
     GROUP BY ?anime         # Group list by quantity of voiced anime
     ORDER BY DESC(?haveseiyu)      # Order by seiyu quantity (descending)
  }
}
GROUP BY ?haveseiyu       # Group by seiyu quantity
ORDER BY DESC(?haveseiyu)      # Order by seiyu qty (descending)

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

Очевидно, что, чем большее количество аниме берётся в расчёт, тем меньшее количество сэйю участвует в озвучке (рис. 1). Это демонстрирует данная гистограмма. Большинство сэйю, как показано на диаграмме, озвучили только 1 аниме. Это может быть связано с неполнотой Викиданных.

Рис. 1: Гистограмма по числу сэйю, озвучивших одно и более аниме


Граф, связывающий сэйю и озвученные ими аниме[править]

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

#added 2017-06
#Graph contacting seiyu and anime
#defaultView:Graph
SELECT ?anime ?animeLabel ?seiyu ?seiyuLabel
WHERE
{
    ?anime wdt:P31 wd:Q1107
    ; rdfs:label ?label .

    SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
    OPTIONAL { ?anime 
         wdt:P725 ?seiyu. }
    FILTER  (LANG(?label) = "en") 
}

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

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

Рис. 2: Граф, связывающий сэйю и озвученные ими аниме


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

Русская Википедия выводит нам список, состоящий из 2089 аниме. В том числе можно посмотреть телевизионные показы аниме в России по годам.

В Английской Википедии можно наблюдать примерно такой же результат. Можно просмотреть все аниме с помощью категорий аниме, которых на данный момент 11.

Список найденных аниме на сайте [1]. В списке 559 по 20 аниме. Всего 11173 наименований. В то время как количество найденных объектов на Викиданных всего 683 . К тому же, стоит учитывать, что скорость выхода новых аниме довольно велика. Даже зимой-летом 2017-го выходит более 600 аниме. После выполнения некоторых запросов, упомянутых ранее, некоторые аниме не находились (Useless Animals, Ryuu no Haisha, Frame Arms Girl). Из этого можно сделать вывод, что Викиданные крайне неполно отражают данные.

Согласно приведённой статистике от того же сайта [2] в разделе "Индустрия аниме" упоминается 16 разделов по японской анимации, в которые входят 10497 тайтлов. Возможно, приведённые ниже статьи и сайты не будут являться АИ, но с помощью них можно привести информацию об имеющихся аниме и сделать определённые выводы о неполноте.

На сайте [3] приведён список из 7811 аниме.

На сайте [4] приведён список из 4905 аниме.

На сайте [5] приведён список из 4751 аниме.

На сайте [6] приведён список из 2971 аниме.

На сайте [7] приведён список из 1881 аниме.

На сайте [8] приведён список из 763 аниме.

Можно сделать вывод, что различные сайты имеют разную информацию об имеющихся аниме. Какие-то сайты появились позже, какие-то раньше, поэтому количество аниме может разниться, причём довольно серьёзно. Так же, количество посетителей влияет на появление каких-то аниме на сайте. Если упорядочить все приведённые сайты, данные Русской Википедии, Английской Википедии по количеству аниме, то на последнем месте окажутся Викиданные. На Викиданных нельзя найти все популярные и известные японские анимации мира, что ещё раз говорит о неполноте.

Вспомним ранее упомянутый запрос, в котором говорилось о 148 сэйю на Викиданных. Дело в том, что они искались в подразделе аниме, поэтому результат оказался таким немногочисленным. Если поправить скрипт и попытаться вывести всех актёров озвучивания (то есть, убрать категорию аниме), то результат может измениться.

#added 2017-06
#Ordered list of actors according to the quantity of their voiced projects
SELECT ?actor (SAMPLE(?label) AS ?actorLabel) (COUNT(?anime) AS ?count)
WHERE
{
  ?anime wdt:P725 ?actor. 	 # Instance of voice actor
  ?actor rdfs:label ?label.	 # Subclass of label
  FILTER(LANG(?label) = "en").
}
GROUP BY ?actor		# Group by actor
ORDER BY DESC(?count)	# Order by count of voiced anime

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

Нашлось 3965 актёров озвучивания. Сравним результат по сэйю. Прошлый скрипт вывел у сэйю Aki Toyosaki 26 аниме. Данный скрипт дал результат в 62 аниме. Это говорит о том, что данные заполнялись не совсем корректным образом и о том, что нужно было упоминать категорию аниме.

Заполнение 100 объектов[править]

Любитель японской анимации желает знать в каком году вышло его любимое аниме. Викиданные располагают этой информацией не в полной мере. Напишем скрипт, который бы показывал количество аниме с незаполненным полем "publication date" (дата публикации).

#added 2017-06
#List of anime with unfilled publication date
SELECT ?anime ?animeLabel
WHERE
{
    ?anime wdt:P31 wd:Q1107.
    FILTER NOT EXISTS { ?anime wdt:P577 [] } #if property publication date is unfilled
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}

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

Видим результат в 237 записи. Это говорит о том, что примерно у трети аниме нет даты публикации.

После заполнения данных и повторного выполнения скрипта выдаётся результат в 134 записи.

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

  1. Вывести 10 аниме, выпущенных в 2017 году.
  2. Вывести 5 аниме, в которых число сэйю является наибольшим.
  3. Построить пузырьковую диаграмму (BubbleChart) распределения аниме по жанрам (сколько аниме в каждом жанре).

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

1

Перечислены такие аниме:
Рэйв Мастер (Shan T Lao Fu Zi)
Новый железный человек №28 (Tetsujin 28-gou)
Гренадёр (Grenadier)
Вторжение гигантов (Shingeki no Kyojin)
Соотнесите эти аниме с изображениями ниже.

1 (Рэйв Мастер),2 (Новый железный человек №28),3 (Гренадёр),4 (Вторжение гигантов)
Rave.jpg
Attack on Titan logo.png
Файл:若林公園(鉄人28号モニュメント) TETSUJIN28 - panoramio.jpg
Fruit de grenadier.jpg

2

Известны такие аниме:
Гуррен-Лаганн (Tengen Toppa Gurren Lagann)
Врата Штейна (Steins;Gate)
Хеллсинг (Hellsing)
Эльфийская Песнь (Elfen Lied)
Известны года создания (даты выхода) аниме: 2011, 2007, 2004, 2001.
Расположите данные аниме в порядке убывания даты их выхода (1 место - самое новое аниме, 4 место - самое старое).

1 место (2011),2 место (2007),3 место (2004),4 место (2001)
Гуррен-Лаганн
Врата Штейна
Хеллсинг
Эльфийская Песнь

3

О каком аниме идёт речь:
Краткое описание: "А что будет после смерти? Бесчисленные поколения людей задавались этим вопросом..."
Жанры: Драма, Экшен, Комедия, Школа
Сэйю (ж.): Кана Ханадзава
Дата публикации: 2005 год.
Прим.: Стоит указывать знаки препинания и пробелы, если таковые имеются.


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

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

  • Andrew Krizhanovsky, Daria Boollieva Аниме. — 2017.

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