OpenStreetMap Forum

The Free Wiki World Map

You are not logged in.

#1 2012-02-29 22:57:14

kmilos
Member
Registered: 2012-02-28
Posts: 179

Preslovljavanje (Transliteration)

Za potrebe JOSM dodatka, ICU4J bogami možda odradi posao [1]. Proverio sam, i sledeći kod radi:

import com.ibm.icu.text.Transliterator;

class Translit {
    public static void main(String[] args) {
        Transliterator t = Transliterator.getInstance("Serbian-Latin/BGN"); //from getAvailableIDs()
        String result = t.transliterate("ЊЕГОШ Његош");
        System.out.println(result);
    }
}
$ javac -cp icu4j.jar Translit.java
$ java -cp .:icu4j.jar Translit
NJEGOŠ Njegoš

E sad, manji je problem što je icu4j.jar 'težak' skoro 7Mb, ali izgleda postoji mogućnost modularizacije [2].

[1] http://icu-project.org/apiref/icu4j/com … rator.html
[2] http://userguide.icu-project.org/packaging-icu4j

Last edited by kmilos (2012-02-29 23:29:58)

Offline

#2 2012-03-01 01:01:43

Drazha
Moderator
Registered: 2012-02-24
Posts: 113

Re: Preslovljavanje (Transliteration)

Sto je problem sto je icu4j.jar tezak 7MB?

Offline

#3 2012-03-01 18:40:46

mpele
Member
Registered: 2012-02-25
Posts: 201

Re: Preslovljavanje (Transliteration)

Погледајте Филипов пресловљач на http://sr.wikipedia.org/sr/Википедија:Помоћна_оруђа . Урађен је у Јави и под GPL лиценцом је што значи да би могли да дођемо до његовог кода. Немам времена да контактирам Филипа, али то би могло да нам значи поготову, ако сам добро видео, што може да се избори и са римским бројевима.

На жалост само пресловљавање нам је најмањи проблем. Мука је све оно испред и после тога.

Offline

#4 2012-03-01 20:55:44

kmilos
Member
Registered: 2012-02-28
Posts: 179

Re: Preslovljavanje (Transliteration)

Da, natrčao sam i ja na njega pre dosta vremena [1], mogla bi biti lakša varijanta ako se može razdvojiti lako od svog GUI-ja.

Stranica trenutno ne radi, evo poslednje arhivirane: http://web.archive.org/web/200801152011 … rator.html

[1] http://nasepismo.blogspot.com/2007/07/java.html

Last edited by kmilos (2012-03-01 20:57:42)

Offline

#5 2012-03-02 08:50:22

mpele
Member
Registered: 2012-02-25
Posts: 201

Re: Preslovljavanje (Transliteration)

Ако је тачно да је први корак најтежи и да су сви остали сумирање претходног, онда је нама највећи проблем да направимо форк TagEditor-а . Код је доступан, и изгледа да се активно одржава, па "само" треба да научимо како се компајлира.

https://github.com/openstreetmap/josm-p … /tageditor
http://svn.openstreetmap.org/applicatio … tageditor/

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

Ја сам у страшној гужви и нећу скорије моћи да посветим више времена за ову проблематику, па има ли још заинтересованих да се упусте у овај посао?

Offline

#6 2012-03-03 18:26:10

kmilos
Member
Registered: 2012-02-28
Posts: 179

Re: Preslovljavanje (Transliteration)

Meni se ovaj TagEditor čini malo kao overkill... Ili bi trebalo počupati dosta iz njega, ili da se krene ispočetka?

Offline

#7 2012-03-04 11:04:29

mpele
Member
Registered: 2012-02-25
Posts: 201

Re: Preslovljavanje (Transliteration)

kmilos wrote:

Meni se ovaj TagEditor čini malo kao overkill... Ili bi trebalo počupati dosta iz njega, ili da se krene ispočetka?

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

Offline

#8 2012-03-04 11:32:24

kmilos
Member
Registered: 2012-02-28
Posts: 179

Re: Preslovljavanje (Transliteration)

U okvirima svojih mogućnosti i sposobnosti (skoro nula iskustva u Javi), naravno.

Offline

#9 2012-03-04 21:04:09

mpele
Member
Registered: 2012-02-25
Posts: 201

Re: Preslovljavanje (Transliteration)

Форкнуо сам TagEditor и моћи ћу да се направим плагин по жељи.

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

1. ћириличан назив у тагу name онда додати/променити остале тагове на основу овог назива
2. латиничан назив у тагу name и није дефинисан name:sr онда додати/променити остале тагове на основу тага name
3. латиничан назив у тагу name и дефинисан name:sr онда додати/променити остале тагове на основу тага name:sr

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

