Программирование Викиданных/Радиостанции
Аннотация
правитьРадиостанции — комплекс устройств и сооружений, служащих для подготовки программ радиовещания. Данная статья посвящена исследованию радиостанций на основе Викиданных. Для исследования спроектированы SPARQL-запросы, работающие с объектами Викиданных типа “radio stations”. Получен список всех радиостанций, описанных в Викиданных.
Исследуемый объект
правитьРадиостанции - комплекс устройств и сооружений, служащих для подготовки программ радиовещания.(https://ru.wikipedia.org/wiki/Радиодом)
Для поиска: https://scholar.google.ru/
Экземпляры объекта "Радиостанции"
править- Объект: радиостанции (Q14350).
- Свойство: экземпляр (P31).
Список количества радиостанций
правитьПостроим список всех радиостанций на английском и русском языках.
# List of all radio stations in all languages.
SELECT ?radioLabel ?countryLabel WHERE
{
?radio wdt:P31 wd:Q14350. # instance of radio station
?radio wdt:P495 ?country. # country of origin
SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en,[AUTO_LANGUAGE]" }
}
SPARQL-запрос, 113 результатов на 2022 год.
Посмотрим количество радиостанций у разных стран.
# Number of radio stations for each country
SELECT (COUNT(?radio) as ?sumRadio) ?countryLabel
WHERE {
?radio wdt:P31 wd:Q14350; # instance of radio station
wdt:P495 ?country. # country of origin
SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en,[AUTO_LANGUAGE]" }
}
GROUP BY ?countryLabel
ORDER BY DESC (?sumRadio)
SPARQL-запрос, 29 результатов на 2022 год.
Номер | Количество радиостанций по "country of origin" (P495) | Страна |
---|---|---|
1 | 15840 | США |
2 | 1565 | Мексика |
3 | 1299 | Канада |
4 | 995 | Филиппины |
5 | 800 | Великобритания |
6 | 772 | Бразилия |
7 | 571 | Германия |
8 | 451 | Австралия |
9 | 427 | Франция |
10 | 370 | Индия |
... | ... | ... |
23 | 82 | Россия |
... | ... | ... |
32 | 51 | Нидерланды |
Всего в мире около двухсот стран (смотри страницу Страны), но наш скрипт нашёл только 29 стран, в которых есть радиостанции. Поскольку радиостанции есть в каждой стране мира, то результаты скрипта говорят о неполноте Викиданных.
Мы переделали скрипт, указанный выше, изменив в нём P495 (страна происхождения) на P17 (государство).
# Number of radio stations for each country
SELECT (COUNT(?radio) as ?sumRadio) ?countryLabel
WHERE {
?radio wdt:P31 wd:Q14350; # instance of radio station
wdt:P17 ?country. # country of origin
SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en,[AUTO_LANGUAGE]" }
}
GROUP BY ?countryLabel
ORDER BY DESC (?sumRadio)
SPARQL-запрос, 196 результатов на 2022 год.
В итоге мы нашли 196 стран, имеющие радиостанции(таблица была изменена на основе нового кода).
Получим скрипт, который выводит список подклассов радиостанций. Для каждого класса укажем число его экземпляров.
# List of subclasses of radio stations
SELECT ?subRadio ?subRadioLabel (COUNT(?r) AS ?count) WHERE
{
?subRadio wdt:P279* wd:Q14350. # subclass of radio station
?r wdt:P31 ?subRadio # instance of subclass of radio station
SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en" }
}
GROUP BY ?subRadio ?subRadioLabel
ORDER BY DESC(?count)
SPARQL-запрос, 15 результатов на 2022 год.
Радиостанции, СМИ и вещательные каналы России
правитьЗдесь представлен скрипт, который ведёт поиск радиостанций, вещательных каналов и СМИ по России, и по СССР без использования VALUES.
# List of radio stations, broadcasting and mass media in Russia
SELECT ?radio ?radioLabel
WHERE
{
{?radio wdt:P31 wd:Q14350.} UNION # instance of radio station
{?radio wdt:P31 wd:Q15265344.} UNION # instance of broadcasting
{?radio wdt:P31 wd:Q11033.} # instance of mass media
{?radio wdt:P17 wd:Q159.} UNION # in Russia
{?radio wdt:P17 wd:Q15180.} # in USSR
SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en,[AUTO_LANGUAGE]". }
}
SPARQL-запрос, получено 117 радиостанций, вещательных каналов и СМИ на 2023 год.
Расширен предыдущий скрипт, чтобы включить вещательные каналы и СМИ и сделать поиск и по России, и по СССР.
# List of Russian and USSR radio stations, broadcastings and mass media
SELECT ?radio ?radioLabel
WHERE
{
{?radio wdt:P31 wd:Q14350.} UNION # instance of radio station
{?radio wdt:P31 wd:Q15265344.} UNION # instance of broadcasting
{?radio wdt:P31 wd:Q11033.} #instance of mass media
# Soviet Union and Russia
VALUES ?ruCountries {wd:Q15180 wd:Q159}
?radio wdt:P17 ?ruCountries. # related to Russian countries
SERVICE wikibase:label {bd:serviceParam wikibase:language "ru,en"}
}
SPARQL-запрос, получено 117 радиостанций, вещательных каналов и СМИ на 2023 год.
Тематика радиостанций России и СССР
правитьДанный скрипт предназначен для поиска тематик радиостанций, СМИ и вещательных каналов.
# List of the main topics of radio stations, broadcastings and mass media
SELECT ?radio ?radioName (GROUP_CONCAT(DISTINCT ?mainSubjectLabel;separator=", ") AS ?mainSubjects)
WHERE
{
{?radio wdt:P31 wd:Q14350.} UNION # instance of radio station
{?radio wdt:P31 wd:Q15265344.} UNION # instance of broadcasting
{?radio wdt:P31 wd:Q11033.} # instance of mass media
# Soviet Union and Russia
VALUES ?ruCountries {wd:Q15180 wd:Q159}
?radio wdt:P17 ?ruCountries; # related to Russian countries
wdt:P921 ?mainSubject. # has main subject
SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en".
?radio rdfs:label ?radioName .
?mainSubject rdfs:label ?mainSubjectLabel .}
} GROUP BY ?radio ?radioName
SPARQL-запрос, получено 73 радиостанции, вещательных канала и СМИ на 2024 год.
Количество тематик по "main subject" (P921) | Название тематики |
---|---|
44 | музыка |
30 | новости |
15 | политика |
9 | ток-шоу |
7 | экономика |
5 | спорт |
5 | рок |
5 | пропаганда |
5 | проект |
5 | поп-музыка |
5 | авария |
3 | TopHit |
3 | шутка |
3 | хип-хоп |
3 | спектакль |
3 | молодёжная музыка |
3 | джаз |
2 | юмор |
2 | художественная литература |
2 | комедия |
2 | политическая система России |
В скрипте выше функция GROUP_CONCAT объединяет (конкатенация строк) содержимое меток (rdfs:label) главных тем (wdt:P921) радиостанций. Эта функция объединяет строки, вставляя между ними разделитель (по умолчанию разделитель — запятая). В следующей таблице приведены примеры конкатенации главных тем для СМИ 7x7 и газеты «Молодой дальневосточник».
radio | radioName | mainSubject |
---|---|---|
wd:Q104538016 | 7x7 | экология, политика, новости, субъект Российской Федерации, правозащитник |
wd:Q30909585 | Общественно-политический еженедельник Молодой дальневосточник XXI век | война, спорт, экономика, реклама, новости, путешествие |
Радиостанции, СМИ и вещательные каналы в социальных сетях
правитьДанный скрипт находит аккаунты радиостанций, СМИ и вещательных каналов в социальных сетях.
# Counts the number of radios with social media accounts
#defaultView:BubbleChart
SELECT ?netID ?netIDLabel ?netRelation (COUNT(?network) as ?sumNetwork)
WHERE
{ # Facebook, Instagram, Telegram, Twitter, VK, YouTube, Zen, SoundCloud, Google ID, Odnoklassniki, Rutube, Spotify
VALUES ?netRelation {wdt:P2013 wdt:P2003 wdt:P3789 wdt:P2002 wdt:P3185 wdt:P2397 wdt:P8816 wdt:P3040 wdt:P2847 wdt:P5163 wdt:P10152 wdt:P5916}
?radio wdt:P31 wd:Q14350; # instance of radio station
wdt:P17 wd:Q159; # radio from Russia
?netRelation ?network. # has social network page
?netID wikibase:directClaim ?netRelation.
SERVICE wikibase:label {bd:serviceParam wikibase:language "en"}
} GROUP BY ?netID ?netIDLabel ?netRelation
ORDER BY DESC(?sumNetwork)
SPARQL-запрос, получено 12 социальных сетей на 2023 год.
Объясним строку "?netID wikibase:directClaim ?netRelation" и необходимость использования предиката wikibase:directClaim.
Для этого нужно начать с объяснения того, что радиостанции соответствует объект и страница на Викиданных. На этой странице есть подраздел Идентификаторы (Identifiers). В этом подразделе перечислены, в том числе, социальные сети, в которых зарегистрирован объект (здесь радиостанция). Два следующих утверждених из запроса выше (на примере ВКонтакте, которому соответствует идентификатор-свойство P3185):
- VALUES ?netRelation ... wdt:P3185
- ?radio ... ?netRelation ?network. # has social network page
мы получаем ?netRelation для данной радиостанции, счётчик ?sumNetwork (здесь для ВКонтакте) увеличивается на один.
Проблема в том, что мы не можем получить имя ?netRelationLabel, поскольку конструкция "SERVICE wikibase" не работает для свойств, а только для объектов. Нам помогает свойство wikibase:directClaim, которое возвращает имя (?netID) по свойству (?netRelation).
Пузырьковая диаграмма показывает количество аккаунтов СМИ и радиостанций в социальных сетях. То есть на рисунке показаны социальные сети, размер круга пропорционален количеству зарегистрированных в них аккаунтов СМИ и радиостанций.
Популярными социальными сетями среди радиостанций, СМИ и вещательных каналов на 2023 год стали: № 1 ВКонтакте — 28 аккаунтов; № 2 Instagram — 26 аккаунтов; № 3 Facebook — 25 аккаунтов; № 4 YouTube — 24 аккаунта; № 5 Twitter — 21 аккаунт; № 6 Telegram — 20 аккаунтов. Таким образом, самой популярной социальной сетью для СМИ стал ВКонтакте.