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

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

Темпоральные странности[править]

"Город" и "Большой город"
  • Количество экземпляров объекта "Город" уменьшилось с 20800 до 9258 записей
  • Количество экземпляров объекта "Большой город" увеличилось со 198 до 3073 записей
Города-побратимы
  • Количество городов без городов-побратимов уменьшилось с 17823 до 7266 записей
  • Количество городов, имеющих города-побратимы, во всем мире уменьшилось с 2973 до 1992 записей
  • Количество городов, имеющих города-побратимы, во России уменьшилось с 207 до 6 записей
Гипотезы
  • Если объекты связаны с численностью проживающего в них населения, то одной из гипотез может быть миграция населения. При этом общее число экземпляров объектов "Город" и "Большой город" не должно было измениться значительно, однако наблюдается его резкое уменьшение. В процессе работы с экземплярами объекта "Большой город" был обнаружен новый объект city/town. По данным ProWD существует 1248 экземпляров этого объекта, при этом 1111 из них - города, расположенные в России.
  • Уменьшение числа городов, как имеющих, так и не имеющих города-побратимы, вероятно, вызвано уменьшением количества экземпляров объекта "Город", для которого решалась задача. Если в запросах заменить объект "Город" на city/town, то, например, количество записей в упорядоченном списке городов по числу городов-побратимов в России изменится с 6 до 270 (2020). В 2017 году количество городов России, имеющих города-побратимы, приравнивалось к 207.
SELECT ?cityLabel (COUNT(?item) AS ?count) WHERE {                   # Counting sister cities  ...
  ?city wdt:P31 wd:Q7930989.                                             # ... of cities ...
  ?city wdt:P17 wd:Q159.                                             # ... belonging to Russia ...
  ?city wdt:P190 ?item.                                              # ... with filled property "sister city"
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
GROUP BY ?city ?cityLabel                                            # Grouping by city
ORDER BY DESC(?count)                                                # Sorting by number of sister cities (descending)

SPARQL-запрос, 270 записей (2020). --Menshiko (обсуждение) 10:52, 25 сентября 2020 (UTC)[ответить]

  • @Екатерина, спасибо за интересное рассуждение. Думаю, что мы его включим в итоговый текст. А сейчас вот:
  1. Перед разделом "1.1 «Город»" добавьте раздел "Малый город, town (Q3957)".
  2. После раздела "1.2 «Большой город»" добавьте раздел "1.4 "Города-миллионеры (Q1637706)".
  3. В эти два новых подраздела добавьте, пожалуйста, по аналогичному скрипту с подсчётом числа объектов.
  4. Раздел "1.3 «Город» и «Большой город»" теперь будет называться: "Разные типы городов". В скрипт этого раздела добавьте два новых типа исследуемых городов.
  5. Все эти изменения отразите также в английской версии статьи. (Это не срочное задание). --Andrew Krizhanovsky (обсуждение) 07:41, 29 сентября 2020 (UTC)[ответить]

Сколько людей[править]

Ещё одна задача, которую хотелось бы решить - это подсчитать, сколько всего живёт людей суммарно (1) по всем малым городам, (2) по всем просто городам, (3) по всем большим городам и (4) по всем миллионерам. Сравнить это число с численностью населения Земли и тогда сказать, каков процент живёт в городах, каков процент живёт в каждом из четырёх типов этих городов. --Andrew Krizhanovsky (обсуждение) 08:11, 29 сентября 2020 (UTC)[ответить]

@Andrew Krizhanovsky, добавила соответствующий раздел и первые версии скриптов по нахождению суммарной численности населения для разных типов городов. Заметила следующие трудности/несоответствия:

  • В качестве разделителя используется точка, например, Sidi Bennour. Как следствие, появляется дробная часть.
  • Явно устаревшие значения, например, Ciudad Juárez имеет население в 1391 человек и в то же время является "городом-миллионером".
  • Принадлежность экземпляра к разным типам городов одновременно.
  • Проблема текущей версии скрипта: если у экземпляра несколько значений свойства "population", то в сумме учитываются все, а не последнее. --Menshiko (обсуждение) 18:09, 29 сентября 2020 (UTC)[ответить]

Иллюстрации[править]

Диаграмма по количеству городов-побратимов у страны[править]

#defaultView:BubbleChart
SELECT ?countryLabel (COUNT(?item) as ?count) WHERE {                  # Selecting number of distinct sister cities of particular country cities which are ... 
  SELECT DISTINCT ?countryLabel ?item WHERE {                          # 
    ?city wdt:P31 wd:Q515.                                             # ... instances of "city" ...
    ?city wdt:P17 ?country.                                            # ... with filled property "country" ...
    ?city wdt:P190 ?item.                                              # ... with filled property "sister city"
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
  }                                 
}
GROUP BY ?countryLabel
ORDER BY DESC(?count)

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

@Andrew Krizhanovsky, подойдет ли такая диаграмма в качестве одной из новых иллюстраций к статье? --Menshiko (обсуждение) 20:46, 29 сентября 2020 (UTC)[ответить]

  • @Екатерина, очень хорошая иллюстрация. В качестве пояснения текстом после диаграммы, можно, например, сказать, что Польша имеет больше всего побратимов, указать сколько. Перечислить страны, имеющие с Польшей больше всего городов-побратимов и скрипт, который позволяет вычислить и упорядочить страны, имеющие больше всего побратимов с городами Польши. Если это возможно. --Andrew Krizhanovsky (обсуждение) 10:46, 1 октября 2020 (UTC)[ответить]

Граф братских городов[править]

#defaultView:Graph
SELECT ?city ?cityLabel ?item ?itemLabel WHERE {                  # Selecting which are ...
    ?city wdt:P31 wd:Q515.                                        # ... instances of "city" ...
    ?city wdt:P190 ?item.                                         # ... with filled property "sister city" which is ...
    ?item wdt:P17 wd:Q159                                         # ... belonging to Russia
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}

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

На занятии также обговаривался граф братских городов в качестве второй из новый иллюстраций к статье. Граф для мира очень большой (> 10 тысяч связей), поэтому ограничилась братскими городами России. Если углубляться в скрипт, то, на самом деле, он находит не города-побратимы России, а города, для которых города России являются побратимами. Хотя отношение и двустороннее, в первом случае граф будет очень маленьким из-за практически отсутствия городов России, относящихся к объекту city (описано в "Темпоральные странности"). @Andrew Krizhanovsky, надо ли внести изменения в скрипт или выбрать другую страну для рассмотрения? --Menshiko (обсуждение) 17:12, 3 октября 2020 (UTC)[ответить]

@Катерина, в скриптах, которые находятся в разделе "Города-побратимы", хотелось бы, чтобы поиск шёл по всем четырём типам городов, которые Вы перечислили в табличке выше. Тогда вместо строчки:
?city wdt:P31 wd:Q515.
у вас будет:
       { ?city wdt:P31 wd:Q3957 } UNION                  # of instances of "town" ...
       { ?city wdt:P31 wd:Q515 } UNION                   # OR instances of "city" ...
       { ?city wdt:P31 wd:Q1549591 } UNION               # OR instances of "big city" ...
       { ?city wdt:P31 wd:Q1637706 }.                    # OR instances of "city with millions of inhabitants"
Получается такой скрипт: Число городов с определённым числом побратимов (Россия) (предлагаю использовать немного другие переменные, например, ?sister (город-побратим) вместо безликого ?item).
И объясните несовпадение результатов, когда мы ищем

?city wdt:P17 wd:Q159. (?city принадлежит России) и наоборот ?sister wdt:P17 wd:Q159. (город-побратим принадлежит России). --Andrew Krizhanovsky (обсуждение) 19:56, 4 октября 2020 (UTC)[ответить]

@Andrew Krizhanovsky, правильно ли я поняла, что нужно сделать:
  • Абсолютно во всех скриптах раздела "Города-побратимы" заменить указанную строку на UNION
  • Как следствие, оставить количество результатов запроса и графики только за 2020 год
  • ?item -> ?sister
  • Изменить графики (2020) и таблицы по новым данным
Результаты запросов различны, поскольку мы не накладываем ограничений/условий на тип города города-побратима. Как было описано в "Темпоральные странности", появился новый объект "city/town". Во втором случае учитывается указанный ранее (как и любой другой) тип города России, в первом мы явно указываем, что нас интересуют только 4 ("town", "city", ...). Надеюсь, я смогла донести свою идею. --Menshiko (обсуждение) 20:45, 4 октября 2020 (UTC)ё[ответить]
@Andrew Krizhanovsky, внесла правки в русскоязычную версию. Посмотрите, пожалуйста. --Menshiko (обсуждение) 17:30, 5 октября 2020 (UTC)[ответить]
  1. @Катя, прекрасная работа! Добавил строчку про проценты городов без побратимов. Напишите то же в английской версии, пожалуйста. И в первой строчке статьи можно указать ещё два типа рассматриваемых городов.
  2. Исправил где-то код языка с английского на русский. Если ещё где-то на своей странице в Русском Викиверситете увидите, что выводится текст на английском, то исправьте, пожалуйста, на русский.
  3. После строчки "SPARQL-запрос, 82 записи (2020)" в разделе "3.2.2 Россия" напишите пару строк с анализом, что-то типа: "С культурной столицей России желающих дружить нашлось больше (230 побратимов), чем с официальной столицей (134 побратима) на 2020 год. Почти одинаковое число 54-58 побратимов делят Омск, Волгоград и Калининград. У Петрозаводска, Перми и Владимира по 14 побратимов."
  4. Предлагаю убрать фразу "На 2020 год больше всего городов-побратимов было у Санкт-Петербурга, их у него 230" из двух разделов 3.3.1 и 3.3.2, поскольку это уже будет сказано выше, но зато подумать и добавить текст с пояснением, что мы видим довольно интересную кривую. А именно, "по зелёной кривой видим, что если брать число побратимов X, при этом X < 38, то городов с X побратимами будет меньше десятка. Если потребовать, чтобы у городов было X побратимов, X < 13, то таких городов с X побратимами будет уже около сотни."
  5. Ещё по этому зелёному графику. Можете по вертикали отложить логарифм? Тогда график будет называться "Логарифмическая ависимость числа городов..." и будет лучше видно значение N по шкале при малых значениях.
  6. Добавьте, пожалуйста, скрипт и картинку о ближайших соседях России (по аналогии с Германией, но ещё одну таблицу не надо). И перечислите после картинки, что больше 20 городов-побратимов у России с такими странами, как США (47 городов-побратимов), Китай (46), Германия (45), Украина (28), Болгария (26), Польша (24), Франция (23), Италия (22). --Andrew Krizhanovsky (обсуждение) 09:43, 6 октября 2020 (UTC)[ответить]
@Andrew Krizhanovsky, внесла правки. --Menshiko (обсуждение) 12:31, 8 октября 2020 (UTC)[ответить]

@Катерина, замечательно, что оставили старый зелёный график и добавили новый светло-зелёный логарифмический. Поведение кривой на новом графике стало намного нагляднее, но ось Y малоинформативна. Можете ли сделать одно из двух или оба сразу по новому графику:

  1. Указать значения на оси Y от нуля до 1400, сохранив при этом логарифмический характер кривой?
  2. Включить label (числовые значения) у зелёных треугольничков на кривой?

Формулу с игреком и R^2 хорошо бы отодвинуть от края, сейчас формула прилипла к оси Y. Хорошо бы увеличить размер всех шрифтов: подписи у осей, числа, формула с игреком. --Andrew Krizhanovsky (обсуждение) 19:05, 8 октября 2020 (UTC)[ответить]

@Andrew Krizhanovsky, увеличила шрифт на всех графиках и количество делений на графике логарифма, добавила значения к треугольничкам. Сместить параметры функции не получается, это встроенная функция построения тренда. --Menshiko (обсуждение) 11:48, 9 октября 2020 (UTC)[ответить]
Загрузила еще одну версию с нелогарифмической шкалой и соответствующими значениями у треугольничков, но количество делений не увеличивается. @Andrew Krizhanovsky, оставьте или верните, пожалуйста, ту версию, которая больше подходит. --Menshiko (обсуждение) 12:04, 9 октября 2020 (UTC)[ответить]

Город=?[править]

В общем, почти во всех запросах, вместо того, чтобы объединять несколько типов городов через UNION, лучше использовать конструкцию "?city wdt:P31/wdt:P279* wd:Q7930989". А для городов России и "ближнего зарубежья" этот класс (город) - основной и единственный, который используется. Отсюда и "проблемы" с российскими городами, описанные выше. Infovarius (обсуждение) 10:10, 23 октября 2020 (UTC)[ответить]

@Катя, проверьте, пожалуйста. Если применить конструкцию, предложенную Infovarius, существенно ли уточнятся / улучшатся результаты? Если да, то используйте именно эту конструкцию в скриптах.
@Антон, спасибо большое за подсказку! --Andrew Krizhanovsky (обсуждение) 06:03, 24 октября 2020 (UTC)[ответить]
  • @Екатерина, ещё просьба. Если и когда будете применить конструкцию, предложенную Infovarius, то выберите один из скриптов с UNION. В этом одном скрипте оставьте UNION, а рядом напишите, пожалуйста, тот же скрипт, но с подмножествами, предложенными участником Infovarius. И добавьте абзац текста с пояснением, в чём разница этих двух скриптов. Это поможет читателям понять, когда какой скрипт лучше применять. (Вопрос про SVG помню, разбираюсь.) --Andrew Krizhanovsky (обсуждение) 16:29, 25 октября 2020 (UTC)[ответить]
  • @Andrew Krizhanovsky, не согласна с необходимостью использования другой конструкции по ряду причин:
  • Во-первых, замена конструкции с UNION неэквивалентна предложенной. Так, выполнив новый SPARQL-запрос (без LIMIT запрос не удалось выполнить по временным ограничениям), я обнаружила в выборке экземпляры объектов, которые исследуемыми не являются. Например, Sparta (Sparta is an instance of ancient city, ancient city is a subclass of lost city, lost city is a subclass of city, city is a subclass of city/town).
  • Во-вторых, использование объекта city/town более чем в половине запросов, при условии, что он не является исследуемым, может вызвать у читателей статьи и других исследователей вопросы. На мой взгляд данный объект является скорее "исключением", поскольку распространяется, как было сказано, только на города России и ближнего зарубежья (что в описании объекта не сказано: "тип населённого пункта (вместе city + town)").
  • В-третьих, объект был обнаружен в ходе исследования, поэтому, я считаю, что следует уделить ему внимание в заключительной части.

Конечно, текущий вариант запроса имеет недостатки. Например, дублирование городов в нескольких рассматриваемых категориях в связи с присвоением им "статусов" разных типов городов одновременно. Однако это связано по большей части с качеством самих Викиданных, а не с корректностью запроса. --Menshiko (обсуждение) 10:52, 30 октября 2020 (UTC)[ответить]

  • @Катерина, спасибо за активную жизненную позицию :) Предложение будет такое. В Вашей статье есть раздел «Полнота Викиданных». Предлагаю переименовать его в следующий: «Полнота и недостатки Викиданных». В этом разделе сейчас оптимистично указана возможность использования конструкции с подклассами "?X wdt:P31/wdt:P279* ?Y". Прошу Вас добавить в этот раздел следующие ложки дёгтя:
  1. информацию о неэквивалентности подклассов и конструкции UNION + пример.
  2. Особенность для городов России.
  3. Недостатки конструкции UNION. (То есть это всё те же замечания, которые Вы перечислили выше). --Andrew Krizhanovsky (обсуждение) 20:33, 30 октября 2020 (UTC)[ответить]
Шаблон:Ping насчёт дублирования - это нормально, надо добавить "DISTINCT" после "SELECT" и оно исключится. Infovarius (обсуждение) 07:51, 6 ноября 2020 (UTC)[ответить]

@Andrew Krizhanovsky, хотела бы уточнить несколько вопросов по оформлению и содержанию главы в книге:

  • Необходимо ли вставлять перед каждым листингом блок "Используется" с описанием объектов и свойств, как в статье на Викиверситете? Если да, то можно вынести его на поля? (занимает много места)
  • Каким образом зафиксировать результаты запроса (количество записей) и надо ли это указывать?
  • Необходим ли раздел "Будущая работа" в тексте главы?
  • Упражнения можно вставлять в любом месте главы на полях?
  • В ответах к упражнениям дополнительно к тексту можно вставлять листинги SPARQL-запросов?
  • Можно ли переформулировать исключительно для главы упражнение №2 с флагами? Например, какому из перечисленных ниже городов принадлежит флаг, изображенный на рис.?
  • Можно ли не вставлять в главу предложения "Наиболее полно описанными городами на Викиданных являются ..." и "Почти пустыми и малоинформативными городами оказались ...", а оставить только информацию ProWD? Где-то информация неактуальна, например, Петрозаводск уже не является экземпляром объекта "Город". --Menshiko (обсуждение) 19:13, 1 ноября 2020 (UTC)[ответить]