Offline

#10 2012-03-06 17:04:04

mpele
Member
Registered: 2012-02-25
Posts: 201

Re: Preslovljavanje (Transliteration)

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

Offline

#11 2012-03-06 23:03:51

kmilos
Member
Registered: 2012-02-28
Posts: 179

Re: Preslovljavanje (Transliteration)

mpele wrote:

Како ћемо да размењујемо фајлове?

To sam se i ja pitao. Ako se baviš razvojem, da nemaš već neku svoju riznicu tipa GitHub, Gitorius, Berlios, Sourceforge, Google Code...?

Ako ne, možda Dropbox nije loša alternativa za sada?

Offline

#12 2012-03-07 06:54:41

mpele
Member
Registered: 2012-02-25
Posts: 201

Re: Preslovljavanje (Transliteration)

kmilos wrote:
mpele wrote:

Како ћемо да размењујемо фајлове?

To sam se i ja pitao. Ako se baviš razvojem, da nemaš već neku svoju riznicu tipa GitHub, Gitorius, Berlios, Sourceforge, Google Code...?

Ako ne, možda Dropbox nije loša alternativa za sada?


План је да плагин иде у званичан SVN репозиторијум JOSM-a чим буде бар колико - толико тестиран. У међувремену ћу сам да се организујем за хостовање. Дакле, за тестере плагин се налази на:

http://mpele.co.cc/osm/serbiantransliterator.jar

Ако би неко да помогне око кода (што бих баш ценио) нека се јави па да и њега објављујем.

Упутство за инсталацију на дну странице http://wiki.openstreetmap.org/wiki/JOSM/Plugins .

Last edited by mpele (2012-03-07 06:55:37)

Offline

#13 2012-03-07 07:32:35

mpele
Member
Registered: 2012-02-25
Posts: 201

Re: Preslovljavanje (Transliteration)

Рад са овом верзијом плагина је једноставан. Селектују се објекти који желе да се обраде и стартује се плагин. Појавиће се нов прозор са табелом у којој се налазе предлози за поједине тагове (објекти који немају таг name неће бити обрађивани). У табели директно исправити шта треба да се исправи, или уклонити ред уколико се не жели мењати тај објекат и притиснути ОК. Измене су директне и не иду преко Undo/Redo система.

Програм је сиров и поента његовог објављивања у овој фази је да се покрене дискусија како да се врши пресловљавање.

Offline

#14 2012-03-08 20:12:45

SunCobalt
Member
From: Eislingen
Registered: 2010-01-09
Posts: 3,636

Re: Preslovljavanje (Transliteration)

Hi Pedja

Please find below my observations. Hope you find them helpful.

1) It is bilingua,l "edit nazivi" for example
2) the window is not attached to JOSM and is not in the task bar. Switching to another window like Firefox and back would make the tool unusuable until JOSM is restarted
3) Since it is not really a name:en i.e. english name, I would rename or leave it. Garmin can deal with special Serbian/latin characters.
4) Although you can mark more than one column, you can only delete one
5) having a name=Todora Milovanovića (Тодора Миловановића) results in a name= and name:sr= having the value Todora Milovanovića (Тодора Миловановића), name:sr-Latn =Todora Milovanovića (Todora Milovanovića) and name:en=Todora Milovanovića (Todora Milovanovica). Please note that one ć was replaced with c in name:en
6) It is crashing quite often but I am sure, you know that and you are working on it

Thanks for your work


Thomas

Offline

#15 2012-03-08 21:00:03

mpele
Member
Registered: 2012-02-25
Posts: 201

Re: Preslovljavanje (Transliteration)

Hi Thomas,

2) the window is not attached to JOSM and is not in the task bar. Switching to another window like Firefox and back would make the tool unusuable until JOSM is restarted

I have just updated plugin and now it uses modal window. It worked normally on my machine (debian) - what OS are you use?

3) Since it is not really a name:en i.e. english name, I would rename or leave it. Garmin can deal with special Serbian/latin characters.

The "official" decision is that tag name:en should be there. That note should be discused in topic http://forum.openstreetmap.org/viewtopic.php?id=15632.
Do you have some experince with osmand? It renders names ok but not all are searchable.

5) having a name=Todora Milovanovića (Тодора Миловановића) results in a name= and name:sr= having the value Todora Milovanovića (Тодора Миловановића), name:sr-Latn =Todora Milovanovića (Todora Milovanovića) and name:en=Todora Milovanovića (Todora Milovanovica). Please note that one ć was replaced with c in name:en

