Работа для бота (требуется помощь ботоводов)

так это не проблема - name не интернационален

подкину ещё одну проблемку для размышления (довольно глобальную):
есть город, часть населения которого говорит на одном языке, часть - на другом
соответственно, общеупотребимых вариантов названий тех же улиц два - по одному на каждый язык
возникает вопрос - какую систему нужно создать чтобы каждый житель города мог пользоваться картой с наименованиями на более подходящем ему языке?

да, согласен, очень важная задача
но нет места, куда бы можно было централизованно выгружать результаты
да и вобще, нет какой-то либо хорошо организованной системы по работе с ошибками
(из тех что видел - больше всего нравится OSM Inspector)

в обоих указанных случаях рендерер есть, пусть даже и не стандартный/не популярный

но ведь формат записи данных со временем то меняется, что вполне логично - система развивается
и для такого развития вполне можно использовать знания, полученные от пользователей и разработчиков рендерера

Как раз решение этой проблемы в OSM существует.
И отсюда, кстати, следует, что рендер должен быть настраиваемым под пользователя, а не просто отображающим то, что нарисовал создатель.

У OSM есть масса проблем, причем как общих для всего СПО, так и уникальных.
Но практика показывает, что ни одна из них не решается кавалеристским ударом.

Это как раз не проблема нисколько.

Для хранения различных наименований есть не только тэги «name» (и подобные), но еще и «name:языковой_код». Ничто не мешает завести название на обоих языках (да хоть вообще на всех языках мира плюс на множестве искусственных языков). И делать два варианта карты через различные настройки рендерера — а пользователь пусть качает/смотрит тот вариант, который ему понятнее.

хотелось бы его увидеть
из того что первое приходят в голову - отказ от чистого name тега
(и, возможно, какая-то затычка, позволяющая в переходной период определять локальный язык для визуализации глобальной карты)

какова тогда судьба name тега?

не совсем понял как это относится к работе с ошибками, ну да ладно
с общей мыслью согласен - если бы всё было просто, проблему бы уже давно решили

топик-стартер, по ходу, не читатель. Зато писатель - “тот ещё”. Вон сколько пишет …

главное чтобы не появилось бешеных ботов, которые будут по своему усмотрению менять всё подряд :slight_smile:

Интересно, а как можно писать географические названия без “Ё” и утверждать что это правильно? Вы ни разу не догадаетесь как произносится название если не слышали его ни разу от местного. Вот просто подряд несколько населённых пунктов Московской области, из топонимического справочника:

Аксеново или Аксёново?
Алферово или Алфёрово?
Астренево или Астренёво?
Бирево или Бирёво?
Большие Вяземы или Большие Вязёмы?
Карасево или Карасёво?
Колычево или Колычёво?

Если Вы ни разу не слышали это название, то наверняка хоть в одном из этих названий ошибётесь. Есть же город Тимашевск, а станция при нём - Тимашёвская. Точно также как наверняка сходу не поставите правильное ударения на каком-нибудь финно-угорском названии деревни. Замена “Е” на “Ё” очень сомнительная операция …

P.S. В Питере есть очень характерная улица - Лени Голикова :slight_smile: Я то знаю, что на самом деле это Лёня - Леонид. А вдруг кто-то приезжий так и прочитает - Лень Голикова.

Предполагаю, что твой пост писался одновременно с предыдущим, т.к. в последнем содержится ответ на твой вопрос.
Кстати, незнание тобой этого механизма наводит на мысль, что ты слишком плохо знаком с OSM, чтобы делать выводы о том, что в нем есть ошибка, а что - нет.

Будет жить и процветать.
Хотя бы потому, что имеет вполне реальную ротль - название на языке, носподствующем (или преобладающем) в данной местности.
Действительно, объекты можно грубо подразделить на две категории:

  1. Значительные, представляющие всеобщий интерес и отображаемые на обзорных картах.
  2. Представляющие интерес только для данной местности.
    Причем первые имеют достаточно длинный список name:*, а вторые, как правило, только name.

Очень просто: то, что новичок может считать работой над ошибками, старожилы, лицезреющие подобные дискуссии каждые полгода, давно привыкли относить к искажению данных, для которого в настоящем сообществе принят термин “вандализм”.

Спасибо товарищу TarzanASG за приглашение в топик.

Я обажаю обитателей российского форума за умение найти проблемы там, где их нет, и всё портить попыткой их решать.

ОСМ на белорусском. Фрагмент.

http://latlon.org/?zoom=13&lat=53.88047&lon=27.5853&layers=B0

В тег name волевым решением (ололо, не демократия, голосуем!) записывается название на одном из языков.
Названия на всех остальных выносятся в другие языковые теги. В том числе допускается дублирование, name - name:ru

