Автоматичне створення тегів name:en

Вчора переглядав карту Китаю і Японії. В Китаї що-небудь зрозуміти абсолютно не можливо. Треба користуватися локалізованим рендером. В Японії майже до всіх великих міст/вулиц додається англійске ім’я. Це дуже зручно але не правильно.

От я й подумав, що для наших туристів/гостей (може ще євро 2012 буде) треба обов’зково вказувати англійскі назви. Але ж вулиць/міст/ багато… А якщо написати програму, яка автоматично за правилами транслітерації заповнить ці теги? :slight_smile:

Ідея слушна. Але для цього треба щоб теґ «name» мав вірні українські найменування. Бо, наприклад в Дніпропетровську, повна мішанина з назвами; в значеннях «name» присутні як назви російською, українською так і латиницею. В міру сил намагаюсь виправляти: для назв російською змінюю теґ «name» на «name:ru», додаючи відповідну назву у «name» українською.

Всегда стараюсь всем улицам, что правлю добавить “name:en” и “name:ru”. Только вот вопрос - где такое используется? Нет, конечно, может быть использовано итд, но по большому счету, именно поэтому в Японии так и пишут - что наверное никакой программой такие тэги не используются… (Я призываю всех добавлять “name:en” и “name:ru”).

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

Ще один сайт, на якому можна подивитися карту різними мовами. Мова вибирається через “плюс” в правому верхньому куту.

А ніхто не стикався з такою штукою як TagChecker? Це я так розумію одне з доповнень Validator plugin JOSM яке дозволяє перевіряти значення тегу згідно з якимись критеріями. Але документації про ньго щось зовсім не бачу. Хіба що тут

А до чого я про нього згадав - в принципі можна написати валідатор, що буде перевіряти теги name на предмет не Українських імен. Наприклад наявність букви “ы”, “ул.”, тощо. Крім того було б файно мати вальдатор наявності відповідних російських та англійських тегів. Тоді роботу можна було б організувати на зразок лаунчпаду - хто має час та бажання переводить.

В принципі можна таке реалізувати і на томуж Perl але не хочеться вигадувати велосипед.

В примітиві це виглядає якось так:

$ cat dnepr.osm | grep -G k=\'name\' | grep -F -f words
    <tag k='name' v='Калініна, провул.' />
    <tag k='name' v='Кедріна, вул.' />
    <tag k='name' v='вул. Макарова' />
    <tag k='name' v='Соціалістична, вул.' />
    <tag k='name' v='вул. Вакуленчука' />
    <tag k='name' v='ул. Строителей' />
    <tag k='name' v='Бабушкіна, вул.' />
    <tag k='name' v='ул. Ульянова' />
    <tag k='name' v='Юрія Савченка, вул.' />
    <tag k='name' v='вул. Григоренка' />
    <tag k='name' v='вул. Вакуленчука' />
    <tag k='name' v='Щепкіна, вул.' />
    <tag k='name' v='Меренкова, вул.' />
    <tag k='name' v='Щепкіна, вул.' />
    <tag k='name' v='Братів Міллер, вул.' />
    <tag k='name' v='Виборзька, вул.' />
    <tag k='name' v='Щепкіна, вул.' />
    <tag k='name' v='Нєстерова, вул.' />
    <tag k='name' v='Курчатова, вул.' />
    <tag k='name' v='Курчатова, вул.' />
    <tag k='name' v='вул. Макарова' />
    <tag k='name' v='вул. Гавриленка' />
    <tag k='name' v='вул. Ушакова' />
    <tag k='name' v='Свердлова, вул.' />
    <tag k='name' v='Героїв Сталінграду, вул.' />
    <tag k='name' v='Героїв Сталінграду, вул.' />
    <tag k='name' v='Юрія Савченка, вул.' />
    <tag k='name' v='Шмідта, вул.' />
    <tag k='name' v='Філософська, вул.' />
    <tag k='name' v='вул. Нахімова' />
    <tag k='name' v='Детский открытый' />
    <tag k='name' v='вул. Карла Лібкнехта' />
    <tag k='name' v='Леваневського, вул.' />
    <tag k='name' v='Леваневського, вул.' />
    <tag k='name' v='Камчатська, вул.' />
    <tag k='name' v='Меренкова, вул.' />
    <tag k='name' v='Червоночечелівська, вул.' />
    <tag k='name' v='Виборзька, вул.' />
    <tag k='name' v='Юрія Савченка, вул.' />
    <tag k='name' v='вул. Вакуленчука' />
    <tag k='name' v='вул. Ушакова' />
    <tag k='name' v='Робоча, вул.' />
    <tag k='name' v='вул. Мостова' />

