Preslovljavanje (Transliteration)

@magnumns: Pazi, postoji ono sto je formalno, pravopisno i gramaticki tacno. A postoji i ono sto je nama najlakse da uradimo, pogotovu sa stanovista programiranja, i automatizacije iste.

Za 10 godina zivota po britanskim i irskim ostrvima nigde nisam video “roastery” :slight_smile: Best case scenario je bio bakery… Ali to je zato sto oni neznaju sta je dobro pecenje! :slight_smile: Da ne zapocinjem temu kako su se Irci cudili kad smo kupili jedno prase, zaklali ga ni krivo ni duzno na sred livade i bacili na razanj… Em sto oni ne kolju prasice i telad, jer je to njima “waste of meat” em sto jedva sastave nedelju dana lepog vremena da mogu da se propisno bave rostiljem. Nego, to je sve malo off-topic.

Ako primetis… napisah:


name=Pečenjara Skywalker

ergo, ispostovali smo vlasnika i njegovu zelju da se napise to u originalu.

u…


name:sr=Печењара Скајвокер

ima samo cirilice… dakle nema mesanja pisama…


name:sr-Latn=Pečenjara Skajvoker (Skywalker)

je napisano po Vuku i prema pravopisu koji to dozvoljava je napisano u originalu (u zagradama) jer je pismo kojim je pisano isto… mada neko moze da argumentuje da W ne postoji u srpskoj latinici…

Rusi su… rusi… i oni nek rade sta se njima radi i sta se njima radi… Bolji primer za uporedjivanje bi bila Bugarska ili Makedonija… Rusa ima 300 miliona (ili koliko god) a nas… voleli mi to ili ne, mnogo manje.

Imamo Pravopis… ili pravopis… koji je donekle fleksibiliniji na ovu temu nego sto je bio ranije, tako da… teraj Misko!

Сви примери које сам дао су исправни и што се нас тиче, чак и није битно који начин записивања ће нек да изабере. То треба сотавити ономе ко у конкретном случају уноси конкретан податак.

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

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

Слажем се, да се нам се мало забрљале дисксуије јер о истом причамо на вишеместа. Ево о Ппавопису сам покренуо засебну тему http://forum.openstreetmap.org/viewtopic.php?id=16031 али би било добро да се и тамо не дискусује него да се наводе конкретна правила. Ако треба да се дискутује о правопису, згодније је покретати посебне теме.

Што се тиче писања општих појмова као што су “железничка станица”, “апотека”, “извор”, “биоскоп”, “полицијска станица”, мало сам гледао како се то ради на ОСМ и видим да има разних приступа. Генерално, то треба писти за сваки објекат где тип не мора да једнозначно одреди врсту објекта. З друге случајеве, ја не видм проблем да се то упише јер нису баш ретки случајеви да се карте рендерују ан начин да није лакиз симбола протумачити о ком објекту се ради па је ту текст од велиек помоћи. Штавише неки катографски системи често и неприказују све називе на самој акрти али ако се оначи објетак могу се видети детаљи. Ово је нарочито битно за орјетнацију и кретање на терену. Мислим да би о томе како се рендерује наив требало да одлучи онај ко рендерује карту а не онај ко уноси.

Ако је ово тема за дискусију и то ваља наставитиу другој теми, да не разводњавамо.

Правопис то дефинише мало другачије. Није као што је устаљено мишљење. Покренуо сам тему за Правопис где сам издвојио шта Правопис каже на ту тему.
Конкретно, није искључено да се у ћириличном запису појаве и латинична имена.

Боље је користити name:sr таг јер је он једнозначно намењен запису српском ћирилицом.

Римски бројеви се преписују. Они важе и у ћириличном писању. Колико сам видео и у другим земљама су имали сличне проблеме када су вишејезични записи у питању и решење им је било да се окану name тага као основе. Користе тагове за језике а у name иде оно што се договори.

Мени је ово ок, мада могао би да рецимо ставиш линк ка OSM сајту тако да се измена може урадити директно на њему. То би ишло брже.

Бот би можда могао даима базу податак у позадини у коју би уписао све што је кроз њега прошло и у км статусу (шта он сам исправио, шта је неко ручно исправио, шта треба да сеисправи…).

Не бибило лоше и кад бисмо могли да некако преузмемо те обејкте које треба исправити директно из ОСМ или макар да ихгрупишемо па преузмемо више њих одједном. Ко ће се бактати са свикм појединачно.

Чак, можда је најједнотанвије, с обзиром да се ради о оедитовању тачно познатих тагова да бот омогући једноставну форму за упис и да он директно пошаље измене у ОСМ?

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

Тако је “name:sr=Печењара Скајвокер (Skywalker)” врло исправно а уједно задовољава све стране које су заинтересоване укључујући и Правопис, осим стране која инсистира да ту буде само ћирилица.

А уз то, директно омогућава и ово:

… да name:sr-Latn заиста буде директно пресловљено name:sr без икаквих компликација а чак се задржава и изворно писање имена. Ово одозго би постало “name:sr-Latn=Pečenjara Skajvoker (Skywalker)” што је, и даље и по правопису, и има српски назив и има оригиналан назив. Дакле, све што се тражи је испуњено.

Не би ваљало. За сваки назив треба да стоји таг на језику у коме се тај назив корсити који прикатује како се он пише у том језику. name само приказује подразумевани испис и он не одређује језик и писмо.

Видео сам на ОСМ вики да је ово и другима проблем. Тамо где псотоји само наме а ради сео језичком изузетку, рендеровање мапа постаје проблем јер тада рендерер мора да зна локална језичка правила.

Мислим да је баш незгодан пример био у Енглеској где имају исто области у којима се локално користе различити језици и имају праву збрку јер не могу да одреде који је језик употребљен у name тагу.

А ово што ја предлажем је и правописно исправно, и садржи све потребне информације и најлакше је за аутоматску обраду.

Да ли сам добро разумео - предлажеш да се направи веб интерфејс за измену тагова?

Бот не може да зна шта је неко радио у плагину, а добар део ће морати да прође кроз људске руке.

