Программирование Викиданных/Компьютерные игры
Статья посвящена исследованию объекта Викиданных "компьютерная игра". С помощью 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 год).
Популярные жанры в странах
правитьВ Японии
#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 год.
В США
#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 год.
В Великобритании
#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 год.
В России
#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 год.
Разработчики игр
правитьВ этом разделе мы исследуем фирмы, занимающиеся разработкой компьютерных игр, а также страны, где их разрабатывают.
Список стран разработчиков игр
править# 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).
Список разработчиков США И России
править# 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 год.
Список игр, разработанных в Австрии
правитьСписок всех игр разработанных в Австрии(дана информация: название игры, разработчик, издатель, жанр).
#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 год.