Еще есть небольшая проблема с упражнением №3: у Москвы дата основания некорректно считывается при запросе, как результат не отображается в ответе. Не могли Вы, пожалуйста, посмотреть, можно ли с этим что-то сделать. --Menshiko (обсуждение) 09:57, 2 ноября 2020 (UTC)[ответить]
Екатерина, спасибо большое за вопросы. Постараюсь на них ответить. --Andrew Krizhanovsky (обсуждение) 16:21, 2 ноября 2020 (UTC)[ответить]
@Andrew Krizhanovsky, заранее спасибо за ответы! Появились еще два небольших вопроса:
  • С некоторыми запросами почему-то укорачивание ссылки не работает. Пробовала WikiQuery и bit.ly. Например, SPARQL-запрос. Чем это может быть вызвано?
  • В список литературы нужно включать все ссылки кроме как на Викиданные/Википедию/Вики...? --Menshiko (обсуждение) 12:55, 4 ноября 2020 (UTC)[ответить]
  1. Вот ссылка: https://w.wiki/k6B Я убрал многоточия и лишние пробелы. Мне кажется, так листинг компактнее и удобнее его читать. И ссылка заработала. А я не верил в искусственный интеллект :) Ссылка как оценка красоты кода: ссылка работает - код покрасивше.
  2. @Катя, думаю, да: включаем в литературу всё, кроме вики-ссылок. Вики-ссылки и прочие гиперссылки ставим также прямо в тексте с помощью команды \href. --Andrew Krizhanovsky (обсуждение) 14:55, 4 ноября 2020 (UTC)[ответить]
  3. @Катя, в русском тексте привычнее видеть «Шанхай», а не Shanghai. --Andrew Krizhanovsky (обсуждение) 16:08, 4 ноября 2020 (UTC)[ответить]
