Пропозиція - природній порядок слів у назвах вулиць

Зі свого боку хочу підняти питання про показ назв для коротких вулиць, що мають довгу назву. Ця назва навіть на великих масштабах не вся вміщується у лінію вулиці, а на більш мілких її зовсім не буде видно крім початку першого слова. Що робити в такому випадку? (питання стосується саме показу назви на мапах, як на головній так і в навігаторах)

Стосовно пошуку, тут складності у використанні звичайного порядку слів не повинно бути, важливість статусної частини повинна знижуватись на користь самої назви.

Бардак, як мені здається, через неочевидність правил і через те, що про них мало хто знає.

Користувачу чого? Навігатора? Мапи на головній сторінці? Чи ви маєте на увазі маперів?
Новачкам у OSM та у картографії взагалі будь що може здаватися “незвичним”. Наприклад, дорога, представлена ламаною лінією, а не смужкою, необхідність ставити точку на перетинанні доріг. На те вони й новачки.

Я мав на увазі список зв’язків, який показаний праворуч у вікні. Там видно релейшени вулиць, відсортовані за алфавітом. І коли у ДЖОСМі відкрито значний шмат міста, тих релейшенів у списку стає понад два десятки. І без сортування за алфавітом їх незручно шукати.

Статусні частини пишемо після назви. Це правило просте. Воно записано у вікі. Можливо, комусь воно здається неочевидним. Ну то й що? Наприклад, правило російського правопису “жи, ши пиши с и” теж є неочевидним та неприроднім, бо всі чомусь говорять “жы, шы”.

“а вот ето уже наша нєдоработка”.

користувачів відрендереної мапи і маперів

нещодавно я надсилав в reltoolbox патч для сортування чисел в натуральному порядку замість лексикографічного, тепер Тролейбус 5 відображається перед Тролейбус 10, а не навпаки. Якщо вивести нормальне правило для сортування, щось на зразок цього можна додати і в головне вікно. Користувачі з російського форуму, думаю, теж будуть в захваті, якщо додати підтримку різних мов у статусних частин. Мені, особисто, незручно шукати серед вулиць, що починаються на “Василя”, потрібну. Я б по прізвищу шукав краще.

Про “просте” правило тези див. в першому повідомленні - воно неприроднє. Я хочу переконати спільноту в необхідності змін. І так, це не єдине питання, що я б хотів підняти, але давайте по черзі :slight_smile:

ИМХО я против.
Отсутствие систематизации всегда источник развития бардака. И постобработка тоже всегда легче при наличии логичной системы.

Ви невірно мене розумієте, я пропоную змінити систематизацію, а не поламати її. Постобробка - не проблема. Покажіть мені приклади існуючої постобробки, яка не перенесе зміни місця статусної частини з мінімальним фіксом.

Загалом, я підтримую. Нововедення не таке страшне, як здається на перший погляд.

Я додав перевірку в моєму валідаторі на апперкейз перших літер слів назви. Але є проблема. Що робити з name:en? Вносити статусну частину з малої літери? Що суперечить стандартам в англомовних країнах.

Загалом по Україні 3605 вулиць не проходять перевірку. Пропоную спершу, зменшити це число хоча б на порядок.

Для англомовних не треба.

На всякий случай напомню что есть (и уже более года используется в России) инструмент, который позволяет привести названия улиц в соответствие принятому в стране соглашению, а также найти опечатки и прочие ошибки. Подчеркну, что программа не зависит от языка, не завязана на принятые в России соглашения и не требует написания специфичного для языка и возможно подверженного ошибкам кода. Основа - словарь названий улиц (для России выглядит так: 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.

Если интересно, могу подробнее рассказать как этим пользоваться, а вообще документация есть тут: https://github.com/AMDmi3/streetmangler/blob/master/README и тут: http://wiki.openstreetmap.org/wiki/Streetmangler

но судя по этому:

поддержку релейшенов все равно придется добавлять…

Моя черга: я теж підтримую цю пропозицію, але б хотілося, щоби вельмишановні dudka або olehz запустили в себе валідатор AMDmi3.

Classification statistics:
           Total       Exact match     Canonical form     Spelling fixed    Stripped status           No match          Non-names
 Total:   141181        0 (  0.00%)        0 (  0.00%)        0 (  0.00%)        0 (  0.00%)   109608 ( 77.64%)    31573 ( 22.36%)
Unique:    19655        0 (  0.00%)        0 (  0.00%)        0 (  0.00%)        0 (  0.00%)    14702 ( 74.80%)     4953 ( 25.20%)
Generalized database statistics:
           Total             Match            Fixable           No match
 Total:   109608        0 (  0.00%)        0 (  0.00%)   109608 (100.00%)
Unique:    14702        0 (  0.00%)        0 (  0.00%)    14702 (100.00%)

Спершу треба словник назв заповнити. Тобто обробити вручну 15К назв. Особисто я пас. :expressionless:

Да, но это пара строчек. Сделаю на днях.

Понятно что работа немаленькая. Тем не менее:

  • небольшая часть названий покрывает значительную часть улиц, так что чтобы исправить большую часть ошибок все улицы забивать не обязательно. Валидатору также достаточно небольшого процента названий чтобы стало видно скопления ошибок
  • в эти 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/Лунин,_Борис_Николаевич)), которые также надо добавить в словарь, либо действительно опечатки, и тогда надо выбрать правильный вариант, а остальные добавить в список на замену.

AMDmi3,
проверьте в своем списке улиц следующие строки, возможно они ошибочны

“Новоастраханская” – улица?
“Тупой преулок” – переулок?
“переуок Федутенко” – переулок?
“прощадь Якуба Коласа” – площадь?

Підготував список зміни порядку слів для невулиць, тобто для проспектів, бульварів, провулків тощо:
https://www.dropbox.com/sh/m4ixhy0pjdev9e2/JHUC1Jnn5F

Для вулиць такого списку не робив, оскільки, як писав Larry0ua в першому повідомленні:

Прошу всіх зацікавлених осіб проглянути списки, пошукати помилки.

Вставлю свої п’ять копійок.

Для мене як активного користувача навігатора проблема пошуку не надумана. В моїй моделі Garmin GPSMap 62s інтерфейс кнопковий, коли необхідно ввести якийсь текст, у т.ч. при пошуку об’єктів, на екрані з’являється віртуальна клавіатура і по ній доводиться “гуляти” в чотирьох напрямах, використовуючи навігаційну клавішу, а це довго. Якщо робити вигрузки “сирих” даних з OSM в формати навігаторів, то спереду доведеться ще наярювати слово "вулиця " - разом з пробілом це 7 зайвих знаків. Мало хто вірить, доки не спробує сам - це правда дуже довго і дуже незручно. І це не мої приватні незручності, бо даний туристичний навігатор і його “родичі” досить поширені.

Отже, тримаємо в голові те, що у разі набрання пропозицією більшості голосів необхідно буде вносити зміни в конвертори. Якою б легкою ця робота не видавалася, вона не зробиться сама собою, її комусь доведеться взяти на себе (завжди ваш Капітан Очевидність :slight_smile: ) Бажано заздалегідь, щоб ще протестити.
Крім того, є ще конвертери, які “не у нас”, спонукати їх авторів до змін не знаю й як… Наприклад, часто викачую легкі оптимізовані під велонавігацію вигрузки з http://garmin.openstreetmap.nl/ Карта на виході - англомовна, назви об’єктів латиницею. Адреси POI беруться з відношень вулиць. Оскільки у нас у відношеннях вулиць є лише addr:street, без іншомовних варіантів, даний конвертор просто транслітерує цю назву. При такому підході за нинішньої схеми пошук об’єктів за адресою ще більш-менш передбачуваний. При впровадженні природнього порядку слів імовірно, доведеться піти на ще одну масову правку - повписувати addr:street:en у відношення, бо інакше наші англомовні друзі отримують зовсім неюзабельну вигрузку.

Плюс комусь доведеться взяти на себе рихтування JOSM для правильного сортування вулиць за назвою у списку відношень.

Стосовно truth on the ground візьму сміливість стверджувати, що при нашому рідному слов’янському нехлюйстві це правило, яке частіше підтверджується винятками. Варіантів написання однієї й тієї ж вулиці на вказівниках при бажанні можна знайти стільки, що не вистачить пальців двох рук. Зі скороченнями, з перестановками слів, з помилками і без них, офіційні і не дуже…

В активі залишається лише природність порядку слів.
Мета шляхетна, але IMHO, це питання лежить вже не в площині утилітарності OSM, а естетики - ну от просто щоб красиво було :slight_smile:
Тобто, здійснивши (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”?