На всякий случай напомню что есть (и уже более года используется в России) инструмент, который позволяет привести названия улиц в соответствие принятому в стране соглашению, а также найти опечатки и прочие ошибки. Подчеркну, что программа не зависит от языка, не завязана на принятые в России соглашения и не требует написания специфичного для языка и возможно подверженного ошибкам кода. Основа - словарь названий улиц (для России выглядит так: https://raw.github.com/AMDmi3/streetmangler/master/data/ru/main.txt)) и небольшая таблица статусных частей (https://github.com/AMDmi3/streetmangler/blob/master/lib/locales/ru.cc).
В итоге, например, со словарём из двух десятков часто встречающихся в Украине названий, программа предложит следующие замены на “каноническую” форму:
Коцюбинського вулиця|Коцюбинського вулиця
ГОРЬКОГО вул.|Горького вулиця
ЛЕНІНА вул.|Леніна вулиця
МІЧУРІНА вул.|Мічуріна вулиця
САДОВА вул.|Садова вулиця
ШЕВЧЕНКА вул.|Шевченка вулиця
Шевченка вулиця |Шевченка вулиця
вулиця Київська|Київська вулиця
вулиця Леніна|Леніна вулиця
и такие предположения об опечатках:
Лермонотова вулиця|Лермонтова вулиця
Лєрмонтова вулиця|Лермонтова вулиця
Мічурина вулиця|Мічуріна вулиця
Мічуріня вулиця|Мічуріна вулиця
Партизанська вілиця|Партизанська вулиця
Петрівського вулиця|Петровського вулиця
Шевченко вулиця|Шевченка вулиця
Школьна вулиця|Шкільна вулиця
Шорса вулиця|Щорса вулиця
“Лермонотова” тут - явно опечатка, насчёт остального - не уверен (носителям языка должно быть виднее), но если предположения неверны они просто добавляются в словарь.
Также было найдено 48 объектов с отсутствующей статусной частью. Для визуализации всего этого можно поднять валидатор аналогичный http://streetmangler.amdmi3.ru.
небольшая часть названий покрывает значительную часть улиц, так что чтобы исправить большую часть ошибок все улицы забивать не обязательно. Валидатору также достаточно небольшого процента названий чтобы стало видно скопления ошибок
в эти 15k входят и альтернативные написания каждого названия, и не-названия (в России, например, это name вида “Деревня А - Деревня Б” и “дорога на|в|к куда-то”, а также много мусора типа названий АЗС), которые можно смело игнорировать, а также (если вы используете выгрузку с gislab, например) названия из соседних стран вдоль границы (у себя я дополнительно вырезаю из выгрузки “внутренность” страны) и названия на русском (я не в курсе, к чему у вас пришли по поводу Крыма, но если к тому чтобы писать в name только названия на украинском, то русские можно просто перенести по всей стране в name:ru), так что на самом деле словарь будет в полтора-два (а можно и больше) раза меньше
для подмножества названий есть быстрые обходные пути добавления. Скажем, официальные реестры названий улиц по большим городам, как правило, можно добавлять после беглого просмотра (в России такие есть для Москвы и СПб и они были использованы. Ещё есть для Твери, но там мне не понравилось качество). Для названий типа “1-я улица Ленина” понятно что можно сразу добавлять 2-ю и все остальные что найдутся в OSM. При наличии “улицы Ленина” скорее всего можно добавлять и переулок и проезд, проспект, бульвар, если таковые, опять таки, есть в базе и т.д.
на самом деле, задача вполне подъёмная. В словаре для России сейчас 36 тысяч названий, и это я добавил один за полтора года, тратя на это менее часа в неделю (обычно просто просмотр новых названий в http://streetmangler.amdmi3.ru/api/0.1/notfound, проверка и добавление в словарь). Если у вас найдутся пользователи, готовых обработать свой город (для крупных это не больше нескольких сотен уникальных названий, и в то же время значительная часть словаря), будет ещё проще
Думаю, черновик такого словаря нетрудно извлечь непосредственно из OSM:
подвести статистику по использованию на территории Украины всех имен из нужных тегов (они были перечислены: name для highway, addr:street и т.п.), те имена, что будут повторяться по нескольку десятков-сотен раз - явные кандидаты на включение в словарь.
Да, это несложно - софт уже умеет генерировать список с количеством упоминаний каждого названия. Можно добавлять часто упоминаемые названия, и смотреть не появляются ли в списке возможных опечаток новые записи - это либо ложные срабатывания (Ленина/Лунина, например (https://ru.wikipedia.org/wiki/Лунин,_Борис_Николаевич)), которые также надо добавить в словарь, либо действительно опечатки, и тогда надо выбрать правильный вариант, а остальные добавить в список на замену.
Для мене як активного користувача навігатора проблема пошуку не надумана. В моїй моделі Garmin GPSMap 62s інтерфейс кнопковий, коли необхідно ввести якийсь текст, у т.ч. при пошуку об’єктів, на екрані з’являється віртуальна клавіатура і по ній доводиться “гуляти” в чотирьох напрямах, використовуючи навігаційну клавішу, а це довго. Якщо робити вигрузки “сирих” даних з OSM в формати навігаторів, то спереду доведеться ще наярювати слово "вулиця " - разом з пробілом це 7 зайвих знаків. Мало хто вірить, доки не спробує сам - це правда дуже довго і дуже незручно. І це не мої приватні незручності, бо даний туристичний навігатор і його “родичі” досить поширені.
Отже, тримаємо в голові те, що у разі набрання пропозицією більшості голосів необхідно буде вносити зміни в конвертори. Якою б легкою ця робота не видавалася, вона не зробиться сама собою, її комусь доведеться взяти на себе (завжди ваш Капітан Очевидність ) Бажано заздалегідь, щоб ще протестити.
Крім того, є ще конвертери, які “не у нас”, спонукати їх авторів до змін не знаю й як… Наприклад, часто викачую легкі оптимізовані під велонавігацію вигрузки з http://garmin.openstreetmap.nl/ Карта на виході - англомовна, назви об’єктів латиницею. Адреси POI беруться з відношень вулиць. Оскільки у нас у відношеннях вулиць є лише addr:street, без іншомовних варіантів, даний конвертор просто транслітерує цю назву. При такому підході за нинішньої схеми пошук об’єктів за адресою ще більш-менш передбачуваний. При впровадженні природнього порядку слів імовірно, доведеться піти на ще одну масову правку - повписувати addr:street:en у відношення, бо інакше наші англомовні друзі отримують зовсім неюзабельну вигрузку.
Плюс комусь доведеться взяти на себе рихтування JOSM для правильного сортування вулиць за назвою у списку відношень.
Стосовно truth on the ground візьму сміливість стверджувати, що при нашому рідному слов’янському нехлюйстві це правило, яке частіше підтверджується винятками. Варіантів написання однієї й тієї ж вулиці на вказівниках при бажанні можна знайти стільки, що не вистачить пальців двох рук. Зі скороченнями, з перестановками слів, з помилками і без них, офіційні і не дуже…
В активі залишається лише природність порядку слів.
Мета шляхетна, але IMHO, це питання лежить вже не в площині утилітарності OSM, а естетики - ну от просто щоб красиво було
Тобто, здійснивши (1) масову правку даних OSM, (2) зміни в конверторах, (3) вдосконалення JOSM, на виході ми отримаємо все те ж саме, але красиво.
Особисто мені нинішня схема все рівно імпонує більше, тому що вона проста, очевидна і однозначна.
Так от по-німецьки: квадратіш, практіш, гут.
Схему легко пояснити новобранцю, і новачок не повинен бути мовознавцем-відмінником щоб коректно мапити. На жаль, інтернет зараз наочно демонструє неймовірно низький загальний рівень навіть базової грамотності. А ми цих обділених вчительською увагою ще будем грузити роз’ясненнями інституту Української мови…
Воно може б нічого, якби не оті
такі виключення і неоднозначності - це плюс потенційні холівари і мінус потенційні маппери.
Да, а піднята тема перевірки за словником у нас буде приводом для нових веселощів.
Не говорю, звичайно, що цього робити не треба - треба, але підготуйтеся до розв’язання неординарних мовних задачок.
Як вам офіційні назви вулиць суржиком? Вулиці Цвіточна (може правильно було б якась Квітчаста?), Кузнечна (Ковальська?), Лазурна (Лазурова), Уютна (Затишна) та багато інших… Суржик, увічнений в табличках і офіційних документах - нічні жахи мовознавців!
Ну і раз тут іде мова про природність, наостанок легкий оффтопік - паралельне питання стосовно name:en.
Давно намагаюся зрозуміти: чому ми транслітеруємо вимову у т.ч. числівників в назвах вулиць, як тут: name=9-го Травня вулиця → name:en=9-ho Travnia Street name=8-го Березня провулок → name:en=8-ho Bereznia Lane
Наскільки пам’ятаю в name:en застосовуємо транслітерацію саме для того, щоб іноземець міг вимовити назву співзвучно з мовою оригіналу і щоб відповідно його міг зрозуміти місцевий житель. Але як той іноземець має вимовити оті “9-ho”, “8-ho” і т.п.? Слабо уявляю. Може краще залишати просто цифри “9”, “8”? Чи вже повністю транслітерувати слово-числівник: “Deviatoho”, “Vosmoho”?
Правильні спостереження в цілому. А пам"ятати, як вулиця названа в OSM і вводити в навігатор спочатку ім"я діяча - не незручно? В будь-якому випадку варто щось змінювати, і тоді вже можна одразу намагатись зробити більше.
Не знаю, що зараз відбувається на паперових картах, але я, чесно кажучи, заздрю американським 15 Avenue та 9 Lane, і німецьким впорядкованим даним, коли не треба намагатись збити до купи назви “Сагайдачного”, “Петра Сагайдачного вулиця”, “вулиця Гетьмана Сагайдачного” і “вулиця Волгоградська” (стара назва, яку ще досі часом використовують місцеві) і перейматись питаннями такого складного пошуку в кожній країні за своїми правилами.
Мене також дивує чому слова “Авіаконструктора”, “Архітектора”, “Командарма”, “Маршала” і десяток подібних нікому не заважають, чому імена перед прізвищем не заважають, а “вулиця” заважатиме.
Хоча таке робить не тільки _sevbot, а і я багато так змінював(щоб були всюди однаково), погоджуюся що так погано і краще “9 Travnia” чи “9-th Travnia”.
Повністю транслітерувати слово-числівник мабуть не дуже добре, принаймні для вулиці 295-ї Херсонської Стрілецької Дивізії
Числівники зустрічаються не тільки в назвах вулиць названих на честь якоїсь дати, але і для нумерації провулків. Там, думаю, також краще не “1-i Shevchenka Lane”, а “1-st Shevchenka Lane”.
Бо ті слова є назвою вулиці. А слово “вулиця” - не частина власної назви, а титульна частина. А заважає вона тому, що при набиранні назви треба вводити слово “вулиця” повністю. А потім ще й набирати перші літери самої назви. Тобто, щоразу тиснути кнопки В, У, Л, И, Ц, Я і лише потім починати ввод назви. А слова “Авіаконструктора”, “Архітектора”, тощо не заважають. Бо у місті зазвичай не так вже й багато вулиць, названих на честь Архітекторів чи Авіаконструкторів.
все ж перепитаю, бо моє зауваження чомусь ігнорують, воно через це не перестає бути актуальним - що робити зараз з іменами діячів? Там повторів доволі багато навіть в межах міста. Я бачив і видалення імен з “довгих” назв, і скорочення до однієї букви одразу в базі. Це нормально?
думаю, це наступне питання, яке потрібно було б розглянути. Поки що давайте не змішувати.
Не можу стверджувати на 100%, але маю підозру, що ні ви ні будь-хто інший не використовує карти оптимізовані під велонавігацію для пошуку POI за адресою.
Але все ж таки…
Подивившись на транслітеровану адресацію POI на вигрузках з garmin.openstreetmap.nl звернув увагу на те що транслітерація відбувається за російською абеткою, відповідно буква “і” не транслітерується взагалі. Можна звернутися до Lambertus’а з проханням виправити цю помилку. Також можна попросити транслітерувати “вулиця” не в “vulic?”(також якийсь незрозумілий глюк з транслітерацією букви “я”), а в “Street”(чи “Str.”) і зміщувати слово в кінець. Якщо треба - я можу написати йому.
Для власних конверторів можна піти далі і аналогічно скорочувати/видаляти/зміщувати-в-кінець-назви слова типу “Архітектора”,“Адмірала”, а також імена.
Щодо конверторів на базі osm2mp, то для перенесення/скорочення статусної частини в кінець назви є просте рішення: