Preslovljavanje (skripta/bot)

Zdravo svima!

Znam da postoji već jedna tema vezana za transliteraciju, ali kako je ona (koliko mi je poznato) posvećena jednom alatu, mislim da je preglednije da započnem novu.

Naime, krenuo sam da pišem skriptu za preslovljavanje ćiriličnih naziva ulica u latinične i latinične bez dijakritika. Za razliku od pomenutog alata, koji radi u okviru JOSM editora, ova skripta je nezavisna i komunicira direktno sa serverom putem REST API-ja.

Algoritam je ugrubo sledeći:

-dobavi se spisak elemenata mape oivičenih nekim koordinatama
-iz spiska se izdvoje putevi (way)
-u tagovima elemenata se traže oni koji poseduju ćirilični naziv (u bilo kom name: tag-u)
-za te elemente se proverava da li poseduju preslovljen tag i tag preslovljen u latinicu bez dijakritika (accent insensitive)
-za elemente koji ne poseduju latinični naziv, postavlja se name:sr-Latn tag, a ukoliko je on zauzet, postavlja se tag name:sr-Latin-translit_bot
-za elemente koji ne poseduju “ošišani” naziv postavlja se name:sr-Latn-ai name:sr-Latin-ai-translit_bot

Skripta je dovedena do funkcionalne faze, ali naravno zanimaju me vaša mišljenja i predlozi.

Primeri izmena su

https://www.openstreetmap.org/changeset/52216213#map=16/45.2810/19.9940
https://www.openstreetmap.org/changeset/52216213#map=16/45.2810/19.9940

Izvorni kod je na https://github.com/zeljkovukovic/osm_transliteration

А што је крајњи циљ ове скрипте - зашта служе новодефинисани тагови?
Чиме се оправдава оптерећивање базе са високоспецифичиним новим таговима?

Krajnji cilj je da bude bot koji može samostalno da radi. Ako ikada i stigne dotle, do tada joj predstoji dosta testiranja. Ipak, ono što sam već u početku hteo da bude načelo je da skripta ne gazi ručno unete tagove, ako postoji. Primer za to je ovde.

Postoji ćirilično ime

name: Острошка

Postoji latinično ime, koje koristi standardni tag, ali je vrednost pogrešna:

name:sr-Latn Ostroška, Kać

Ipak, ne želimo da pregazimo ručni unos, pa dodajemo ispravno preslovljavanje na tag koji je vrlo verovatno slobodan:

name:sr-Latin-translit_bot Ostroška

Što se tiče name:sr-Latn-ai, to je nešto o čemu bih svakako pokrenuo diskusiju. Prosto, nazivi na latinici bez dijakritika nisu nazivi na engleskom, pa mislim da ih ne bi trebalo koristiti za name:en. Svakako, ako rezultat te diskusije bude da se ostane pri starom. Takođe, ako postoji “ošištani” naziv na bilo kom tagu, svakako skripta ne dodaje sr-Latn-ai.

Не желим да се правим паметан, а ни груб, али “бот” је синоним за “може сам да ради”.
Моје питање је шта се жели остићи са новим таговима? Они неће бити приказани на мапи, а и други стандардни програми, не знају за његово постојање, па га неће ни користити…

Nije grubo, volim precizno izražavanje; ali jeste potpuno irelevantno. :slight_smile:

“Nove” tagove uspešno koristi bar jedan alat - Nominatim, primarna OSM pretraga. Ipak, pošto je ta pretraga (suprotno nekim mojim ranijim testovima) već accent insensitive, dodavanje zasebnog taga za “ošišanu” latinicu gubi smisao, pa sam taj deo uklonio iz skripte. Takođe, kako bi se izbeglo odstupanje od konvencije o tagovima za nazive, izmenio sam algoritam na sledeći način:


pronalaze se svi tagovi koji sadrže ćirilični naziv
među njima se pronalaze oni koji nemaju direktno preslovljen taj naziv na latinicu (ni na jednom tag-u)
iz ovih se posebno izdvajaju oni kojima je zauzet sr-Latin tag (što znači da je njegov sadržaj pogrešan)
prikazuju se rezultati prve i druge grupe
korisnik se pita da li uploadovati rezultate prve grupe
korisnik se pita da li uploadovati rezultate druge grupe

U slučaju nenadziranog rada, rezultati druge grupe bi eventualno mogli biti snimani u formi izveštaja.

Da li je ovakvo ponašanje prihvatljivije zajednici?

Моје лично мишљење је да би требало избегавати “ненадзирани рад”. Пре свега јер је “надзирани рад” толико убрзан/олакшан да један човек са пар минута недељно може врло успешно да све држи под контролом.

Има превише специјалних случајева (нпр. римски бројеви), грешака у куцању, неправилног уноса које човек може видети а бот ће одрадити све као да је идеално.
У случају да се аутоматски ради само пресловљавање на латиницу то је пола посла - опет човек мора да гледа ћирилицу…