$ cat words
ул.
ы
ё
ъ
улица


В принципі усе що вивели ці команди є невалідне з точки зору правил іменування об’єктів

Хм, цікаво! такий підхід мені подобається.

до файлу words треба додати всю латинську абетку, а для того, що виловлювати «ул.» треба щось ще вигадати :), хоча може й не треба, бо таким чином можна повиловлювати наявні скорочення, що не відповідають правилам найменування.

Лишилось тільки ще глянути документацію про API, щоб дізнатись як потім ці зміни звантажити на сервер, я на жаль не знаю:(.

rsh а звідки dnepr.osm? де брав? Якщо в тебе вже є готові скрипти міг би ти ними поділитись?

Я теж використовую файли регіонів. Щоб отримати їх, я спочатку качаю лише Україну з geofabrik.de, а потім нарізаю цей файл, за домогою osmosis і координат меж областей, на окремі файли по цим областям.

Команда для запуску osmosis


./osmosis/bin/osmosis --read-xml enableDateParsing=yes file=ukraine.osm --tee 26 \
    --bp file=polygons/ukraine/cherkaska.poly clipIncompleteEntities=true --wx ukraine/cherkaska.osm \
    --bp file=polygons/ukraine/chernigivska.poly clipIncompleteEntities=true --wx ukraine/chernigivska.osm \
    --bp file=polygons/ukraine/chernivetska.poly clipIncompleteEntities=true --wx ukraine/chernivetska.osm \
    --bp file=polygons/ukraine/dnipropetrovska.poly clipIncompleteEntities=true --wx ukraine/dnipropetrovska.osm \
    --bp file=polygons/ukraine/donetska.poly clipIncompleteEntities=true --wx ukraine/donetska.osm \
    --bp file=polygons/ukraine/ivano-frankivska.poly clipIncompleteEntities=true --wx ukraine/ivano-frankivska.osm \
    --bp file=polygons/ukraine/kharkivska.poly clipIncompleteEntities=true --wx ukraine/kharkivska.osm \
    --bp file=polygons/ukraine/khersonska.poly clipIncompleteEntities=true --wx ukraine/khersonska.osm \
    --bp file=polygons/ukraine/khmelnytska.poly clipIncompleteEntities=true --wx ukraine/khmelnytska.osm \
    --bp file=polygons/ukraine/kirovogradska.poly clipIncompleteEntities=true --wx ukraine/kirovogradska.osm \
    --bp file=polygons/ukraine/krym.poly clipIncompleteEntities=true --wx ukraine/krym.osm \
    --bp file=polygons/ukraine/kyiv.poly clipIncompleteEntities=true --wx ukraine/kyiv.osm \
    --bp file=polygons/ukraine/kyivska.poly clipIncompleteEntities=true --wx ukraine/kyivska.osm \
    --bp file=polygons/ukraine/luganska.poly clipIncompleteEntities=true --wx ukraine/luganska.osm \
    --bp file=polygons/ukraine/lvivska.poly clipIncompleteEntities=true --wx ukraine/lvivska.osm \
    --bp file=polygons/ukraine/mykolajivska.poly clipIncompleteEntities=true --wx ukraine/mykolajivska.osm \
    --bp file=polygons/ukraine/odeska.poly clipIncompleteEntities=true --wx ukraine/odeska.osm \
    --bp file=polygons/ukraine/poltavska.poly clipIncompleteEntities=true --wx ukraine/poltavska.osm \
    --bp file=polygons/ukraine/rivnenska.poly clipIncompleteEntities=true --wx ukraine/rivnenska.osm \
    --bp file=polygons/ukraine/sumska.poly clipIncompleteEntities=true --wx ukraine/sumska.osm \
    --bp file=polygons/ukraine/ternopilska.poly clipIncompleteEntities=true --wx ukraine/ternopilska.osm \
    --bp file=polygons/ukraine/vinnytska.poly clipIncompleteEntities=true --wx ukraine/vinnytska.osm \
    --bp file=polygons/ukraine/volynska.poly clipIncompleteEntities=true --wx ukraine/volynska.osm \
    --bp file=polygons/ukraine/zakarpatska.poly clipIncompleteEntities=true --wx ukraine/zakarpatska.osm \
    --bp file=polygons/ukraine/zaporizska.poly clipIncompleteEntities=true --wx ukraine/zaporizska.osm \
    --bp file=polygons/ukraine/zhytomyrska.poly clipIncompleteEntities=true --wx ukraine/zhytomyrska.osm

Файли координат областей повинні лежати в

./polygons/ukraine/*

Ще питання. Як створити файл dniepropetrovsk.poly коли межі міста описані зв’язком - http://www.openstreetmap.org/browse/relation/1017311 ?

Для цього я використовую perl скрипт boundaries.pl
Там треба трохи розбиратися, через те я згенерував файл полігону для Дніпропетровська:


Дніпропетровськ
1
   3.486753E+01   4.850657E+01
   3.485295E+01   4.849737E+01
   3.483886E+01   4.849295E+01
   3.482402E+01   4.849652E+01
   3.480581E+01   4.848506E+01
   3.478469E+01   4.848713E+01
   3.476624E+01   4.849253E+01
   3.476382E+01   4.848498E+01
   3.474912E+01   4.848425E+01
   3.476357E+01   4.847507E+01
   3.477174E+01   4.847321E+01
   3.475755E+01   4.845073E+01
   3.475947E+01   4.844057E+01
   3.477920E+01   4.843984E+01
   3.478460E+01   4.843434E+01
   3.477676E+01   4.843167E+01
   3.478286E+01   4.842706E+01
   3.479152E+01   4.843384E+01
   3.479600E+01   4.842922E+01
   3.479435E+01   4.842665E+01
   3.480017E+01   4.842478E+01
   3.480200E+01   4.842702E+01
   3.480186E+01   4.843009E+01
   3.480379E+01   4.843032E+01
   3.480292E+01   4.843430E+01
   3.481129E+01   4.843535E+01
   3.481216E+01   4.843128E+01
   3.481688E+01   4.843210E+01
   3.481711E+01   4.843448E+01
   3.482594E+01   4.843100E+01
   3.484105E+01   4.843281E+01
   3.484625E+01   4.843570E+01
   3.485123E+01   4.843951E+01
   3.485530E+01   4.844135E+01
   3.485618E+01   4.844240E+01
   3.485626E+01   4.844376E+01
   3.486113E+01   4.844691E+01
   3.486350E+01   4.844690E+01
   3.486563E+01   4.844583E+01
   3.486937E+01   4.844100E+01
   3.487529E+01   4.843674E+01
   3.488457E+01   4.843542E+01
   3.489383E+01   4.843667E+01
   3.490173E+01   4.844032E+01
   3.490764E+01   4.844476E+01
   3.491355E+01   4.844737E+01
   3.493181E+01   4.844338E+01
   3.493502E+01   4.843853E+01
   3.493809E+01   4.843734E+01
   3.494143E+01   4.843752E+01
   3.494674E+01   4.843391E+01
   3.494225E+01   4.842878E+01
   3.494060E+01   4.842887E+01
   3.493378E+01   4.842255E+01
   3.492934E+01   4.842182E+01
   3.492696E+01   4.842663E+01
   3.492069E+01   4.842434E+01
   3.492646E+01   4.841784E+01
   3.490210E+01   4.842017E+01
   3.490050E+01   4.841894E+01
   3.489986E+01   4.841573E+01
   3.490292E+01   4.841518E+01
   3.490439E+01   4.841330E+01
   3.490448E+01   4.840960E+01
   3.490100E+01   4.840932E+01
   3.490187E+01   4.840374E+01
   3.490837E+01   4.840236E+01
   3.490979E+01   4.839948E+01
   3.491318E+01   4.839774E+01
   3.491675E+01   4.839714E+01
   3.492128E+01   4.839705E+01
   3.492466E+01   4.839556E+01
   3.493232E+01   4.839920E+01
   3.493761E+01   4.840278E+01
   3.493563E+01   4.840486E+01
   3.493574E+01   4.840658E+01
   3.493860E+01   4.840651E+01
   3.494006E+01   4.840497E+01
   3.494476E+01   4.840242E+01
   3.494269E+01   4.840049E+01
   3.494834E+01   4.839906E+01
   3.495227E+01   4.839298E+01
   3.494619E+01   4.838940E+01
   3.495771E+01   4.838805E+01
   3.496358E+01   4.838876E+01
   3.496507E+01   4.838492E+01
   3.497545E+01   4.838247E+01
   3.496780E+01   4.837875E+01
   3.496601E+01   4.837367E+01
   3.496812E+01   4.836750E+01
   3.498983E+01   4.836680E+01
   3.498847E+01   4.836222E+01
   3.499348E+01   4.836108E+01
   3.499834E+01   4.835793E+01
   3.500371E+01   4.835578E+01
   3.500864E+01   4.835678E+01
   3.501093E+01   4.835987E+01
   3.500807E+01   4.836852E+01
   3.500786E+01   4.837324E+01
   3.500957E+01   4.837667E+01
   3.501308E+01   4.837968E+01
   3.501801E+01   4.838790E+01
   3.503175E+01   4.838940E+01
   3.504148E+01   4.838654E+01
   3.505713E+01   4.838850E+01
   3.506401E+01   4.839363E+01
   3.506888E+01   4.839599E+01
   3.508161E+01   4.839763E+01
   3.509248E+01   4.838969E+01
   3.509656E+01   4.838840E+01
   3.509871E+01   4.839148E+01
   3.510414E+01   4.839112E+01
   3.510666E+01   4.839283E+01
   3.512637E+01   4.839265E+01
   3.513885E+01   4.839273E+01
   3.514318E+01   4.839462E+01
   3.515672E+01   4.839870E+01
   3.515980E+01   4.840901E+01
   3.517081E+01   4.841222E+01
   3.516903E+01   4.841737E+01
   3.516087E+01   4.841802E+01
   3.515737E+01   4.842403E+01
   3.515443E+01   4.842439E+01
   3.515365E+01   4.842803E+01
   3.514993E+01   4.842782E+01
   3.514964E+01   4.843805E+01
   3.514685E+01   4.843905E+01
   3.514227E+01   4.844563E+01
   3.514020E+01   4.844756E+01
   3.513905E+01   4.845293E+01
   3.514449E+01   4.846108E+01
   3.515186E+01   4.846573E+01
   3.515415E+01   4.847010E+01
   3.516430E+01   4.847439E+01
   3.518705E+01   4.845701E+01
   3.519578E+01   4.846065E+01
   3.520458E+01   4.845429E+01
   3.520765E+01   4.844964E+01
   3.520866E+01   4.844434E+01
   3.519286E+01   4.844511E+01
   3.519277E+01   4.843132E+01
   3.519814E+01   4.842682E+01
   3.520250E+01   4.842832E+01
   3.520708E+01   4.842875E+01
   3.520630E+01   4.843254E+01
   3.521159E+01   4.843376E+01
   3.521359E+01   4.843547E+01
   3.521280E+01   4.843762E+01
   3.521509E+01   4.843826E+01
   3.522039E+01   4.843326E+01
   3.522926E+01   4.843140E+01
   3.523713E+01   4.842875E+01
   3.524263E+01   4.843383E+01
   3.522861E+01   4.843948E+01
   3.522493E+01   4.844602E+01
   3.523927E+01   4.845386E+01
   3.521438E+01   4.847138E+01
   3.521545E+01   4.847274E+01
   3.521209E+01   4.847596E+01
   3.521016E+01   4.847560E+01
   3.519928E+01   4.848712E+01
   3.520501E+01   4.849821E+01
   3.521102E+01   4.849985E+01
   3.520694E+01   4.850651E+01
   3.520651E+01   4.850887E+01
   3.520129E+01   4.850994E+01
   3.517904E+01   4.850708E+01
   3.516008E+01   4.850668E+01
   3.515369E+01   4.850185E+01
   3.514570E+01   4.850078E+01
   3.513812E+01   4.850300E+01
   3.512417E+01   4.850672E+01
   3.512424E+01   4.851130E+01
   3.512217E+01   4.851409E+01
   3.512074E+01   4.851688E+01
   3.512024E+01   4.852031E+01
   3.511988E+01   4.852403E+01
   3.512038E+01   4.852639E+01
   3.512010E+01   4.852940E+01
   3.512146E+01   4.853055E+01
   3.512153E+01   4.853319E+01
   3.512396E+01   4.853755E+01
   3.512167E+01   4.853820E+01
   3.512267E+01   4.854113E+01
   3.511466E+01   4.854385E+01
   3.511194E+01   4.854056E+01
   3.510815E+01   4.854092E+01
   3.510736E+01   4.853999E+01
   3.510844E+01   4.853906E+01
   3.510557E+01   4.853484E+01
   3.510078E+01   4.853462E+01
   3.509370E+01   4.853748E+01
   3.509434E+01   4.853963E+01
   3.508977E+01   4.854059E+01
   3.508354E+01   4.852746E+01
   3.506436E+01   4.853340E+01
   3.505962E+01   4.853527E+01
   3.506218E+01   4.853767E+01
   3.505779E+01   4.853836E+01
   3.504498E+01   4.853398E+01
   3.503297E+01   4.852768E+01
   3.502839E+01   4.853019E+01
   3.503547E+01   4.853512E+01
   3.503239E+01   4.853720E+01
   3.502824E+01   4.853426E+01
   3.501899E+01   4.854018E+01
   3.501995E+01   4.854120E+01
   3.500900E+01   4.854886E+01
   3.501251E+01   4.855150E+01
   3.501816E+01   4.854714E+01
   3.503218E+01   4.855587E+01
   3.501830E+01   4.856495E+01
   3.500030E+01   4.855322E+01
   3.498790E+01   4.854592E+01
   3.498132E+01   4.854914E+01
   3.497967E+01   4.854807E+01
   3.496959E+01   4.855494E+01
   3.496522E+01   4.855708E+01
   3.496458E+01   4.855594E+01
   3.497230E+01   4.854678E+01
   3.496787E+01   4.854828E+01
   3.496723E+01   4.855057E+01
   3.496258E+01   4.855372E+01
   3.494605E+01   4.855730E+01
   3.494061E+01   4.856073E+01
   3.494133E+01   4.856173E+01
   3.493711E+01   4.856459E+01
   3.494061E+01   4.856989E+01
   3.492961E+01   4.857603E+01
   3.492087E+01   4.856574E+01
   3.491765E+01   4.856431E+01
   3.491901E+01   4.856137E+01
   3.491686E+01   4.855987E+01
   3.491329E+01   4.855830E+01
   3.491078E+01   4.855780E+01
   3.490795E+01   4.855641E+01
   3.489412E+01   4.856030E+01
   3.487945E+01   4.856187E+01
   3.487866E+01   4.855451E+01
   3.488153E+01   4.855394E+01
   3.488081E+01   4.854471E+01
   3.488811E+01   4.854328E+01
   3.489040E+01   4.853956E+01
   3.488932E+01   4.852897E+01
   3.490191E+01   4.852482E+01
   3.491587E+01   4.852178E+01
   3.492851E+01   4.852089E+01
   3.493593E+01   4.851847E+01
   3.493486E+01   4.851351E+01
   3.492317E+01   4.851375E+01
   3.489370E+01   4.852335E+01
   3.487818E+01   4.852152E+01
   3.487969E+01   4.851497E+01
   3.486753E+01   4.850657E+01
END
END

Ні, той dnepr.osm що в мене був, то просто збережений з JOSM файл.
Але завдяки йому iONiX розколовся :slight_smile: За що iONiX окреме спасибі, досить цінна інформація!
А з якими ключами запускався boundaries.pl щоб зняти контури Дніпропетровська? Я допетрав тільки через -adminlevel=7 бо схоже тільки в Дніпрі він є.
Взагалі той хлопець що написав boundaries.pl має багато скриптів.

Хм, зовсім офтопік пішов. Можливо модератору варто розділити, або переіменувати тему.

Я і не приховував нічого :slight_smile:
boundaries.pl запускав так:

perl ./boundaries.pl -in=./ukraine.osm -poly -html=./ukraine.html -polybase=./ukraine -pics

Правда у мене ще стара версія boundaries.pl, хоча нічого там особливо помінятися не повинно було.

Я ще користуюся скриптом checkdoublenodes.pl для пошуку і виправлення точок, які лежать одна на одній. Запускається так:

perl ./checkdoublenodes.pl ./ukraine.osm ./doublenodes.html ./doublenodes.gpx

Погрався трохи днями з цим. Зробив для себе виводи - одним grep тут не обійдешся. Мабуть все ж таки треба писати якийсь сценарій, бо крім самих теґів name потрібні елементи до яких вони належать, щоб потім також можливо було надіслати зроблені зміни на сервер.

Якщо в когось є щось подібне, або хтось щось чув/читав - дайте знати

Знаю як! :slight_smile:
БУДЬТЕ ОБЕРЕЖНІ. Усе що далі розказано, лише для ознайомлення і не рекомендується для повсякденної роботи.

Це можна зробити за допомогою validation втулка.
Перший момент полягає у тому що з ревізії JOSM 3670, цей втулок було інтегровано у ядро. Тому для того аби повторити вдалий експеримент, беремо піддослідного пацюка JOSM звідси: http://josm.openstreetmap.de/download/josm-snapshot-3670.jar

Заходимо всередину архіву (адже усі ми хнаємо, що jar то є zip) та шукаємо там файл /data/tagchecker.cfg.
Цей файл задає правила для перевірки пат теґ-значення.

У самому кінці додаємо таке:

*    : W : name == /.*(ё|ул\.|ъ|э).*/

Потім знаходимо всередені jar файлу
/META-INF/JOSM.SF та видаляємо його ( швидкий та не правильний спосіб як заставити усе це працювати. Правильний це зібрати з сирцевих кодів, але я ж описую простий спосіб ;))
у файлі
/META-INF/MANIFEST.MF залишаємо лише таке:

Manifest-Version: 1.0
Main-class: JOSM

Запускаємо java -jar josm-snapshot-3670.jar і якщо усе зроблено правильно, то усі об’єкти в імені яких присутні символи що відповідають наведеному регекспу будуть позначені як “Невірне тег-значення”

Це гарні новини. Тепер проблеми та як це можна зробити по-людськи.
Головна проблема - интеграція валідатора в кору починається з ревізії 3670, тобто девелопмент гілка. Простий валідатор тягне свої дані з інтернету і в мене не вийшло його заставити читати мої регекспи.

Є така пропозиція - прикрутити до валідатора так звані користувацькі правила, які можна було б вказувати в налаштуваннях плагіну (або джосма коли їх нарешті інтегрують).

Цікавить думка спільноти про все це.

Слушна ідея.

Але в свому боті я ще перевіряю на:

ы, ая\s+, [уУ]лица, ^[вВ]ул, [Пп]р-т, ^[Пп]ро?\ і так далі.

Користувацькі правила – це було б дуже добре, потім можна опублікувати офіційні валідатори для України.

Eugene

І чому я вважав, що описую простий спосіб? :slight_smile: Три години ночі після робочого дня певно не краща пора для розумової праці. :wink:
Як би там не було, сьогоднішній аналіз сирцевого коду дав кращі результати.

