Preslovljavanje (Transliteration)

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

Крајњи корисник (лектор) ће имати само приступ 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.

I ja sam primetio slične greškekoje prolaze, zato sam i predložio da plagin ne prikazuje samo ono što misli da treba da se menja nego sve što je selektovano a da označi ono što misli da treba da se menja. Tako ostavlja korsiniku mogućnost da vidi sve i da ispravi i greške koje plagin ne može da primeti.

Konkretno, grešku kao što je ova koju si ti našao plagin može delimično da detektuje jer kombinacija дж je u srpakomjeziku veoma retka pa bi moglo da prođe da se svako njeno pojavljivanje označi kao da ga treba proveriti. Doduše ostaje problem kako naznačiti kaa ej ta kombinacija isprvna da je plagin ignoriše (da se ne bi korsitio dodatni tag, može se plagin naučiti koje reči sadrže kombinaciju дж pa da njih ignoriše.

To sam i ja predvideo, ali svejedno bitno ej da postoji ta kolona st jer je ona očigledna. Boje treba da posluže samo da korsiniku olakšaju da brže prolđe tabelu i sređuje ono što očigledno treba srediti.

Mislim da to nije neophodno. Dovoljno je ako korisnik može klikom na dugme da vidi prethodno stanje i to je sasvim dovoljno. Dovoljno je da mu je ceo slog naznačen da je menjan tako da zna da treba da ga proveri. U samom radu, relativno retko će trebati da se pogleda prethodno stanje ali u nekim slučajevima može da bude korisno.

Ovo nije loša ideja, ali bi bolje bilo da se vidi zašto JOSM ne prikazuje objekte kada ih učita.

Na to sam zaboravio. Trebalo bi da se obrati pažnja na taj tag a možda i da se uvede poseban status na osnovu tog taga, pošto je to opet poseban slučaj koji treba da se obradi.

Juče sam morao da na brzinu završim pisanje poruke u vezi predloga korisničkog interfejsa tako da nisam napisao sve.

Jedna od ideja je da plagin ima konfiguraciju a da se u konfiguraciji može izmešu ostalog podešavati koje sve tagove treba prikazivati u tabeli. to bi omogućilo da svako prilagoti prikaz onome što radi a dalo bi plaginu mnogo veću upotrebnu vrednost.

Generalno ima tu još mogućnosti generalizacije. Jedan od njih je da korsinik može da podesi način automatske obrade i način provere ispravnosti polja, što bi ostavilo slobodu da se podesi po potrebi. Tako bi i ovo sa praznim tagovima u stvari bilo stvar podešavanja. Ko hoće engleski tag podesi da se prikazuje. Ko hoce da namesti da se neki tag ne mora popunajvati (ili da se mora popunjavati, može to tako da podesi)… Još jedna dobit bi bila što tada plagin ne bi bio vezan smao za name tagove nego i za bilo koje druge koje korisnik izabere.

To u stvari vise ne bi bio plagin samo za preslovljavanje nego bi mogao da služi kao opšti tabelarni editor tagova, a to bi bio veoma moćan alat. Neko je pomenuo da je negde video da za mesto stoji tag population koji ima vrednost 0.

Zamislite sad da ovaj odeitor moye da sepodesi da prikazuej tag population, tako da neko moze prosto da selektuje sva mesta na svojoj mapi prikaze ovaj tag i onda kroz tabelu lako proveri i spavi vrednost ovog taga za mesta (koristeći neki statistički izvor koji daje takve informacije). To bi bilo vrlo efikasno.

Ili, zamislite da neko crta mapu na prostoru koji nije mapiran pa ucita trekove u GPS formatu. To ce na mapi da izgleda grozno, jer import iz GPS uglavnom i n emoze da bude dobar. Selektuje sve puteve, prikaze u tabeli i onda lepo i brzo izedituje bitne propertije koje unapred izabere… To bi bilo mnogo brze neko klikanje po objektima i podesavanje tagova za svaki zasebno, kako mora sada da se radi.

Znam da sam otuišao od teme Transliteracije, samo pokušavam da objasnim kako ovaj plagin može mnogo da se unapredi sa relativno malo posla tako da postane mnogo upotrebljiviji alat.

U stvari što se tiče izmena problem je samo ako se objekat prikazuje a neko ga je u međuvremenu već popravio tako da nije više predmet pregleda.

Kolko traje generisanje ovih datoteka na postojećoj bazi, odnosno koliko resursa troši. Koliko često bi mogao da se pokreće plagin da sve nanovo generiše?

Koliko bi funkcionisalo da se za svaku datoteku prikaže kada je generisana, pa da korisnik pre nego što je preuzme, ako je prilično stara može da pokrene njeno nanovo generisanje? To ne bi moralo da ceslja celu bazui nego samo da azurira objekte koji se vec nalaze u toj izabranoj datoteci.

Ako bi se moglo podešavati koje se kolone prikazuju to bi rešilo stvar )omogućilo bii da neko izabere da prikazuje nema:hu ili name:sq zavisno koju tertitoriju tretira pa da mu se prikazuje ono što je relevantno.

Tag name:en sam predvideo zato što tako možemo da omogućimo da se istovremeno sa našim jezikom, nazivi upisuju u engleskom (a i to uglavnom može da se uradi automatski pa bi kolona više služila za proveru).

Pitanje: koliko je izvodljivo u javi napraviti da korisnik moze da unese neki izraz koji ce java aplikacija da izvrsi kao java kod?

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

Ми можемо направити свемирски алат али питање је колико ће он касније имати посла.
Описаћу могућ начин проналажења грешака. Колико ми је познато скоро сви овде владају основама линукса па ћу онда само набацати пар команди (команде су фигуративне)

wget serbia.osm.bz - то је 30так Mb
unzip serbia.osm.bz
cat serbia.osm | grep name > tagovi 

Прегледом фајла tagovi нађу се грешке. У обичном едитору се нађе id објеката који је проблематичан и онда га је лако исправити. Гледајући ову просту процедуру да ли има потребе да превише компликујемо ствари.

То и није нека мистерија. Пут (way) се састоји из тачака, а тачке нису у фајлу који се учитава у ЈОСМ. У самој дефиницији објекта се налазе само референце на тачке.

osmosis може да филтрира фајл serbia.osm и да извуче само објекте са тагом population и да то сними као осм фајл, који се онда учитава у ЈОСМ и даље је прича јасна. Дакле још једна команда.

Већ постоји плагин за то: tageditor . Фактички гледано наш плагин је почео као његов форк. Додуше, сада баш и немају заједничких тачака.

Бот ради пар минута за целу Србију. При томе направи све оне фајлове које сте видели и целокупну базу са свим изменама (за генерисање osmand мапе). Нисам се бавио оптимизацијом рада а простора за то има више него много.

Ако бот стартујемо једном дневно (постоје дневне копије ОСМ базе за Србију) добићемо фајлове са “спорним” објектима. Моја идеја је да се направи php скрипта која би контролисала преузимање фајлова на начин да када неко затражи фајл она му да само један линк. За следеће преузимање нуди следећи линк (итеративно повећа број за један) и тако даље. После бота би се ресетовао бројач фајла са изменама и све из почетка. Скрипта би била проста а постигли би да се не дуплира рад над истим подацима. Не верујем да ће бити толика навалица за алтернативним обрадама које би заобишле овај систем и правиле озбиљније проблеме.

Стоји. Ја сам одрадио двеста измена прилично брзо и са оваким плагином какав је сад.

Мислим да неће изгубити сврху. Много је згодан за брзо сређивање података, чак и у редовном уносу.

Аха. Провалио сам. Ако урадим Update Selection тада JOSM повуче поптуно податке па се објекти могу видети.

То је непрактично. Ово би радило на лицу места, брзо и једноставно.

Пробао сам га али овај твој плагин ми је много згоднији.

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

Постоји ли могућност да се објекти групишу по територијалном принципу? То би омогућило да свако може да прати одређену територију и сређује је. Ипак је најлакше то радити за простор који познајемо.

O ovome sam i ja baš razmišljao kad mpele juče spomenu velike datoteke. Koliko vidim, osmosis može da izvuče podatke unutar nekog proizvoljnog, zatvorenog poligona. Kako bi bilo da razbijemo i obrađujemo na npr. nivou okruga?

Postoje recimo dva načina:

  1. Koristeći postojeće pribilžne POLY poligone za svaki okrug sa [1] (rizik je što prelaze granicu pa možemo nenamerno obraditi objekte u susednim državama)

  2. Da ubacimo malo tačnije granice okruga kao relacije [2] (nemamo boljih slobodnih izvora za katastarski tačne granice), pa da onda napravimo nove POLY poligone koristeći getbound.pl [3]

[1] http://downloads.cloudmade.com/europe/southern_europe/serbia/
[2] http://lists.openstreetmap.org/pipermail/talk-rs/2011-July/000158.html
[3] http://wiki.openstreetmap.org/wiki/Polygon#Converting_to.2Ffrom_POLY_format

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

Наравно, само је питање шта желимо и како то желимо.

Ја сам од Дулића “позајмио” трачне димензије округа. То не бих смео да јавно користим, али нисам сигуран да ли би смело да се се користе за наше интерно дељење на округе.
Иначе, Томас ми је скренуо пажњу да тренутне границе Србије на основу којих је дефинисан осм фајл нису баш најтачније, тако да податке које нуди плагин за обраду су можда и из суседних држава.

Wikimedia Germany offers accounts for OSM “developers” (with “developer” not taken too serious). Since they run a minutely updated OSM database anyway, you would not need to care about this part.
https://wiki.toolserver.org/view/Main_Page

How you can get an account:
https://wiki.toolserver.org/view/Account_approval_process

You could also get in touch with Wikimedia Serbia…maybe they can help also. Wikipedia is a richer organisation than OSM
https://rs.wikimedia.org/

Ако нешто значи ја имам изнајмлјени интернет линк са фиксном ИП адресом па би могло и то да се искористи. Морао бих само да скрпим неку машину за сервер.

Sećam se diskusije sa liste, ali ne bih se ja igrao uopšte sa tim podacima za koje ne postoji dozvola za korišćenje. Ubaciću približne sa slike, uvek se mogu iterativno poboljšavati…

Znam i za to, ali bolje nemamo, a mislim da će bilo kakva šteta zbog toga biti minimalna.