Изгледа да нисам био јасан. На серверу су два типа фајлова izmena152_d.osc и lektura123.osm . Први тип представља појединачну измену коју би бот сам послао на ОСМ сервер (http://www.openstreetmap.org/user/preslovljavanjeBot/edits?page=1) а други су груписани 100 објеката за које је бот проценио да треба изменити а он то не може сам да одради.

U jednostavnijoj formi ne, nego samo da das link ka OSM gde vec ima editor i sve sto treba, samo treba da se usmeri na konkretan objekat koji terba editovati.

U boljoj formi, da. Ali ne neki komplikovan editor nego najosnovija forma za popunjavanje tih nekoliko jezickih tagova pa da bot sam to upise u OSM bazu.

Aha, ovo sam prevideo. To je ok.

Ne bi bilo loše da plugin osm i osc datoetke razdvoji u dva direkorijuma. Biće preglednije.

Par komentara za plugin:

Valjalo vi da oznaci slogove da bi se moglo razlikovati:

  • koje je slogove sam menjao ali to treba proveriti
  • koji slogovi po njemu ne sadrže dobre unose
  • koje je slogove korisnik menjao ispravljajući ih
  • koje slogove treba proveriti (to su oni koji nemaju neki drugi status)

Kada korisnik upiše podatak u tag name:sr trebalo bi da se automatski ažurira name:sr-Latn a i name, prema podešavanju “Podrazumevano pismo”.

Još jedna stvar, prilikom unosa, valjalo bi da program proverava da li je trenutni unos ispravan, na primer tako da upozori ako korisnik ukuca ćirilični znak u tag gde može biti samo latinica. Može mnogo da pomogne oko grešaka sa slovima koja izgledaju isto u ćirilici i latinici. Lako se zeznuti u prebacivanju tastature sa jednog na drugo pismo pa može da seukuca negde pogrešno.

Valjalo bi da može da se iz plugina pokrene gugl pretraga po sadržaju taga. Može dosta da pomogne kada se edituju nazivi ulica u mestima koje ne poznajemo. Ja sam već naišao na neke slučajeve da sam morao da potražim ulicu preko gugla da vidim kako se tačno zove jer ono što je bilo upisano nije bilo tačno ali nisam bio siguran kako treba.

Malo je nezgodno što se ulice ne vide pa se radi napamet.

Može li da se polje na kome je kursor učini više izraženim? Često počnem unos a kursor mi na pogrešnom polju. Generalno, pravilo je da ako se korsinik po tabeli može kreati po poljima onda ne treba da se označava ceo slog tako da to izgleda važnije od polja. Važnije je da se vidi u kom je polju korisnik. Ne znam kakve su mogućnosti ove java tabele ali bi bilo dobro ako bi se slog označio kvačicom na početku sloga (ili da ceo red bude blago zasivljen) a da polje na kome je kursor bude plavo. To je neki ustaljen standard.

Valajlo bi da može da se sadržaj polja/sloga vrati na vrednost koja je bila pre nego što ju je korinsik poeo menjati, za slučaj da greškom izmeni sadržaj.

Može li da se ceo slog zaedituje da ne mora svako polje posebno da se edituje pa upiše? Smara i usporava unos.

Bilo bi dobro da za slog piše redni broj da se vidi koliko još ima da se radi :slight_smile:

Kad se krene sa unosom mora da se završi unos svih objekata, jer plagin ih sve odmah izmeni. Ne može da se srdi deo pa da se pošalje na OSM samo sređeni deo jes JOSM ne zna koje je objekte menjao plagin a koje korisnik.

Bitno!,Kada se skine osm koji je bot napravio, obavezno uraditi update pre izmena, jer taj OSM može da sadrži zastarele podatke u tagovima.

I još malo komentara

Malo me zbunjuje učitavanje objekata. Izaberem Podrazuemvano pismo ĆIRILICA i kliknem učitaj sve. Plagin učita neke podatke i koliko vidim sam pokuša da namesti tagove. Nakonnjega prođemja kroz tabelu i unesem ispravke. Izađem, pošaljem na OSM.

Zatim uđem ponovo i kad aponovim učitavanje, ne dobijem nijedan slog. To plagin zakquči da je sve u radu i ne prikaže mi nšta? To znači dami plagin prikazuje samo one objekte za koej on misli da ih treba srediti?

Primetio sam jedna objekat koji mi plagin nije prikazao da ga sredima treba da ga sredim. Jedna ulica je u ćiriličnom nazivu imala З umesto Ж. Plagin je, izgleda, zakqučio da pošto je sve ćirilica, unos je u redu iako nije.

Bolje bi bilo da plagin uvek učita sve selektovane objekte, a da označi šta misli da je u redu, šta je on isravio i šta da treba korisnik da ispravi. Korisnik treba da pregleda sve i da utvrdi šta je ispravno odnosno da popravi šta treba da se popravi. Korisniku može da se stavi dodatna opcija da filtrira prikaz prema tom statusu ili čak da sve štoje plugin ispravio jednim klikom proglasi da je u redu.

Kada se završi ispravljanje, plagin treba da upiše izmene samo u one objekte koji zaista jesu promenjeni: oni koje je promenio plagin a promene je potvrdio korisnik i one koje je korisnik promenio. Ostali objekti treba da ostanu neizmenjeni čak i ako plugin misli da su neispravni. Ako korsinik ponovo otvori plagin ponovo će videti sve slogove, samo će njihovi statusi biti drugačiji, jer oni koji su u međuvremenu izmenjeni, sada će biti ispravni, pa će korisnik moći da nastavi izmene na onim slogovima koji su i dalje neispravni.

Što se tiče jezičkih tagova, mislim da redosled treba da bude:

name:sr
name:sr-Latn
name
name:en

jer se najčešće unosi name:sr a osalo bi trebalo da se izgeneriše na osnovu njega.

Negde ukomentarima procitah da se name:en samo prikazuje ali ne menja. Zato ne? Onaj ko sređujenazive ako zna kako terba da seime zapiše naengleskom jeziku treba da može to i da popravi. Ja sam recimo video imena ulica gde su ispustena slova, permutovana, slova, upisane skracenice i slicno. To treba da se popravi u svim tagovima a ne samo nasim.

Ako korisnik ne zna kako naziv treba da se upiše na engleskom jeziku, onda ga neće ni dirati, ostaviće kako jeste.

Pored engleskog, mislim da treba predvideti tagoe za još nekoliko jezika koji su kod nas u nekoj meri službeni. Ovaj alat može da bude veoma koristan za unos naziva i na tim jezicima. Ovi tagovi mogu da ostanu prazni, pa na izlasku, plagin njih neće ni podešavati u datim objektima.

Već sam pomenuo u ranijoj poruci, valjalo bi omogućiti automatiku da se izvrši na pojedinačnom slogu u toku unosa. Ako korisnik unese ispravno name:sr od toga može da se automatski generiše name:sr-Latn i name a i name:en. To bi mnogo ubrzalo sređivanje. Ne mora automatika da se automatski pokreće, dovoljno bi bilo da korisnik može da aktivira da se automatski srede ostala polja u slogu na kome je trenutno.

Можеш ли да ми даш пример линка?

Крајњи корисник (лектор) ће имати само приступ osm фајловима и то на такав начин да се спречи да се један фајл може преузети више пута у току једног дана (једном дневно би се обрађивао дневна копија базе Србије). Фајлови osc би се после слања на сервер брисали и они би били невидљиви за лекторе.

Коментари су углавном на свом месту и углавном су били у плану, али за почетак мени је проблем да осмислим сам радни прозор плагина. Како приказати табелу са старим вредностима тагова, са новим вредностима тагова и још по нечим а да то буде прегледно и практично. Могу ли ту да добијем педлоге?

База на којој је радио бот је стара преко недељу дана ( имам ограничен проток а сада је крај месеце :frowning: ). Због овога ће бити ограничен број објеката у једном фајлу па ће евентуална штета бити мања ако се задеси такав случај.

Пеђа, видим да си добро разумео како сада ради плагин. То је прва верзија која којој је пре свега био циљ да учита тагове од ЈОСМ, измени их и врати их ЈОСМ-у за аплоад. Од тада се чека неки договор да се зна каква су правила за унос тагова, рецимо да ли таг name сме да буде латиница, да ли сме да буде латинице у name:sr, да ли је обавезан таг name:en и слично. Плагин и бот користе исту класу са логиком и док не дефинишемо ту логику обоје неће бити оптимални.

Mislim daje to ovo:

http://www.openstreetmap.org/browse/way/112824485

Broj bi trebalo da bude id objekta koji imas.

Svakako. Meni je samo problem što ne znam kakve su mogućnosti korisničkog interfejsa.

Ma nije šteta, uvek postoji mogućnost da se razlike reše kao konflikte ali je to zamorniji način.

Ako se selektuju svi objekti sa Ctrl+A, pa onda uradi Update Selection sa Ctrl+Alt+U a tek onda pokrene plaginmanja je prilika da bude konflikata.

Nemoj se time opterećiati. Poenta je da pravila, kakva god su, mogu da se primene i naknadno. Ovaj tvoj plagin zlata vredi pa makar i da se sve peske radi.

Ako si napravio na primer funkciju public OSMObj Preslovi (OSMObj pSOMObj) okjar adi ceo posao onda gde god treba samo pozoves:

OSMObj preslovljenOSMObj = Preslovi (originalniSOMObj)

i resen problem. Cela ostala funkcionalnost plagina ne zavisi od preslovljavanja.

Sto se tice korisnickog interfejsa, kad napravim neki predlog poslacu. Tu ima malo vise posla.

Evo predloga za resenje korisnickog interfejsa

Kada korisnik udje u plagin on automatski ucita sve selektovane objekte i prikaze podatke u tabeli bez automatskog preslovljavanja. To omogucava korisniku da vidi kakvo je stvarno stanje kako bi odlucio sta želi dalje da radi.

Opcije:

Podrazumevano pismo omogućava korisniku da izabere koji tag ce biti koriscen za auomatsko popunjavanje taga name.

Filter slogova omogućava filtriranej slogova:

  • svi - prikaz svih slogova
  • za proveru - prikaz svih slogova z akoje je potrebno da korsinik proveri da li su tačni
  • ispravni - prikaz svoh slogova koej plugin smatra ispravnim
  • autokorekcije - prikaz svih slogova koje je plugin automatski sredio
  • korekcije - prikaz svih slogova koje je korisnik menjao
  • za snimanje - prikaz svih slogova koji ce biti snimljeni

Preslovi sve - plagin prodje sve slogove i automatski preslovi sve što može

U donjem delu su opcije:

Preslovi - automatski preslovi tekući slog. Ovo se može korsititi nakon što se popravi neki tag da biplagin ažuriraoostale tagove na osnovu te promene

Prikaži original - otvori se dijalog u kome su prikazani podaci o objektu na koji pokazuej tekuci slog, ali oni originalni, bez izmena. Valjalo bi da korsinik moze da kopira neki od podataka sa Ctrl+C

Vrati original - vrati oroginalen vrednosti u slog. Moyda bi valjalo da pita dali da vrati vrednosti u ceo slog ili samo u teku’e polje (ili staviti posebno dugme za vraćanje vrednosti za tekuće polje)

OK - izlazak iz plagina sa snimanjem slogova koji su označeni za snimanje

Cancel - izlazal iz plagina bez snimanja izmena (valja upozoriti ako ima slogova koje bi trebalo snimiti)

E sad, glavni ekran:

Prva kolona pokazuje desnu strelicu na onom slogu koji je tekuci. Ceo tekuci slog takodje moze da ima promenjenu boju podloge a tekuće polje ne kom je korisnik je istaknuto.

Druga kolona st (status) pokazuje status sloga:
u - user changed - korisnik je menjao slog
a - auto changed - plugin je automatski menjao slog
? - quiestionable - plugin smatra da je ovaj slog neispravan i da ga treba proveriti
c - correct - plugin smatra da je slog ispravno popunjen

Treca kolona sadrži ček boks za svaki slog. Ako je čekboks označen, taj slog će biti snimljen u bazu prilikom završetka rada plagina. Oznaku može da stavi korisnik ručno ali ona može da bude i automatski uključena ako korsinik upiše neku promenu na slogu. Za slogove koje je plagin automatski izmenio checkbox ostaje isključen. Te izmene će se snimit samo ako korisnik naknadno označi slog za snimanje.

Korisnik slogove koje je plagin automatski sredio prepoznaje po statusu a i po tome što ti slogovi imaju promenjenu boju pozadine u blagu žutu.

Sledi kolona id koja sadrži ID objekta, zatim name:sr, name:sr-Latn, name, name:en i polja z atagove u drugim jezicima-

Boje polja u tabeli

Boje pozadine polja treba da odražavaju status slogova ili pojedinačnih polja. Boje su:

status a - bledo žuta
status c - bela
status ? - jako žuta
status u - bela

Treba razmilsiti imali potrebe da se razlikuju boje za statuse c i u

Takođe mogu se istim bojama prikazivati i statusi pojedinačnih polja, ako se smatra da bi i to trebalo da bude vizuelno naznačeno.

Koja je najnovija verzija preslovljavača i kako da znam dali je imam i kada je izašla novqa verzija, da mi ne promakne.

Ja sam skinuo sa http://svn.mpele.co.cc/SerbianTransliterator/

Ovo je sve odličan početak i zvuči mi kao prihvatljiv proces.

Samo mi je ova datoteka pregled.txt malo teška za čitanje, nije mi baš 100% jasno u šta gledam? Da li je moguće da se napravi klasičan diff? Onda se lepo vide sve promene (ne samo u name:sr), npr.


- name=Bulevar Zorana Đinđića
+ name=Булевар Зорана Ђинђића
+ name:sr=Булевар Зорана Ђинђића
+ name:sr-Latn=Bulevar Zorana Đinđića

pogotovu ako se otvori u nekom pristojnom editoru koji automatski oboji diff sintaksu.

Usput, primetih ‘Миджур’: ako je nastalo preslovljavanjem iz ‘Midžur’, onda bi trebalo i kod za preslovljavanje popraviti. (Mada je moguće i da je u pitanju izvorni bugarski ispis ćirilicom u ‘name’: http://sr.wikipedia.org/wiki/%D0%9C%D0%B8%D1%9F%D0%BE%D1%80))

Пеђа, врло освежавајући приступ.

У мојим ранијим размишљањима уместо колоне st и вредностима у њима предвиђао сам да цео ред буде обојен у зависности од статуса. Али то је сада мање важно. Без неког конкретнијег договора још је рано да се коментарише начин самог рада - у глобалу суштина је, по мени, ОК.

Главна замерка у визуелном смислу се односи на то што сматрам да би требало приказати и старе и нове (препоручене, измењене) тагове. Јесте да кошта доста простора али може да олакша схватање шта се дешава.

Мање битне ствари које би требало још размотрити:

  • приступ линку http://www.openstreetmap.org/browse/way/112824485
  • могућност да се прикаже чек бокс (или текст) који би био у вези са note/fix тагом
  • како означити случај када се жели изоставити вредност за неки таг (рецимо Милош предлаже да таг name:sr не постоји ако реч није на српском или ако се не жели унети енглески таг).

Само прати ову тему. Она је и због тога отворена.

Класичан diff је проблематичан јер би се упоређивали велики фајлови и било би много шума због осталих тагова.

Ако је лакше може се направити html преглед где би све било сложено по жељи са евентуалним линковима. Друга варијанта је да се креира csv, односно xls табела. Питање је само како организовати праћење ових измена на дневном нивоу.

Pa i sada već upoređuješ iste te velike datoteke, ili ne?

Što se šuma tiče, mislim da nije problem: spustiš kontekst, i kao što rekoh obojena sintaksa lepo naznači samo ono interesantno.

Mada slažem se da nije idealno, verovatno je bolji neki objektno orijentisani alat koji je svestan XML strukture, a koji se onda može ikoristiti i za GUI tvog dodatka kao što Peđa predlaže. Čudi me da (J)OSM biblioteke i alati ne sadrže već nešto tako, ovaj .osc izlaz ne služi ničemu (sem slanju na server naravno) jer ne sadrži prethodno stanje, slično i sa .osm izlazom.

E da, i što se engleskih naziva tiče, mislim da bi ih trebalo skroz izbaciti iz dodatka - em zauzimaju mesto u GUI-ju, em još uvek nismo našli način da ih koristimo valjano. Ko hoće, nek ih dodaje ručno po potrebi kao i do sada.