Spliting cyrilic/latin names are not yed done. The output is expected because the name is recognised as cyrilic and only cyrilic letters are "transliterated in english".

6) It is crashing quite often but I am sure, you know that and you are working on it

The code should be relatively stable now. If you start JOSM with command

java -jar josm-latest.jar

there should be some output from plugin that can help in locating problem. I have noticed that "PLATO" with omega crashes program but I hadn't time to see what exactly is the problem.

Thanks for testing,
Pedja

Offline

#16 2012-03-08 21:58:45

SunCobalt
Member
From: Eislingen
Registered: 2010-01-09
Posts: 3,636

Re: Preslovljavanje (Transliteration)

mpele wrote:

2) the window is not attached to JOSM and is not in the task bar. Switching to another window like Firefox and back would make the tool unusuable until JOSM is restarted

I have just updated plugin and now it uses modal window. It worked normally on my machine (debian) - what OS are you use?

Yes, it is working fine now. I am using Windows 7 right now but can test in Windows XP too. Debian is headless and without X here.

mpele wrote:

3) Since it is not really a name:en i.e. english name, I would rename or leave it. Garmin can deal with special Serbian/latin characters.

The "official" decision is that tag name:en should be there. That note should be discused in topic http://forum.openstreetmap.org/viewtopic.php?id=15632.

Sorry, but I do not agree. It is quite clear what an english name. i.e. name:en is. It is not a latin Serbian name without special characters. Good example is Belgrade (en) Beograd(serbian/latin). If you think that I am wrong, please ask the people from the UK. You don't want that outside people decide about name:sr so give other the right to decide about their own.

mpele wrote:

Do you have some experience with osmand? It renders names ok but not all are searchable.

Not yet, but some Android devices here. I can test with a Garmin outdoor device (Oregon) and a car GPS navigantion (Garmin nüvi 1390T http://www.amazon.com/Garmin-4-3-Inch-W … 300&sr=8-1 )

mpele wrote:

5) having a name=Todora Milovanovića (Тодора Миловановића) results in a name= and name:sr= having the value Todora Milovanovića (Тодора Миловановића), name:sr-Latn =Todora Milovanovića (Todora Milovanovića) and name:en=Todora Milovanovića (Todora Milovanovica). Please note that one ć was replaced with c in name:en

Spliting cyrilic/latin names are not yed done. The output is expected because the name is recognised as cyrilic and only cyrilic letters are "transliterated in english".

smile Looking forward to sort out Nis smile

mpele wrote:

6) It is crashing quite often but I am sure, you know that and you are working on it

The code should be relatively stable now. If you start JOSM with command


java -jar josm-latest.jar

It does not matter what command I am using. I am using java -Xmx3500M -jar josm-tested.jar. However, your plgin requires a minimum version of XX (can't remember, I had to upgrade to a very recent version). Is it necessary to limit it to very recent JOSM versions?


I have now another problem. The plugin is in Serbian only. I don't want you to make it multilingual. But I can't copy and paste the words from the buttons to google translate. There are not to much words, would it be possible to have OSM/Wiki-page with a very short translation? Maybe with a link in the plugin so that foreigners are also able to add names?

One thing.....It is fine to answer in Serbian, I am just a guest here.


Thomas

Offline

#17 2012-03-08 22:31:01

SunCobalt
Member
From: Eislingen
Registered: 2010-01-09
Posts: 3,636

Re: Preslovljavanje (Transliteration)

ist it possible to test the names if there is a letter in name= which indicates that it is not Serbian? It produces not valid results if German names with letter "ß" are used name:sr=Адлерстраßе, name:sr-Latn=Adlerstraße
This is not a big deal but there are also Hungarian street names in OSM Serbia, which would be messed up like this one: name=Petöfi Sándor utca, name:sr=Петöфи Сáндор утца, name:sr-Latn=Petöfi Sándor utca


Thomas

Offline

#18 2012-03-08 22:43:37

kmilos
Member
Registered: 2012-02-28
Posts: 179

Re: Preslovljavanje (Transliteration)

Pedja, evo uspeo sam i ja da poteram dodatak, evo par zapažanja:

1) Slažem se sa Tomasom, sučelje treba da je na engleskom, lakše je posle dodati srpski koristeći i18n klasu

2) Pritiskom na 'Učitaj' je moguće beskonačno dodavati isti objekat, ne bi bilo loše vršiti proveru da id bude jedinstven u tabeli

3) Ja bih uklonio mogućnost 'Učitaj sve tagove' - em ne radi (dobijem neki dugačak niz s kojim ne znam šta ću), a i ne vidim neku korist u budućnosti?

4) Možda stvarno ne bi trebalo da diramo name:en (ili da ostavimo isključeno kao buduću opciju?). Diskusija u drugoj temi je bila kako bi otprilike trebalo da izgleda, ali možda ne moramo niti treba da generišemo automatski?

5) Ako zatvorim pa ponovo otvorim prozor, dodatak izgleda prestaje da radi kod mene (Win XP, JRE 1.7, JOSM 5049), npr. 'Učitaj' ne reaguje

Last edited by kmilos (2012-03-08 22:44:15)

Offline

#19 2012-03-08 22:56:37

magnumns
Moderator
From: Нови Сад, Србија
Registered: 2012-02-25
Posts: 117

Re: Preslovljavanje (Transliteration)

I ja mislim da name:en ne treba da se generise automatski, vec samo rucno, tamo gde stvarno postoji naziv na engleskom. U suprotnom bi gomilali netacne informacije...

Offline

#20 2012-03-08 23:05:36

kmilos
Member
Registered: 2012-02-28
Posts: 179

Re: Preslovljavanje (Transliteration)

Natrčao sam i na grešku. Npr imam par ulica sa 'name=latinica' i 'name:sr=ћирилица', izaberem ih sve, pokrenem editor, izaberem CIRILICA kao podrazumevano, kliknem 'Učitaj', i u tabeli stvarno sve izgleda savršeno. Međutim, kada kliknem ok, dobijem

name=latinica
name:sr=latinica
name:sr-Latn=ћирилица

Offline

#21 2012-03-09 00:27:33

mpele
Member
Registered: 2012-02-25
Posts: 201

Re: Preslovljavanje (Transliteration)

За почетак, ако некога интересује код он се налази на:
http://svn.mpele.co.cc/SerbianTransliterator/

Одговорићу на брзину на пар питања.

Није ми познато зашто треба новија верзија ЈОСМ-а за плугин. То је наслеђено од tageditor-а. А што се стабилности тиче ја нисам имао проблема какве описујете.

Не видим сврху да сучеље буде на енглеском. Чак шта више мислим да не би требало да буде на енглеском, већ на српском јер онај ко не разуме шта пише може само зијан да направи. Томасу свака част за све што је урадио, али мислим да он није у стању да самостално изврши пресловљавање (бар не још увек).

2) Pritiskom na 'Učitaj' je moguće beskonačno dodavati isti objekat, ne bi bilo loše vršiti proveru da id bude jedinstven u tabeli

Лакше је само онемогућити дугме.

3) Ja bih uklonio mogućnost 'Učitaj sve tagove' - em ne radi (dobijem neki dugačak niz s kojim ne znam šta ću), a i ne vidim neku korist u budućnosti?

Милоше, у овом твом питању лежи суштина целог проблема. Између ова два дугмета је суштинска разлика. Дугме "Учитај" узима таг name и из њега се генеришу све остале вредности, док друго дугме обрађује све тагове (пре свега name, name:sr, name:sr-Latn) и на основу њих треба да одлучи да ли има потребе да се ради пресловљавање за тај објекат и ако треба како попунити тагове. Тај дугачки низ који помињеш је ту ради контроле рада.

Можда је најлакше да ситуацију појасним са становишта бот-а. Бот када буде чељао и када буде налетео на таг name попуњен са ћирилицом, све ће бити јасно и врло лако може да упореди тагове name:sr, name:sr-Latn са новим вредностима и ако има потребе да их поправи/замени/дода. Слична ситуација је и са латиницом која има наша слова (шђћ и сл.).
Шта се дешава ако наиђе на таг са латиничним називом који у себи не садржи наша слова Ту постоји могућност да упореди са name:sr или name:sr-Latn и на основу тога процени да ли да тражи људску интервенцију или да самостално делује. Ту ми се јавља идеја да се, можда, уведе неки таг који означавао специјалне случајеве, или чак да се направи база са изузецима.

Имамо алат који може много тога да уради сада треба да му кажемо шта треба. И ту ми треба да сагледамо ствари да што боље поставимо ствари.

Иначе, тренутно се не мења садржај тага name и то ствара привид грешке.

Offline

#22 2012-03-09 01:18:00

kmilos
Member
Registered: 2012-02-28
Posts: 179

Re: Preslovljavanje (Transliteration)

mpele wrote:

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

Peđa, sučelje ne treba da bude briga programera, već izbor korisnika. Ja npr. ne želim da mi GUI bude izmešan, i to na ćelavoj latinici. Zijan ne možeš da sprečiš ni u kom slučaju, jer ga većinom do sada prave ionako domaći maperi.

