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

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

Экземпляры объекта "Компьютерная игра" править

Построим список всех компьютерных игр (Q7889).

# List of `instances of` "video game"
SELECT ?game ?gameLabel
WHERE
{
    ?game wdt:P31 wd:Q7889. # `instances of` "video game"
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}

SPARQL-запрос, 41134 записи (2020 год).

Жанры компьютерных игр править

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

# Ordered list of genres of video games by count
SELECT ?genre ?genreLabel (count(*) as ?count)
WHERE
{
    ?game wdt:P31 wd:Q7889.  # Instances of video game
    ?game wdt:P136 ?genre.   # game has a genre
    ?genre rdfs:label ?genreLabel
    FILTER(LANG(?genreLabel) = "ru").
}
GROUP BY ?genre ?genreLabel  # Group by genre 
ORDER BY DESC(?count)  # Order by count of games of this genre

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

 
Рис.1 упорядоченный список жанров компьютерных игр


Популярные жанры в странах править

В Японии

#defaultView:BarChart
SELECT ?genre ?genreLabel (count(*) as ?count)
WHERE
{
    ?game wdt:P31 wd:Q7889.
    ?game wdt:P495 wd:Q17.
    ?game wdt:P136 ?genre.
    ?genre rdfs:label ?genreLabel
    FILTER(LANG(?genreLabel) = "ru").
}
GROUP BY ?genre ?genreLabel 
ORDER BY DESC(?count)
LIMIT 30

SPARQL-запрос, 2021 год.

 
Рис.2 Самые популярные жанры в Японии


В США

#defaultView:BarChart
SELECT ?genre ?genreLabel (count(*) as ?count)
WHERE
{
    ?game wdt:P31 wd:Q7889.  
    ?game wdt:P495 wd:Q30.
    ?game wdt:P136 ?genre.  
    ?genre rdfs:label ?genreLabel
    FILTER(LANG(?genreLabel) = "ru").
}
GROUP BY ?genre ?genreLabel 
ORDER BY DESC(?count)
LIMIT 30

SPARQL-запрос, 2021 год.

 
Рис.3 Самые популярные жанры в США


В Великобритании

#defaultView:BarChart
SELECT ?genre ?genreLabel (count(*) as ?count)
WHERE
{
    ?game wdt:P31 wd:Q7889.
    ?game wdt:P495 wd:Q145.
    ?game wdt:P136 ?genre. 
    ?genre rdfs:label ?genreLabel
    FILTER(LANG(?genreLabel) = "ru").
}
GROUP BY ?genre ?genreLabel 
ORDER BY DESC(?count)
LIMIT 30

SPARQL-запрос, 2021 год.

 
Рис.4 Самые популярные жанры в Великобритании


В России

#defaultView:BarChart 
SELECT ?genre ?genreLabel (count(*) as ?count)
WHERE
{
    ?game wdt:P31 wd:Q7889.  
    ?game wdt:P495 wd:Q159.
    ?game wdt:P136 ?genre. 
    ?genre rdfs:label ?genreLabel
    FILTER(LANG(?genreLabel) = "ru").
}
GROUP BY ?genre ?genreLabel 
ORDER BY DESC(?count)  
LIMIT 30

SPARQL-запрос, 2021 год.

 
Рис.5 Самые популярные жанры в России

Разработчики игр править

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

Список стран разработчиков игр править

# count number of developers for each country
#defaultView:BubbleChart
SELECT ?country ?countryLabel (count(*) as ?devCount)
WHERE
{
    ?developer wdt:P31 wd:Q210167; # instance of video game developer
               wdt:P17 ?country.
    SERVICE wikibase:label { bd:serviceParam wikibase:language "ru" }
}
GROUP BY ?country ?countryLabel  # Group by country
ORDER BY DESC(?devCount)

SPARQL-запрос, 65 записи (2020).

 
Рис.1 Количество разработчиков игр в разных странах.

Список разработчиков США И России править

# List of USA and Russia developers
SELECT ?developer ?developerLabel ?countryLabel
WHERE
{
    ?developer wdt:P31 wd:Q210167. # instance of video game developer
    { ?developer wdt:P17 wd:Q30; wdt:P17 ?country } UNION 
    { ?developer wdt:P17 wd:Q159; wdt:P17 ?country }
    SERVICE wikibase:label { bd:serviceParam wikibase:language "ru" }
}

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

Количество игр созданные разными компаниями править

SELECT ?developerLabel (count(*) as ?count)
WHERE
{
    ?game wdt:P31 wd:Q7889.
    ?game wdt:P178 ?developer
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}
GROUP BY ?developerLabel 
ORDER BY DESC(?count)

SPARQL-запрос, 2021 год.

Игры связанные через общих разработчиков править

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

#Graph contacting game and part
#defaultView:Graph
SELECT ?game ?gameLabel ?part ?partLabel
WHERE
{
    ?game wdt:P31 wd:Q7889.
    ?game wdt:P178 wd:Q173941.
    ?game wdt:P179 ?part
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}

SPARQL-запрос, 2021 год.

 
Рис.2 Игры имеющие серию из нескольких для компании EA(Electronic Arts)

Список игр, разработанных в Австрии править

Список всех игр разработанных в Австрии(дана информация: название игры, разработчик, издатель, жанр).

#TEMPLATE={"template":"Video games from ?country","variables":{"?country":{"query":" SELECT ?id WHERE { ?id wdt:P31 wd:Q6256 . }"} } }
SELECT DISTINCT ?item ?itemLabel (GROUP_CONCAT(DISTINCT ?developerLabel;separator=", ") AS ?devs) ?publisherLabel (GROUP_CONCAT(DISTINCT ?genreLabel;separator=", ") AS ?genres) WHERE {
  BIND(wd:Q40 AS ?country)
  ?item wdt:P31 wd:Q7889.  # it’s a video game 
  { # Game has country of origin 
    ?item wdt:P495 ?country.
  } UNION { # OR Dev studio has country
    ?item wdt:P178 ?dev.
    ?dev wdt:P17 ?country.
  }
  OPTIONAL { ?item wdt:P178 ?developer}
  OPTIONAL { ?item wdt:P123 ?publisher}
  OPTIONAL { ?item wdt:P136 ?genre }

  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".
                         ?item rdfs:label ?itemLabel .
                         ?country rdfs:label ?countryLabel.
                         ?genre rdfs:label ?genreLabel.
                         ?developer rdfs:label ?developerLabel.
                         ?publisher rdfs:label ?publisherLabel}
} GROUP BY ?item ?itemLabel ?publisherLabel

SPARQL-запрос, 82 записи (2020).

Источники: Twitter Wikidata, Twitter создателя скрипта


Игровые режимы править

SELECT ?modeLabel (count(*) as ?count)
WHERE
{
    ?game wdt:P31 wd:Q7889. 
    ?game wdt:P404 ?mode. 
    ?mode rdfs:label ?modeLabel
    FILTER(LANG(?modeLabel) = "ru").
}
GROUP BY ?modeLabel 
ORDER BY DESC(?count)

SPARQL-запрос, 2021 год.

Игры по месту действия сюжета править

SELECT ?locationLabel (count(*) as ?count)
WHERE
{
    ?game wdt:P31 wd:Q7889;
          wdt:P840 ?location.
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}
GROUP BY ?locationLabel
ORDER BY DESC(?count)

SPARQL-запрос, 2021 год.

Награды править

Кол-во полученных наград игрой.

SELECT ?gameLabel (count(*) as ?count)
WHERE
{
    ?game wdt:P31 wd:Q7889.
    ?game wdt:P166 ?award. 
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}
GROUP BY ?gameLabel 
ORDER BY DESC(?count)

SPARQL-запрос, 2021 год.