Nie no bez przesady damy rad? … co my nie damy?
Ale ja nie o tym, ca?y czas gadam, ?e wrzuc? opis na stron? dyskusji WRAKA do doszlifowania i gadam, ale jako? nie mam weny chyba, ?eby to wyg??adzi? przed pierwsz? publikacj?. Wi?c wys?a?em jak mam, trzeba to dopracowa? ?eby by?o wiadomo o co nam chodzi i jak chcemy to zrobi?, sprawdzi? czy nie nak?ama?em gdzie? z abardzo i pó?niej mo?e umie?ci? w bardziej widocznym miejscu.
UPDATE!
OK kiedy? trzeba to w ko?cu powiedzie? … cho?by w skrócie. Jak dzia?a WRAK?
Po pierwsze WRAK generuje pliki które pó?niej umieszczam tutaj: http://wariat.org.pl/smietnik/OpenStreetMap/ powstaj? podczas uruchomienia za pomoc? skryptu runwrak.sh jaki pojawi? si? w tym w?tku i jest cz??ci? wraka, nie b?d? wi?c szczegó?owo opisywa? jak dzia?aj? opcje: –showignored oraz –showvalid
Z wrodzonej lubo?ci do zachowania jakiejkolwiek tajemnicy nie napisz? te? jak dzia?a opcja –help, nie powiem i ju?!
Wspomn? tylko, ?e wrak standardowo otwiera plik poland.osm, ale nie musi mo?na mu powiedzie? –OSMfile=plik.osm i on pos?ucha
To tytu?em wst?pu, w codziennym je?d?eniu przydaj? si? co najmniej 3 terminale (na screenie lub je?li kto? woli jakkolwiek inaczej). U mnie w pierwszym terminalu otwarty jest jeden z plików wygenerowanych za pomoc? skryptu runwrak.sh (by?o o nim wy?ej). W drugim pracuje sam wrak jako taki, w trzecim podr?cznym odpytuj? baz? GUStawa i inne takie. Samego wraka napuszcza si? na ulice w co najmniej dwóch przebiegach.
Najpierw odpalamy go tak:
$ ./OSM-wrak --OSMlogin=foo@example.com --OSMpassword=dupa.8 --filter="Ko?ciuszki"
http://www.openstreetmap.org/browse/way/22966331 D DEPTAK KOSCIUSZKI -> Deptak Tadeusza Ko?ciuszki
Login/Has?o wiadomo, nie s? tu do niczego potrzebne ale warto je wpisa? jak si? za chwil? oka?e. Kluczowy jest filtr. To RegExp dopi?ty do ko?ca poprawionej nazwy (w powy?szym przypadku nazwa porównywana jest ze wzorcem /Ko?ciuszki$/ ). Tak odpalony WRAK zaproponuje zmiany nazw ulic tylko takich których PRAWID?OWA nazwa ko?czy si? stringiem “Ko?ciuszki”. Dodatkowa informacja to “D” przed nazw? nieprawid?ow?, oznacza, ?e zmiana nazwy pochodzi ze s?ownika, a nie ze zgadywania WRAKa. Link mo?na otworzy? i sprawdzi? co tam w okolicy, czy na przyk?ad kto? nie rewertuje uparcie zmian WRAKa, je?li tak najlepiej sobie odpu?ci?.
Ale skoro to regexp to nie musi by? tak, ?e jest tam tylko jedna nazwa, mo?na te?:
$ ./OSM-wrak --OSMlogin=foo@example.com --OSMpassword=dupa.8 --filter="(Ko?ciuszki|Gryfi?ska|Politechniki)"
http://www.openstreetmap.org/browse/way/22966331 D DEPTAK KOSCIUSZKI -> Deptak Tadeusza Ko?ciuszki
http://www.openstreetmap.org/browse/way/23428212 Al. Politechniki -> Aleja Politechniki
http://www.openstreetmap.org/browse/way/23428214 Al. Politechniki -> Aleja Politechniki
http://www.openstreetmap.org/browse/way/23522475 D Gryfinska -> Gryfi?ska
http://www.openstreetmap.org/browse/way/23522576 D gryfinska -> Gryfi?ska
tu przy okazji wida?, ?e z Alej? Politechniki WRAK poradzi? sobie tym razem bez udzia?u s?ownika. Tak czy inaczej, te zaproponowane zmiany nale?y przejrze?, klikn?? w niektóre odno?niki upewni? si?, ?e zaproponowana zmiana nam odpowiada etc. Gdyby wyników mia?o by? du?o warto pipowa? je do less’a ale co ja Wam b?d? t?umaczy?.
Je?li zmiany s? prawid?owe wystarczy na ko?cu dopisa? --upload (to dlatego warto mie? na sta?e wcze?niej wpisany login i has?o) czyli:
$ ./OSM-wrak --OSMlogin=foo@example.com --OSMpassword=dupa.8 --filter="(Ko?ciuszki|Gryfi?ska|Politechniki)" --upload
http://www.openstreetmap.org/browse/way/22966331 D DEPTAK KOSCIUSZKI -> Deptak Tadeusza Ko?ciuszki * Upload
http://www.openstreetmap.org/browse/way/23428212 Al. Politechniki -> Aleja Politechniki * Upload
http://www.openstreetmap.org/browse/way/23428214 Al. Politechniki -> Aleja Politechniki * Upload
http://www.openstreetmap.org/browse/way/23522475 D Gryfinska -> Gryfi?ska
http://www.openstreetmap.org/browse/way/23522576 D gryfinska -> Gryfi?ska * Upload
Czyli posz?o. Warto zauwa?y?, ?e przy pierwszej Gryfi?skiej nie pojawi?o si? “* Upload” co oznacza dok?adnie tyle, ?e WRAK nie uploadowa? nowej wersji. Nie dlatego, ?e mu si? nei chcia?o a dlatego, ?e wykry? niezgodno??.
Zmiana jest wytypowana na podstawie pliku poland.osm je?li w rzeczywisto?ci na serwerach OSM nazwa ulicy by?a inna ni? w pliku poland.osm WRAK nie uploaduje nowej nazwy, bez wzgl?du na to, czy obecna nazwa jest prawid?owa czy nie. Je?li zmieni?a si? ze z?ej na równie z?? op prostu tzreba poczeka? na nowy plik poland.osm (do jutra) i wtedy przeleci.
ostatnia opcja, w?a?ciwie nie potrzebna to --showdictionary, jest to zasz?o?? historyczna z czasów kiedy WRAK powstawa? i zosta?a bo nikomu nie wadzi. Wywala ona po prostu s?ownik podmian, dzi?ki niej mo?na si? dowiedzie? np jakie stringi zostan? rozpoznane jako godne zmiany na string “Tadeusza Ko?ciuszki”:
$ ./OSM-wrak --showdictionary | grep -i ko?ciuszki | sort
ko?ciuszki : Tadeusza Ko?ciuszki
kosciuszki : Tadeusza Ko?ciuszki
ko?ciuszki : Tadeusza Ko?ciuszki
tadeusza ko?ciuszki : Tadeusza Ko?ciuszki
tadeusza kosciuszki : Tadeusza Ko?ciuszki
WRAK zapisuje plik wrak.log który jest archiwum wprowadzonych zmian, ten log ma tylko jedn? wa?n? funkcj? pozwala dowiedzie? si?, ?e przez troch? ponad po?ow? ?ycia wraka (wcze?niej nie by?o loga) wrak wykona?:
$ wc -l wrak.log
2184 wrak.log
zmian w bazie.
Tyle o samym wraku, na koniec moje sposoby na poszukiwanie celów (jak wspomnia?em na pierwszym terminalu) kolejno?? przypadkowa:
-
grep " D " wrak-TEST.txt | less
da zmiany jakie wrak wprowadzi?by zgodnie ze s?ownikiem, wystarczy przejrze?, je?li to co proponuje jest ok odpali? go z gigantycznym regexpem w filtrzem przejrze? raz jeszcze i uploadowa?
-
grep ? wrak-TEST.txt | less
to generalnie kandydaci do s?ownika w 100% przypadków, cho? nie zawsze si? udaje … rzeczy na które nei mam pomys?u po prostu zostawiam, jest tyle nazw do zmiany, ?e b?dzie czas zastanawia? si? nad przypadkami specjalnymi
-
less wrak-TEST.txt
to generalnei zmiany jakie chcia?by wprowadzi?, cz??? jest ok ot tak po prostu, cz??? nie jest prawid?owa i wtedy zwykle wymaga aktualizacji s?ownika. W tym momencie bardzo cz?sto ju? pojawia si? potzreba sprawdzenia bazy GUStawa na okoliczno?? konkretnych nazw ulic.
-
$ less wrak-VALID-UNIQUE.bez.wrak-dict.txt
W?a?ciwie jak wy?ej
-
ulice bez GUStu by TomDalek http://storage.neostrada.pl/OSM/ulice.bez.GUStu.html
Tu zmian jest stosunkowo najmniej, warto po prostu aktualizowa? s?ownik nazwami zawieraj?cymi polskie znaki i nazwiskami ludzi.
NAJWA?NIEJSZE TO ZAWSZE PRZEJRZE? PROPONOWANE PRZEZ WRAKa ZMIANY PRZED --upload NAWET JE?LI TO NUDNE OGL?DA? JE PO RAZ 12 BO 11 RAZY POPRAWIA?O SI? S?OWNIK. IM MNIEJ NAZW NA RAZ (w regexpie) TYM SZYBCIEJ IDZIE CZASAMI!
Poruszamy si? w unikodzie … mo?e si? okaza?, ?e nie wsz?dzie skrypt b?dzie chcia? pracowa?, nie wiem, nie mam do?wiadczenia ze skryptami które pracuj? tu i tam … tu pracuje dobrze
W obecnej wersji WRAK nie wysy?a Waszych adresów e-mail i hase? do ?adnych spamerów … negocjacje s? wci?? w toku
No to … Komu WRAKa?
P.S. Uprzedzaj?c ogólne zgorszenie, mnie te? si? kod WRAKa nie podoba, ale dzia?a … kiedy? si? przepisze
UPDATE2
Jest te? nowa idea je?li chodzi o ?wi?tych, genera?ów, prezydentów, doktorów, whatever. Krótko mówi?c o “funkcj?”. Mo?na potraktowa? je jako prefiks czyli dok?adnie tak jak wrak w tej chwili obs?uguje s?owa typu Aleja, Skwer, Plac … i wiele innych. To znaczy je?li ono jest to zostaje co najwy?ej rozwini?te ze skrótu do pe?nej wersji, ale nie mamy nad tym kontroli via s?ownik.
W ten sposób my definiujemy imi? do nazwiska, a tytu? pojawi si? tylko wtedy je?li b?dzie si? on ju? znajdowa? w bazie. By? mo?e to lepszy pomys? ni? to co robimy w tej chwili? Zmiana we WRAKu na oko kosmetyczna, s?ownik to jeszcze mniejszy problem, tracimy automagiczn? kontrol? ale … mo?e w?a?nie tak powinni?my? Co my?licie?