Napravi ga molim te na engleskom, i18n ću ja odraditi ako tebe mrzi. Posle će biti prekasno i previše posla. Treba misliti malo šire i postaviti ovo na dobre noge u početku kako bi mogli da se skoncentrišemo na kod i mogućnosti.

Ja bih npr. još promenio i naziv u 'translit-sr' jer mi se javlja da će možda biti  i -ru, -ko, -zh, -el, itd. i svi možemo jedni drugima da dodajemo, krpimo, i sl. (A idealno bi to bio samo jedan dodatak 'transliterator' gde je srpsko preslovaljavnje samo jedno od pravila, nalik na FF dodatak [1].)

Što se 'Učitaj sve' tiče, hajde da prvo osnovno preslovljavanje doteramo da radi bez greške, pa će se kroz upotrebu već nazreti kako bi išao automatizovani proces i koji su sve scenariji mogući. Meni je npr. logičnije da se uradi samo najosnovnije umesto da se uskače u sve odjednom, i da korisnik npr. obavezno izabere koji je izvorni naziv ('name' ili 'name:sr').

Kada smo već kod toga, ja bih radije onda da tu ima i među-korak: nakon izbora objekata i izbora izvornog taga, 'Učitaj' popuni tabelu _bez_ obrade, pa onda tek ide dugme 'Obradi'.

Иначе, тренутно се не мења садржај тага name и то ствара привид грешке.

Ajde dobro to, ali zašto obrće pisma za name:sr i name:sr-Latn?

[1] http://www.benya.com/transliterator/

Last edited by kmilos (2012-03-09 01:24:54)

Offline

#23 2012-03-09 08:10:18

mpele
Member
Registered: 2012-02-25
Posts: 201

Re: Preslovljavanje (Transliteration)

Како ми се чини, овде се прича о различитим схватањима приоритета. Ово мало времена што успевам да одвојим за ову ствар сматрам да не треба да трошим на исправљање сучеља већ да решавам срж проблема - одмах у чело а не нешто изокола.
Мени је жеља да корисник пошто преузме податке са сервера уради: CRTL+A, ALT+SHIFT+1 и да му се предложе само измене, а то је могуће само ако се анализирају сви тагови. Алат који би од корисника очекивао да ручно изабира шта треба да се анализира и само га поштедео куцања је, по мени, само половично решење.
Надам се да сви делимо ово идеју.

Пар пута сам тражио предлоге за алгоритам пресловљавања да бисмо могли да их заједно продискутујеамо али нисам добио ниједан. Чак ни коментар онога што сам ја изнео.

пс. Коментари типа

name=latinica
name:sr=latinica
name:sr-Latn=ћирилица

ако нису дати сви тагови су и  начин учитавања не значе много.

Offline

#24 2012-03-09 13:38:25

mpele
Member
Registered: 2012-02-25
Posts: 201

Re: Preslovljavanje (Transliteration)

Сада би плугин требало да ради и са тренутно тестираном верзијом ЈОСМ-а. Од сада најновија верзија се налази на:

http://svn.mpele.co.cc/SerbianTranslite … erator.jar

Да ли се и са овом верзијом јављају нестабилности?

Offline

#25 2012-03-09 23:47:41

kmilos
Member
Registered: 2012-02-28
Posts: 179

Re: Preslovljavanje (Transliteration)

Peđa, nadam se da dosadašnje komentare ne uzimaš kao kritike, verujem samo da nismo očekivali da ćeš iskodiradi nešto u tako kratkom roku, svaka čast! To isto objašnjava i što nisam stigao da komentarišem nijedan od tvojih ranijih predloga. Ideja imam dosta (koje će zbog obaveza morati da čekaju), ali ti si već ispred, i ok je ako ne želiš da te kočimo. Nadam se samo da nećeš biti isključiv za zakrpe u budućnosti.

E sad, što se prijave greške tiče, mislim da sam bio dovoljno detaljan. Za svaki slučaj evo i par slika, a koraci su još jedanput sledeći:

1. Izaberem npr. ulicu koja je tagovana sa 'name=latinica' i 'name:sr=ћирилица' translit1.png

2. Aktiviram editor, izaberem 'CIRILICA' kao podrazumevano pismo, i kliknem 'Učitaj'

3. U dijalogu editora sve izgleda savršeno translit2.png

4. Kliknem 'Ok'

5. Promene u JOSM sadrže grešku jer su 'name:sr' i 'name:sr-Latn' obrnuti translit3.png

Ovo se dešava i sa najsvežijom verzijom koju si danas postavio.

Last edited by kmilos (2012-03-09 23:49:06)

Offline

Board footer

Powered by FluxBB