Вообще, моё отношение к автоматизированным правкам очень простое: делая их, надо доставлять минимум неудобств, либо быть готовым всё оперативно поправить по первому требованию.
Учитывая, что топикстартер показывает неспособность быстро отреагировать (даже josm не освоил), вся тяжесть и головная боль после ботоправки ляжет на того, кто будет ей заниматься.

В связи с этим, в виду отсутствия у меня желания спорить и сражаться с кем-то за какие-то теги, делать правки размером больше пары городов я не собираюсь, и вам не советую.
Особенно учитывая, что на правку топикстартер вынес весьма спорные вопросы, не решающие практических задач.

Если появятся вопросы или проблемы, действительно решаемые парой глобальных замен (типа перепутанных при импорте полей) - тогда да.

я и не называл это ошибкой
скорее концептуальная проблема
данное обсуждение было бы слишком простым если бы я не знал про расширенные name теги :wink:

и будет до конца веков служить поводом для холиваров
ладно, с этим можно смириться
основная проблем в другом:
нет никакого алгоритма, позволяющего узнать - на каком же языке таки указан name
и, что самое плохое, также нет механизма, позволяющего этот язык указать!

проблема поменьше, но тоже довольно актуальная - появляется возможность внести два названия на одном и том же языке. (упрощённо для России - в значение тегов name и name:ru)
какое из них главное - неясно. что делать если они отличаются - неясно

в связи с тем что релейшен associatedStreet работает некорректно без явного прописывания в него адреса, возникает так же вопрос - какое из названий улицы туда вписывать (в name/addr:street)? или может дублировать все языковые варианты?

на карте появляются некорректные данные
какая разница каким термином это обозначить и какие у этого причины?
если бот будет проверять, к примеру, карту на подозрительные теги, то ему будет всё равно - или юзер нагадил сознательно или просто впечатал тег в неверной раскладке

именно поэтому предпочитаю всё вначале обсудить
порча началась если б полез сразу править (прям как в вики - ВП:ПС)

новая пачка вопросов про нейм теги малость повыше :wink:

Процитирую себя:

Вы можете не верить, но холиворы - свойственны практически исключительно российскому коммьюнити.

Простите, а для чего это нужно? В name пишется текст для fallback, когда значение для других языков не проставлено. В любом случае, по проверка на побуквенное совпадение со значением тегов name:* выдаст вам код языка. Если не выдаст, то считайте, что этот текст на “любом другом” языке.

Не вижу никакой проблемы, если в name будет McDonald’s, а в name:ru=Макдональдс. Какую проблему это создаёт на практике?

Очевидно, все. И associatedStreet - не лучший выбор, но не мне за вас решать.
Появляется закономерный вопрос, надо ли вообще хранить значения тегов на линиях и полигонах, или можно оставить их только на релейшенах. Если вам он кажется диким, напомню вам про существование мультиполигонов. То, что они поддерживаются несколько большим набором софта, чем остальные релейшены, может не останавливать хоть немного программистов.

Проверять и исправлять в автоматическом режиме - несколько разные вещи. Мы до сих пор вычищаем КЛАДРоботовские простановки кладрокодов по нашу сторону границы с РФ.

Предвижу тред на 15 страниц.

Обязательно.
И не только по этому поводу.
Выше я упомянул, что name - для имен собственных. Но не все придерживаются этого мнения. Иногда его используют вместо мусорного контейнера - для указания чего-то, для чего не знают подходящего тега. Например, “Дорога, ведущая к пионерлагерю” или “Дыра в заборе, через которую мы бегали в самоволку”.

С одной стороны можно придумать массу емпирик. А с другой - в каком случае такое знание может понадобиться? Если есть теги name:* - это не нужно, если нет - тем более.

Механизм есть, но ты уже не первый раз делаешь вид, что тебе о нем неизвестно.

Скажу больше: в OSM предусмотрена возможность указания разных названий в количестве гораздо более двух (loc_name, alt_name, etc.). И кроме нее существует возможность вдобавок установить локальную специфику (напр. cladr:name).

И что же в данной ситуации должен делать бот?
Мне кажется, этот пример как раз подтверждает, что боту здесь делать нечего. Кроме как проинформировать человека об имеющемся противоречии.

Основные причины две:

  • неграмотность пользователя,
  • отсутствие стандарта и общепринятого понимания, каким он должен быть.
    Вкратце обе причины - разница во мнениях между разными людьми, участвующими в проекте.
    Но они есть и неизбежно будут в открытом проекте.

Это лишний раз показывает, что боту нельзя доверять работу по “исправлению”.

В КЛАДРе встречаются, хоть и нечасто, названия с буквой “ё”.

