Перевод названий всех городов

Хорошо написано)

Автоматизированного решения здесь быть не может.

У задачи даже нет единственности решения.
Был Свеборг, потом постепенно превратился в Суоменлинна.

Для примера: вы знаете английское наименование Могилёва?
Мало того, что Ё меняется мода как передавать Ё, так, опять же, с какого языка передавать, тоже мода меняется.
Какое название нужно в каком случае — дело тонкое.

В Литве традиционные русские (древолюционные) названия (Шавли) при СССР переделали из литовских согласно неким правилам транскрипции (Шауляй).
Пришли времена новой демократии и правила поменяли (Щауляй).
Вам какое русское название Šiauliai ближе?

Ну и как не вспомнить эту историю с Таллинным?

Для китайского языка названий на латинице недостаточно.
Названия 通江(Tōng jiāng) и 同江 (Tóng jiāng) на “чистой” латинице без пиньина неразличимы (http://fuyuan.ru/872).
А пиньин можно показать тому же китайцу и, даже не зная языка, на пальцах узнать дорогу.

И чья в том вина, что арбатская пья-я-янь
пьет водку из чашек династии Táng!

Смотрим, наслаждаемся: http://www.youtube.com/watch?v=rTZteTqicLM

Так или иначе, дело движется:

У меня вопрос.
В поле name полно названий, дублированных латиницей:
直方市 (Nogata)
سنار Sennar

Я так понимаю, это и есть легендарное «рисование под рендер». Name:en или name_int нигде не отображается, а одни иероглифы на карте видеть — не круто.
В таких случаях латиница из этого поля должна переехать в name_int, так?

Э-э-э. Как вас ещё не забанили с таким пониманием региональных стандартов?

А что не так?

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

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

Не так. От страны зависит.
Мы сейчас не про Россию - так? :slight_smile:
Тогда стоит почитать в wiki схему наименования той конкретной страны. Например, если не ошибаюсь - в Японии вынос в name английского названия в скобках после иероглифов - местная норма.

Мой вопрос скорее в том, почему это делается прямо в базе, а не на этапе отрисовки. Так гибкость теряется. Два языка в одном поле — это бессмыслица.

Потому что соглашение едино, а рендеров-конвертеров сотни, со всеми не свяжешься и не договоришься. Нативно часто поддерживается всякими программами мапник только и т.п.

В базе я вижу для одной и той же страны названия латиницей в скобках, без скобок, через пробел, без пробела, через слэш, в верхнем регистре и еще несколько вариантов. Соглашение, может, едино, но бардак присутствует. Только в Японии более-менее порядок. Кроме того, «соглашение», которое описано в wiki OSM, подразумевает, что есть поля name:en и name:LN, в которых названия даны по отдельности. В жизни этого нет.

И этот бардак не разберут никакие алгоритмы транскрипции или что там еще… Для одной страны — да, можно придумать. Для всего мира — не реально.

Я постепенно убеждаюсь, что такая слабо структурированная система слабо подходит для какой-либо машинной обработки. Даже из Википедии оказалось проще распарсить данные. Там есть шаблон для описания населенных пунктов. Он описан, понятен и соблюдается достаточно строго. Ошибки и неопределенности есть менее чем в 1% случаев на 161 000 точек.

Транслитерация вещь сильно в себе. Она должна быть уникальной для каждого языка. Тут даже просто привести примеры. Вот как пишутся названия некоторых населённых пунктов на территории России и попытки их “интернализировать”.

Вщиж - Vshchizh
Тлюстенхабль (адыг. Лъэустэнхьабл) - Tlyustenkhabl
Выдропужск - Vydropuzhsk.
Ыллымах - Yllymakh

Когда в языке-источнике используются совсем другие звуке чем в языке отображения то получаются очень странная смесь букв. И то что поймёт англичанин с трудом прочитает француз. Ведь не смотря на то что и тот и другой использует алфавит построенный на латинице все эти страшные нагромождения букв звучат по-разному. Ведь тот же Челябинск по-французски передаётся как Tcheliabinsk.

Тот же самый Вщиж в итальянской википедии называется Vščiž. А Тлюстенхабль на испанском (согласно википедии) - Tliustenjabl

Аналогично и с азиатскими языками. Не надо думать что транслитерация у англичан и русских будет одинаковой …

Поэтому ффтопку двойные “названия”.

skymeteo, никто и не говорил что база идеальна, скорее наоборот, требует дополнительного переваривания для использования в своих целях. И поддерживать такую огромную базу в порядке реально не просто, википедия всё-таки статьи, а у нас куча “типов” и вариантов данных, от люков на дороге до 3Д моделей :slight_smile:

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

5 раз, боже мой! Соберите аргументы и напишите в wiki — больше не будет этой темы.

Тут пять страниц обсуждения. На каждой странице разные предложения и инициативы. Я тогда вообще ничего про OSM не знал, поэтому идеи менялись вместе с появлением новой информации. Это всё были рабочие идеи для обсуждения, а не готовое ТЗ. Но в каждой инициативе вам (сообществу) что-то да не нравилось. Лицензионная паранойя, импорты не приветствуются, новые теги никому не нужны и почти все уверены, что сейчас всё прекрасно. На каждой странице мне говорили, что идея плохая.

Мне в самом начале написали «это тема для википедии, а не OSM». Но для меня было очевидно, что именно для OSM, т.к. у вас, по идее, должна быть хорошо структурированная база географических данных. Сама возможность выгрузки в json всех городов (по тегу type=city) как бы намекала на это. Но в реальности оказалось, что данных мало, качество хреновое, а в базе — бардак. Набор недокументированных тегов без типизации и без валидации, да еще и рендер, провоцирующий вводить некорректные данные. Плюс сообщество консерваторов, которых трясет от слова «импорт». То есть, нет перспектив, что качество данных принципиально улучшится в ближайшие несколько лет.

А в Википедии нашелся шаблон {{НП}}, по которому можно парсить точки. Шаблон хорошо описан и соблюдается в 98% случаев (сейчас я в этом уверен, т.к. распарсил 161 000 стратей). Да, парсить сложнее. Скрипт получился аж в 250 строк и работает он минут 40.

В итоге у меня сейчас есть готовый «валидатор» населенных пунктов, но я не буду приделывать к нему импорт в OSM, а сделаю из него бота для Википедии, т.к. там сообщество принимает такую схему работы. Есть правила для ботов, они открыты и понятны. Можно их почитать и сделать так, чтобы всех всё устраивало. Есть форум для ботоводов, где отвечают на вопросы. И там понимают, что навести порядок в сотне тысяч записей можно только с использованием автоматизации.

Больше вас беспокоить не буду.

skymeteo, я вас от части понимаю, но перечитав топик вызвалось впечатление непонимания. Конечно в ОСМ нужно наводить порядок, и даже где то ботами. Но вам указывали упорно не на это, а то что принятые вами алгоритмы неправильные (и только ухудшат бардак), а вы как будто слушаете но не слышите.

Я не одобряю оценок участников по вкладу, но skymeteo зарегистрировался меньше месяца назад и успел только изменить одну точку. Гораздо более опытные осмеры впадали в эту программистскую болезнь – взять и поправить теги на всей планете. Последним оправдания нет, новичкам вроде skymeteo есть шанс объяснить и попросить зайти через полгода, после получения опыта.

Вот только я сомневаюсь, что он воспринимает OSM не только как инструмент для решения своей локальной задачи.

К вопросу о том, что “советская картография была чудесной”. Один бывший коллега, работающий в Англии, раздобыл с моей помощью “генштабовские” пятикилометровки Великобритании, дабы поприкалываться над тамошними друзьями. Так вот он долго смеялся над тем, что город Cambridge назван там “Кембридж”, а вот река Cam (через которую тот самый bridge, давший название городу) подписана как “Кам”. А населенный пункт Melbourne, что в Дербишире, на карте значится как “Мелберн”. (Почему-то уверен, что аналогичный город в Австралии таки называется “Мельбурн”).
Это не к тому, что все названия на этих картах - дерьмо, а к тому, что какое из них - дерьмо, а какое - нет, вопрос открытый.

Вот Яндекс решил именно так. :slight_smile: