Перейти к содержанию

Обсуждение:Программирование Викиданных/Области России

Содержимое страницы недоступно на других языках.
Добавить тему
Материал из Викиверситета

ProWD

[править]

@Татьяна, добрый день. Итак, у нас написано:

В Викиданных больше всего свойств в России и в мире (по данным ProWD) у Ленинградской и Калининградской областей, по 43 свойства. 

Попробуйте объяснить, почему не только в России, но и в мире максимальное число свойств у Ленинградской и Калининградской областей? --Andrew Krizhanovsky (обсуждение) 20:29, 28 сентября 2021 (UTC)Ответить

Добрый день, @Andrew Krizhanovsky. Потому что это области России, соответственно, и для России и для мира это одни и те же объекты. Татьяна Зинченко (обсуждение) 18:40, 30 сентября 2021 (UTC)Ответить

Замок у областей

[править]
Объект «Орловская область» на Викиданных и символ замка справа-вверху, указывающий, что редактирование объекта ограничено, 2021

Свойства Вам добавлять не нужно, раз такое дело. Будут другое задание, следующее:

@Татьяна, я добавил рисунок на Викисклад. Включите, пожалуйста, этот рисунок в свою статью. И найдите на сайте Викиданных (в документации) информацию, что означает этот замок (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)Ответить

Субъекты Российской Федерации

[править]
#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]"}
}

SPARQL запрос

@Татьяна, в этом скрипте:

  1. В комментарии пишем с пробелом первую строчку: #List → "# List". Проверьте, другие скрипты, пожалуйста.
  2. Сократите скрипт "ru,en,[AUTO_LANGUAGE]" → "ru". Как думаете почему почему результат не изменится? Аналогично в следующих скриптах.
  3. Строка "FILTER NOT EXISTS ..." не меняет результаты. Нужна ли она? Аналогично в следующих скриптах.
  4. Добавьте к выводу тип субъекта (область, республика, край и так далее). Как это сделать см. в первом скрипте Космические корабли и станции.
  5. Проверьте, пожалуйста, одинаковые ли будут результаты, если в этом скрипте использовать ключевое слово VALUES вместо UNION (см. первый скрипт в Космические корабли и станции). Если результаты одинаковые, то используйте более компактный скрипт. Если результаты будут разные, то приведите оба скрипта в статье. И попробуйте объяснить, почему они дают разный результат. --Andrew Krizhanovsky (обсуждение) 14:09, 8 октября 2021 (UTC)Ответить
@Андрей Анатольевич, исправила Татьяна Зинченко (обсуждение) 19:46, 13 октября 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)Ответить

@Татьяна, добрый день. Продолжим работу над соседними субъектами.

  1. Запустил скрипт из статьи SPARQL-запрос и посмотрел результат. В статье написано "На нем (графе) отчетливо видно изолированную компоненту, которая является Калининградской областью." Но это не изолированная вершина, к сожалению, оказалась. Какая-то ерунда, в виде "уездов" есть в графе, привязана к Калининградской областе, например, w:Таурагский уезд. Но это ведь уезд Литвы, не России! Очевидно, что на переменную "sharesBorderWith" следует наложить ограничение, что "sharesBorderWith" может быть не чем угодно, а должен быть экземпляром либо области, либо республики, либо города федерального значения и так далее (полный список см. в списке ?type). Мне видится, что можно ввести переменные ?subject1 instance of ?type1, ?subject2 instance of ?type2. Где ?type1 и ?type2 задаются через VALUES.
  2. Когда получится, то сделайте скриншот и покажите, что Калининградская область на самом деле изолирована и никого не касается.

Я помню, про код выше w.wiki/4DQG. Хотелось бы его расширить с Вашей помощью, Татьяна, чтобы включить третий компонент. --Andrew Krizhanovsky (обсуждение) 16:51, 11 ноября 2021 (UTC)Ответить

@Андрей Анатольевич, добрый день. Вот, что у меня наконец-то получилось. Каждый объект имеет свой цвет, соответствующий типу. Также в графе компонента "Калининградская область" изолирована. К сожалению, сервису не удается сформировать короткую ссылку. Ссылка

Численность населения отдельных субъектов Российской Федерации

[править]

@Татьяна, хотел бы я знать, можно ли менять размер кружка. Пока что получается скучная и малоинформативная карта. Давайте думать вместе. --Andrew Krizhanovsky (обсуждение) 14:09, 8 октября 2021 (UTC)Ответить

@Андрей Анатольевич, не могу найти информацию, как поменять размер кружка на карте Татьяна Зинченко (обсуждение) 19:51, 13 октября 2021 (UTC)Ответить

SPARQL-задачи

[править]

@Андрей Анатольевич, идеи для задач:

  1. Подсчитать количество субъектов РФ в федеральных округах. Можно вывести результат, например, в bubble chart.
  2. Составить гистограмму численности населения субъектов РФ.
  3. Составить граф водных объектов (моря, озера или реки) для субъектов РФ.

@Татьяна, добавьте эти задачи в раздел "Будущая работа", пожалуйста.

В качестве задачи для решения предлагаю взять такую:

Найти субъекты Российской Федерации, которые граничат с зарубежными странами. Упорядочить их по числу зарубежных соседей. --Andrew Krizhanovsky (обсуждение) 16:55, 11 ноября 2021 (UTC)Ответить

@Андрей Анатольевич, решение задачи https://w.wiki/4VLu Татьяна Зинченко (обсуждение) 18:16, 2 декабря 2021 (UTC)Ответить
@Таня, отлично! Добавьте к этому скрипту, пожалуйста, краткие комментарии в листинг и пояснения текстом после листинга:
  1. Зачем нужны такие строки: FILTER(NOT EXISTS...? Почему они нужны в первом блоке и не нужны во втором?
  2. Что ищется в первом блоке с 3 по 19 строчку, что ищется во втором блоке с 21 по 34 строки?
  3. Что даёт такое ограничение: HAVING ((COUNT(?country)) > 0 )
  4. Не хватает первой строчки в листинге, состоящей только из комментария с кратким пояснением, что этот скрипт делает.

Раскраска пограничных регионов России и соседних стран

[править]
  • @Таня, отлично получилось с регионами России. Добавьте ещё первой строчкой, пожалуйста, комментарий, что делает скрипт и комментарии к 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)Ответить