@Andrew Krizhanovsky, с короткими ссылками разобралась, спасибо! Есть ли еще какие-то недочеты в "Полнота и недостатки Викиданных" или можно размещать в английской версии перевод? --Menshiko (обсуждение) 17:34, 4 ноября 2020 (UTC)[ответить]
  • @Катя, мелочи поправил. По поводу "SPARQL-запрос по нахождению городов разных типов". Я утоптал комментарии, получилось: https://w.wiki/k7u Аналогично в листингах, если комментарии написать компактнее, то они будут влезать на одну строку с кодом, сейчас не влезают. Да, и можно переводить. --Andrew Krizhanovsky (обсуждение) 18:54, 4 ноября 2020 (UTC)[ответить]

Викиданные и рисунок[править]

@Andrew Krizhanovsky, добавила вопрос на странице обсуждения Москвы. Хотела бы уточнить насчет иллюстрации для заглавия английской версии, подходят изображения только с лицензией Free Art License? Я бы хотела использовать часть изображения, но у него лицензия другая (Creative Commons Attribution, CC BY 2.5) и надо указать автора, лицензию и примененные изменения. Все кроме последнего вроде есть в шаблоне подписи. --Menshiko (обсуждение) 20:08, 10 ноября 2020 (UTC)[ответить]

  • @Катерина, спасибо за вопрос на Викиданных. Я тоже там задал вопрос специалисту.
  • Лицензия Creative Commons Attribution годится. Именно под этой лицензией будет наш учебник. Эта лицензия разрешает менять изображение (вырезать, например).
  • Не уверен, что в описании иллюстрации нужно писать о том, что именно Вы изменяли. Таких изменений могут быть сотни для одной иллюстрации... --Andrew Krizhanovsky (обсуждение) 21:13, 11 ноября 2020 (UTC)[ответить]