Простий та правильний спосіб в студію (працює навіть з тестед версією, тому підходить усім бажаючим):

  1. Маємо встановлений валідатор.
  2. F12->Іконка з галочкою (налаштування валідатора)->Джерело даних (Data sources)->Додати(Add)
  3. Вказуємо абсолютний шлях до файлу з власними правилами.
  4. Перезапускаємо JOSM (після цього варто зайти знову в налаштування та перевірити аби вони збереглись - остання SVN версія не зберігає. Якщо зміна не збереглись можна спробувати добавити в файл ~/.josm/preferences:
validator.TagChecker.sources=/home/rsh/temp/tagchecker.cfg;/home/rsh/temp/tagchecker1.cfg

В джерела даних можна додавати файли трьох типів.
Тип файлу визначається вмістом першого рядка:
# JOSM TagChecker validator file - файл перевірки значень тегів за регекспами.

Складається з так-званих правил. Кожне правило це рядок, поділений на поля символом “:”.
<тип даних> : тип помилки : <ключ><вираз><значення>

Тип даних - може бути

  • node - точка

  • way - лінія

  • relation - відношення

  • ***** - любий з означених

**Тип помилки**
  • E помилка

  • W попередження

  • I інформація

Ключ назва тегу, або регексп що захоплює декілька тегів. Регексп пишеться між двома символами “/”.
highway == /motorway|trunk|primary|secondary|tertiary|residential|pedestrian/
Якщо наприкінці додати символ “i”, регексп буде не чутливим до регістру.

Вираз може бути “!=” або “==”. Кілька виразів може бути об’єднано за допомогою оператора && (логічний OR схоже відсутній, але фактично він емульований можливістю додати декілька правил, вони об’єднуються по “або”).
Значення - значення або регексп, з яким порівнюється

Коментарій у кінці правила буде використаний як назва повідомлення про помилку.

Наприклад:

  • : E : name == /.(ё|ъ|э)./ # Російські літери в назвах об’єктів

Я не зовсім розібрався, як працюють інші типи # JOSM IgnoreTags та speller_words, тому нічого тут про них не писатиму :wink:

З огляду на все це, пропоную почати створення файлів правил, на приклад тут

Зовсім забув! Все це UTF-8