Обсуждение:Программирование Викиданных/Области России
ProWD
править@Татьяна, добрый день. Итак, у нас написано:
В Викиданных больше всего свойств в России и в мире (по данным ProWD) у Ленинградской и Калининградской областей, по 43 свойства.
Попробуйте объяснить, почему не только в России, но и в мире максимальное число свойств у Ленинградской и Калининградской областей? --Andrew Krizhanovsky (обсуждение) 20:29, 28 сентября 2021 (UTC)
- Добрый день, @Andrew Krizhanovsky. Потому что это области России, соответственно, и для России и для мира это одни и те же объекты. Татьяна Зинченко (обсуждение) 18:40, 30 сентября 2021 (UTC)
- Отлично, Татьяна. Добавьте, пожалуйста, это пояснение в статью. --Andrew Krizhanovsky (обсуждение) 18:59, 30 сентября 2021 (UTC)
Замок у областей
правитьСвойства Вам добавлять не нужно, раз такое дело. Будут другое задание, следующее:
@Татьяна, я добавил рисунок на Викисклад. Включите, пожалуйста, этот рисунок в свою статью. И найдите на сайте Викиданных (в документации) информацию, что означает этот замок (lock) на статье. Чтобы пояснить этот скриншот в статье. То есть мне интересно из документации узнать, у каких объектов Викиданных принято ставить такой замок.
Это задание не срочное, то есть его не обязательно делать до завтра. --Andrew Krizhanovsky (обсуждение) 18:59, 30 сентября 2021 (UTC)
- @Татьяна, отлично написали про защиту. Прошу в этот раздел добавить ссылку на страницу Русской Википедии (вы ведь там читали про защиту?), где написано про эту защиту страниц. --Andrew Krizhanovsky (обсуждение) 13:45, 8 октября 2021 (UTC)
- @Андрей Анатольевич, добавила ссылку в конце раздела Татьяна Зинченко (обсуждение) 19:46, 13 октября 2021 (UTC)
- @Татьяна, оформите, пожалуйста, ссылку в виде примечания, см. w:Википедия:Сноски.
- Для ссылки используйте конструкцию интервики-ссылок, см. w:en:Help:Interwiki linking. --Andrew Krizhanovsky (обсуждение) 07:06, 14 октября 2021 (UTC)
- @Андрей Анатольевич, добавила ссылку в конце раздела Татьяна Зинченко (обсуждение) 19:46, 13 октября 2021 (UTC)
Субъекты Российской Федерации
править#List of `instances of` "subjects of Russia"
SELECT ?subject ?subjectLabel
WHERE
{
{ ?subject wdt:P31 wd:Q835714 } UNION # Oblast of Russia
{ ?subject wdt:P31 wd:Q41162 } UNION # Republic of Russia
{ ?subject wdt:P31 wd:Q183342 } UNION # Federal city of Russia
{ ?subject wdt:P31 wd:Q831740 } UNION # Krai of Russia
{ ?subject wdt:P31 wd:Q309166 } UNION # Autonomus oblast of Russia
{ ?subject wdt:P31 wd:Q184122 } # Autonomus okrug of Russia
FILTER NOT EXISTS {?subject wdt:P31 wd:Q19953632} # Former administrative territorial entity
SERVICE wikibase:label { bd:serviceParam wikibase:language "ru,en,[AUTO_LANGUAGE]"}
}
@Татьяна, в этом скрипте:
- В комментарии пишем с пробелом первую строчку: #List → "# List". Проверьте, другие скрипты, пожалуйста.
- Сократите скрипт "ru,en,[AUTO_LANGUAGE]" → "ru". Как думаете почему почему результат не изменится? Аналогично в следующих скриптах.
- Строка "FILTER NOT EXISTS ..." не меняет результаты. Нужна ли она? Аналогично в следующих скриптах.
- Добавьте к выводу тип субъекта (область, республика, край и так далее). Как это сделать см. в первом скрипте Космические корабли и станции.
- Проверьте, пожалуйста, одинаковые ли будут результаты, если в этом скрипте использовать ключевое слово VALUES вместо UNION (см. первый скрипт в Космические корабли и станции). Если результаты одинаковые, то используйте более компактный скрипт. Если результаты будут разные, то приведите оба скрипта в статье. И попробуйте объяснить, почему они дают разный результат. --Andrew Krizhanovsky (обсуждение) 14:09, 8 октября 2021 (UTC)
Соседние субъекты
править@Татьяна, посмотрите скрипт в разделе "Граф, связывающий сэйю и озвученные ими аниме" в статье Аниме. Аналогично предыдущему скрипту добавьте типы субъектов. И каждому типу субъекта (точнее каждой вершине разных типов) присвойте свой цвет как в графе аниме.
Старый рисунок ("...граф, отображающий соседние субъекты...") мы выкинем, там ничего не видно. А в новом рисунке сделайте, пожалуйста, скриншот фрагмента, где будет наша родная Карелия и соседние к ней регионы. --Andrew Krizhanovsky (обсуждение) 14:09, 8 октября 2021 (UTC)
- @Андрей Анатольевич, сделала, как Вы написали, но так граф стал более запутанным Татьяна Зинченко (обсуждение) 19:50, 13 октября 2021 (UTC)
- @Татьяна, спасибо за работу. Да, граф стал запутаннее, но... Обратите внимание на граф, связывающий сэйю и озвученные ими аниме. В этом графе нет вершин типа "сейю" или "аниме". Аналогично в Вашем графе не должно быть вершин "Область России" или "Республика России", тогда граф не усложнится. Если сразу такой скрипт сложно написать, то давайте начнём с типа "республика" wd:Q41162 (Republic of Russia), то есть останется только одна пара "субъект — республика" (также как одна пара "аниме-сейю"). Вот что у меня пока получилось: w.wiki/4DQG. Попробуйте добавить ещё один тип субъекта РФ на этот граф, например, "Области" с красным цветом. --Andrew Krizhanovsky (обсуждение) 07:00, 14 октября 2021 (UTC)
@Татьяна, добрый день. Продолжим работу над соседними субъектами.
- Запустил скрипт из статьи SPARQL-запрос и посмотрел результат. В статье написано "На нем (графе) отчетливо видно изолированную компоненту, которая является Калининградской областью." Но это не изолированная вершина, к сожалению, оказалась. Какая-то ерунда, в виде "уездов" есть в графе, привязана к Калининградской областе, например, w:Таурагский уезд. Но это ведь уезд Литвы, не России! Очевидно, что на переменную "sharesBorderWith" следует наложить ограничение, что "sharesBorderWith" может быть не чем угодно, а должен быть экземпляром либо области, либо республики, либо города федерального значения и так далее (полный список см. в списке ?type). Мне видится, что можно ввести переменные ?subject1 instance of ?type1, ?subject2 instance of ?type2. Где ?type1 и ?type2 задаются через VALUES.
- Когда получится, то сделайте скриншот и покажите, что Калининградская область на самом деле изолирована и никого не касается.
Я помню, про код выше w.wiki/4DQG. Хотелось бы его расширить с Вашей помощью, Татьяна, чтобы включить третий компонент. --Andrew Krizhanovsky (обсуждение) 16:51, 11 ноября 2021 (UTC)
@Андрей Анатольевич, добрый день. Вот, что у меня наконец-то получилось. Каждый объект имеет свой цвет, соответствующий типу. Также в графе компонента "Калининградская область" изолирована. К сожалению, сервису не удается сформировать короткую ссылку. Ссылка
Численность населения отдельных субъектов Российской Федерации
править@Татьяна, хотел бы я знать, можно ли менять размер кружка. Пока что получается скучная и малоинформативная карта. Давайте думать вместе. --Andrew Krizhanovsky (обсуждение) 14:09, 8 октября 2021 (UTC)
- @Андрей Анатольевич, не могу найти информацию, как поменять размер кружка на карте Татьяна Зинченко (обсуждение) 19:51, 13 октября 2021 (UTC)
SPARQL-задачи
править@Андрей Анатольевич, идеи для задач:
- Подсчитать количество субъектов РФ в федеральных округах. Можно вывести результат, например, в bubble chart.
- Составить гистограмму численности населения субъектов РФ.
- Составить граф водных объектов (моря, озера или реки) для субъектов РФ.
@Татьяна, добавьте эти задачи в раздел "Будущая работа", пожалуйста.
В качестве задачи для решения предлагаю взять такую:
Найти субъекты Российской Федерации, которые граничат с зарубежными странами. Упорядочить их по числу зарубежных соседей. --Andrew Krizhanovsky (обсуждение) 16:55, 11 ноября 2021 (UTC)
- @Андрей Анатольевич, решение задачи https://w.wiki/4VLu Татьяна Зинченко (обсуждение) 18:16, 2 декабря 2021 (UTC)
- @Таня, отлично! Добавьте к этому скрипту, пожалуйста, краткие комментарии в листинг и пояснения текстом после листинга:
- Зачем нужны такие строки: FILTER(NOT EXISTS...? Почему они нужны в первом блоке и не нужны во втором?
- Что ищется в первом блоке с 3 по 19 строчку, что ищется во втором блоке с 21 по 34 строки?
- Что даёт такое ограничение: HAVING ((COUNT(?country)) > 0 )
- Не хватает первой строчки в листинге, состоящей только из комментария с кратким пояснением, что этот скрипт делает.
Раскраска пограничных регионов России и соседних стран
править- Теперь к этому скрипту нужна визуализация. Нужно закрасить регионы РФ одним цветом, а соседние, граничащие с ними страны, другим цветом. И выбрать оттенки так, чтобы более насыщенные цвета давались регионам с большим числом заграничных соседей. И также с заграницей: более насыщенный цвет тем заморским странам, у кого больше соседей среди субъектов РФ.
- Как закрашивать страны и регионы РФ. Вот страница Программирование Викиданных/COVID-19. Там есть два скрипта со словом shape и атрибутом geoshape. Посмотрите, как это работает и используйте в своём скрипте. --Andrew Krizhanovsky (обсуждение) 20:43, 2 декабря 2021 (UTC)
- Татьяна, вот ещё один пример на geoshape — скрипт w.wiki/4YjN с закраской французских областей. --Andrew Krizhanovsky (обсуждение) 11:45, 14 декабря 2021 (UTC)
- @Андрей Анатольевич, вот что получилось для регионов России ссылка (нет возможности сделать короткую ссылку), для заграницы запрос не может выполнится https://w.wiki/4bKR. Татьяна Зинченко (обсуждение) 18:17, 23 декабря 2021 (UTC)
- @Таня, отлично получилось с регионами России. Добавьте ещё первой строчкой, пожалуйста, комментарий, что делает скрипт и комментарии к VALUES.
- По странам. Могу предложить такую модификацию, теперь её надо доработать, чтобы скрипт правильно считал. Идея оптимизации в том, чтобы не перебирать все страны во всех трёх вложенных SELECT, а сразу указать, что нас интересует страна пограничная России. Причём здесь, кстати, СССР? Попробуйте доработать. --Andrew Krizhanovsky (обсуждение) 18:54, 23 декабря 2021 (UTC)
- По соседним странам ещё раз подумал. Получился один SELECT без вложений. Вот скрипт. Вот код:
# Map of countries around Russia with the number of neighboring regions of Russia
#defaultView:Map{"hide":["?shape", "?rgb"], "layer": "?countryLabel"}
SELECT ?country ?countryLabel ?count ?shape ?rgb
{
{
SELECT ?country (COUNT(DISTINCT ?region) AS ?count)
WHERE {
VALUES ?type {
wd:Q835714 # oblasts of Russia - 9 neighbours
wd:Q41162 # republic of Russia - 4
# #wd:Q183342 # federal city of Russia has no foreign neighbours
wd:Q831740 # krai of Russia - 4
wd:Q309166 # autonomous oblast of Russia - 1
wd:Q184122 # autonomous okrug of Russia - 1
}
?region wdt:P31 ?type.
# Russian region share border with some territory of foreign country
?region wdt:P47 [ wdt:P17 ?country].
#?country wdt:P31 wd:Q6256. # ?country is country
FILTER (?country != wd:Q159) # foreign country is not Russia
}
GROUP BY ?country
HAVING ((COUNT(?region)) > 0)
}
?country wdt:P3896 ?shape.
BIND(IF(?count > 9 , "4B0082", # Indigo
IF(?count > 5 , "800080", # purple
IF(?count > 2 , "8B008B", # DarkMagenta
IF(?count > 1 , "9400D3", # DarkViolet
IF(?count > 0 , "DA70D6", # Orchid
"f5cbce"
) ) ) ) ) AS ?rgb).
SERVICE wikibase:label { bd:serviceParam wikibase:language "ru" }
}
Вуаля :) --Andrew Krizhanovsky (обсуждение) 21:07, 23 декабря 2021 (UTC)