Средство сверки ЕСР перед сравнением приводит все имена к каноническому виду, который включает в себя замену “ё” на “е”. В результате если в одном источнике будет написано “ё”, а в другом - “е”, оба имени, тем не менее, будут признаны одинаковыми.

Как правило, многие средства валидации OSM не вносят правок в базу, а показывают тем или иным способом ошибки и расхождения. Далее мапперы уже усилием мысли выясняют, что именно необходимо исправлять в том или ином случае. Для автоматизированных исправлений нужны веские основания и очевидный алгоритм разрешения проблем. Например, xybot автоматически заменяет addr:country=Россия на addr:country=RU, потому что такая правка очевидна и не вызывает вопросов. Если бы бот изменял название населённого пункта под КЛАДР - это было бы неправильно, потому что не все населённые пункты есть в КЛАДР, и не вся информация в КЛАДР точна и актуальна.

эта информация нужна для корректной реализации многоязычной поддержки
допустим, предпочтения языков у пользователя указаны как “ru,uk,en”
при этих настройках ему попадается объект с указанными тегами name и name:en
без наличия информации об языке name, системе прийдётся показать надпись :en
хотя русское (или может украинское) название у объекта будет присутствовать

попробую пояснить
есть две записи:
первая - name - имя на каком-то-языке
вторая - name:en - имя на английском языке
в первой записи нет никакой информации о языке
и её туда никак не всунуть
можно добавить ещё кучу тегов - name:ru, name:uk, name:de, …, но язык name так и останется тайной

вот именно - разных
если же локальный язык территории - русский и никакой другой, то теги name и name:ru будут содержать одинаковые названия

при переименовании объекта необходимо вносить соответствующие изменения и в базу данных
но так как структура базы данных для своей нормальной работы требует дублирования информации, то данные прийдётся обновить во многих местах
вполне логичен вопрос - с какого места нужно начинать? (люди ведь не любят делать глупую работу - поэтому задачу синхронизации информации name:ru/name тегов можно поручить боту, если локальное сообщество не против)

значит ещё +1 место надо актуализировать если изменится имя

лучший из того что есть
но сам по себе не очень хорош, да

желание уменьшить дублирование вполне естественно
сколько вот времени пытаюсь тут показать что от него надо стараться избавляться

проблема концентрации данных в релейшене в том, что такое решение неочевидно для большинства редакторов
из-за этого велика вероятность что новичок полезет ставить name теги на улицы
чтобы такого не произошло, программа ему должна явно показать что данные уже заполнены, находятся в релейшене и вей трогать не надо
возможно, есть ещё какие-то побочные эффекты такого подхода, к примеру, трудности в реализации. тут нужно исследовать

да, об этом и шел разговор
исправлять можно только если уверенность что бот ничего глобально не испортит
в остальных случаях лучше создавать некий TODO-список
и каким-то образом передавать его редакторам для обработки

если это поможет улучшить базу, то почему бы и нет

andriano, с какой стати полезные автоматизированные правки могут быть вандализмом?

Komяpa, что за дискриминация по редакторам? И почему должны быть какие-то ошибки и головная боль? Какие такие большие проблемы может вызвать, например, ёфикация? И я считаю, что я поднял достаточно важные вопросы.

Alexandr Zeinalov, ёфикация Пятёрочки и Перекрёстка совершенно очевидна, а какие могут быть проблемы я вообще не представляю.

Автоматизированные правки практически всегда вредные, потому что вы правите то, чего не знаете. Даже с кладр-кодом не совсем получилось, см. выше.

От ефикации проблема такая, что она делается вопреки правилам русской орфографии. Более того, вполне может быть, тот кто написал “Пятерочка” и “Перекресток” сознательно отвергал идею ефикаторства. Проявите уважение к чужому мнению.

Идея, как ты говоришь, “ёфикаторства”, в том, чтобы писать правильно и не вводить никого в заблуждение. Абсолютно то же самое, что писать “у” там, где нужно писать “у”. Иначе будут вас иностранцы спрашивать про “пятЕрочку”…

А если он гадость на заборе напишет? У нас в стране пишется Пятёрочка, в name надо писать то, что написано на вывеске магазина, а не то, что мировоззрения подсказывают.
http://www.e5.ru/

У нас в стране существует множество заведений с таким названием, не относящимся к данной сети, и на вывесках у них может быть написано разное.

Кхм, бред. Правила допускают написание через е, но не требуют его, особенно в названиях топонимов.

Дико извиняюсь конечно, но к чужому бреду уважения проявлять не собираюсь. Сто раз уже аргументы за Ё приводились, надоело. Ну и в конце концов, даже уважение – не всегда повод отказаться от правки.