Preslovljavanje (Transliteration)

Napravio sam wiki stranicu Preslovljavača http://wiki.openstreetmap.org/wiki/JOSM/Plugins/SerbianTransliterator mislim da sada već možemo da stavimo sve informavije oko Translitera tu.

Ako sam dobro razumeo, plan automatskog bota za preslovljavanje se sprovodi u dve faze?

  1. i teža: pravljenje ‘name:sr’ naziva iz postojećih ‘name’ (u toku)

  2. i lakša: kopiranje nazad u ‘name’ i izvođenje ‘name:sr-Latn’ (dolazi kasnije?)

Što se tiče iznetih problema sa prvom fazom, mislim da nam nema druge do ručnog lektorisanja. Jedino što pomaže je da se izdvoje stavke gde automatsko generisani ‘name:sr’ naziv ranije nije postojao ili se razikuje od postojećeg jer samo one moraju biti proverene.

Мислим да није паметно да се таг name мења са бот-ом, бар не на серверу. За личне потребе ОК али за измене на серверу бих тај посао оставио човеку (плагин-у).

Ајд да мало појасним шта бот ради. Тренутно се ручно скида http://download.geofabrik.de/osm/europe/serbia.osm.bz2 и распакује се serbia.osm. Овај фајл се обрађује са истом класом као и записи у плугину.
Постоје два принципа рада која могу и истовремено да се користе:

  • генерише се нови фајл, копија serbia.osm, са свим изменама. Касније овај фајл се упоређује са оригиналним и из њега се генерише фајл са разликама, који се после дели на фајлове са јединичним разликама.
  • директно се генеришу јединичне разлике

Касније се ови фајлови са јединичним разликама у петљи шаљу на сервер.

Оно што сте приметили на серверу је тест свих ових корака на најопрезнији могући начин где се мењао само један таг. Бот још није спреман за масовну употребу јер се разлика броја фајлова са изменама разликује за пар стотина (~1800 - ~1500) за чисте ћириличне записе. Док не разумем овај феномен не бих се превише играо.

Када бот буде пуштен за озбиљно нема разлога да се одваја попуњавање name:sr и name:sr-Latn.

Уз ризик да лупим пошто нисам баш мног искусан са ЈОСМ, предложио бих да се просто уведе правило (а како сам прочито то и јесте) да се сви називи уносе на ћирилици. Програм тада не треба да се масира са транслитерацијом из латинице већ само да упозори на оне тагов екоји треба да буду попуњени ћирилицом а нису. Корисник у том случају мора прво да исправи на ћирилицу па тек онда да се обави транслитерација. Тако ће се решити и проблем недоследног уноса од раније.

Једини проблем може бити ако неки специфични уноси морају да садрже латиницу. Ту би решење могло да буде да се не инсиситра да сав садржај тага буде ћириличан, али да мора да има део написан ћирилицом. То би омогућило да се уноси мешан текст, што има смисла, а у коме би се транслитеровао само ћирилични део.

Не знам д али је дозволјено да се уведе неко специфичан таг који би значио: дозволи латиницу у ћириличном тагу. То би лепо решило те изузетке када назив треба да садржи латиницу.

@Pedja: Procitaj: http://forum.openstreetmap.org/viewtopic.php?id=15632

Samo ideja: proveri da nisu slučajno uneti mešoviti nazivi, npr. često se dešava da poneko a, e, o, j budu uneti u latiničnom kodnom rasporedu, a ta slova se razlikuju od ćiriličnih u unikodu.

Што више сагледавам проблематику све иде ка томе да већину пресловљавања мора човек прегледати, и сада размишљам да се постави сајт који би заинтересованом кориснику достављао ограничени број “спорних” објеката да их прегледа. Или другим речима, “лектор” оде на сајт и преузме фајл од 50-100 објеката са називима, прегледа / поправи их на начин као што то ради у плагину и пошаље их на сервер. Пошто је успешност пресловљавања релативно велика посао би се сводио на спорадичну интервенцију.

мпеле, ја бих ти радо помогао али не трошим џаву. Могу само да ти дам неке сугестије генералне природе а имам искуства јер сам се доста бавио пресловљавањем.

@mpele
Tako nekako. Što se mene tiče, može to i jednostavan diff na staroj i novoj osm datoteci da bude, onda mogu odmah da vidim gde postoje izmene, a i direktno zakrpu da ispravim i vratim.

Имењаче, упознат сам са са твојим радом још од ере пре интернета и сваки савет је добродошао.
Овде је проблем концептуално друге природе од стандардног проблема пресловљавања јер није императив добити пресловљавање са што већом тачношћу, већ одредити ситуације где је пресловљавање успешно 100%.

Како тренутно стоје ствари кристалише се идеја да бот прочешља базу и ако је laitinica(name:sr)==latinica(name) онда је објекат коректно обрађен и нема потребе за даљом обрадом. Овиме би се покрио случај када је лектор то прогласио коректним (раније сам размишљао и о посебном тагу за посебне ситуације, али сада не могу да се сетим ситуације када би он био неопходан).

Ако није задовољен претходни услов онда имамо две варијанте:

  • чиста ћирилица - бот све сам заврши
  • остало - шаље се на лектуру.

Слање на лектуру би подразумевало дневно генерисање osm фајлова са “двосмисленим ситуацијама” који би били доступни преко веб интерфејса. Тај фајл би се учитавао у ЈОСМ и уз плаг-ин обрађивао.

Iskreno receno mislim da bi za pocetak bilo dobro da konacnu odluku donosi korisnik, a ne bot. Kasnije kad se situacija malo iskristalise dalja automatizacija moze da se ukljuci. Zelja da se sve unapred predvidi odlicnim programiranjem je cesta zamka u ovom poslu, i bilo bi bezveze da se suvise puno vremena ulozi u nesto sto ce na kraju da propadne kao projekat. Ja predlazem “sitne” korake. Mozda je i najbolje za pocetak da se usavrsi plugin i da svako koristi taj plugin onda, i posle pregleda izmena iste gurne u bazu… Time se stvara i… “accountability”…

(Ma, srpski lengvidzh mi je svetinja)

Управо то и јесте костур идеје, али ја предлажем и малу надоградњу, тј. да корисник не мора да лута по мапи и тражи где фали таг name:sr већ да му се то сервира.

Naravno, bot treba da reši sam sve što je očigledno i da se automatski rešiti prema definisanim pravilima, a ono što je nejasno treba da ostavi nama i da nam izdvoji šta treba da se uradi. Čak i ono što odradi automatski može a prikaže da ipak neko može da pregleda ieventualno popravi ak se pojavi kakva greška.

Jesi li to napravio lapsus? Zar name:sr ne treba da sadrži ćirilični naziv?

Брендирана имена, по мени, треба да остану на латинициi u name:sr тагу: Taxi, MAXI, OMV, McDonalds, Beneton…

ЕјСи ДиСи НиЗаДиСиНиСи

То да.

Онда би алгоритам могао да буде овакав:

  • ако је попуњен name:sr а name није није исти као name:sr онда се name:sr преписује у name
  • ако је попуњен name ћириличним текстом, а name:sr је празан, онда се преписује name у name:sr
  • ако name садржи нећириличне знакове а name:sr је празан, онда се пријављује да је потребна интервенција
  • у name:sr-Latn се преписује садржај name:sr пресловљен у латиницу

Ако је потребна интервенција, корисник треба да у name:sr упише тачан назив. Може да га упише и у name, мада ако то не уради, то ће урадити бот у следећем пролазу.

Мислим да би то покрило све случајеве.

Постоји ли могућност да бот убаци неки кастом таг којим би могао да назначи какав је статус уноса? Ако би то могло онда не би морали да посебно извлачимо објекте које треба прегледати него бисмо их простом претрагом по том тагу извукли.

Može npr. da se ubaci ‘fixme’ sa nekim opisom koji će biti specifičan za tu upotrebu.

http://wiki.openstreetmap.org/wiki/Key:fixme

Što se brendiranih naziva tiče, po meni ne bi uopšte trebalo da imaju ‘name:sr’ ako nisu na srpskom jeziku. U ‘name’ može da stoji štagod.

Mislim da strane nazive za sada ne treba dirati jer ne postoji tacan dogovor… Jel postoji mogucnost da se oni samo zanemare. U name:sr nikako ne treba pisati nista osim cirilice, rimskih br i eventualno nekih standardnih znakova.
Sta fali da se Taxi napise cirilicom Taksi? Primer upotrebe svog jezika Rusija, Grcka… Moglo bi da se pise po Vuku (i svi ostali jezici imaju slicna pravila za strane reci)… Ali za sada bolje da ostane samo name.
Jel moze plugin da razlikuje ulice od ostalih objekata, pa samo njih da prebacuje u cirilicu, a ostale da salje na proveru?

Технички, ово би било идеално решење, само морам да приметим да је најлогичније мењати таг name а не name:sr . Плашим се да би било проблема по овом питању, тј. да бисмо губили измене. У оваквим случајевима бот-у бих дозволио да мења једино ако се консултује са историјом тог објекта, а у овом тренутку је то далека будућност.

Није проблем додати наш таг. И њега не би требало мешати са fixme јер fixme означава да нешто треба мењати а наш таг би морао и да означи да је тренутно стање добро. Рецимо, ако се одлучи да name:sr треба да буде празно, односно да га нема, бот мора знати да је то “лекторисано” решење.