Przepraszam, ?e tak post pod postem ale nie chcia?em, ?eby umkn??o … je?li kogo? to strasznie wku?y?o to obiecuje przyj?? postaw? do zjebki, posypa? g?ow? popio?em i za kar? u?ywa? windows przez 20 minut non stop. 
WRAK zdaje si? dzia?a?, za pomoc? do?? przydkiego hacka odfiltrowa?em mu cz??? zmian które proponowa? i pozwoli?em uploadowa? je na serwer co poskutkowa?o zmian? ~250 nazw i trwa?o … no troch? to trwa?o, ale zosta?o zako?czone sukcesem. Opisz? wi?c jak to dzia?a, bo warto aby?my teraz dopracowali jednoznaczne zasady co do nazewnictwa ulic.
Skrypt pracuje tak jak poprzednie cudactwa z plikiem osm, de facto dowolnym w praktyce u?ywam pliku poland.osm generowanego przez geofabric ( http://download.geofabrik.de/osm/europe/ ). Przegl?da drog? po drodze pobieraj?c jej ID i NAZW?. ID nas nei interesuje, jest jakie jest i u?yte jest pó?niej tylko raz w celu za?adowania poprawionej nazwy ulicy, a z nazw? jest tak:
-
sprawdza czy przypadkiem nazwa nie wyst?puje na li?cie nazw do zignorowania, je?li tak pobiera kolejn?. Nazwy ignorowane to takie o których wiemy, ?e wyst?puj? sporadycznie, oznaczaj? co? konkretnego i s? napisane prawid?owo. Kilka przyk?adów: “SK,PL”, “D - POL”, (swoj? drog? granice te? mo?na by jako? znormalizowa?), “By?a Wytwórnia Lotnicza “Motolux””, “Wydzia? Architektury PW”, etc.
-
wywala bia?e znaki po obu stronach nazwy, czyli wszystkie spacje i tabulatory otaczaj?ce nazw?
-
dodaje spacje po kropkach, przecinkach, ?rednikach i dwukropkach. De facto pewnie wyst?puj? tylko kropki, ale regexp w tej chwili wy?apuje wszystkei powy?sze przypadki.
-
je?li nazwa zaczyna si? od "ul ", lub "ul. " to ten przedrostek jako domy?lny (wszystko jest ulic?) jest usuwany, tak wi?c string “ul. Hackerów” zostranie zmieniony na “Hackerów”
-
Wywala z ca?ej nazwy wszelkie powtórzone bia?e znaki, czyli de facto podwójne spacje, co nie jest cz?ste ale si? pojawia.
-
nast?pnie odcina i zapami?tuje przedrostek oznaczaj?cy, ?e obiekt nie koniecznie jest “ulic?”. Czyli na bok do pomocniczej zmiennej trafia wszytsko co jest z przodu i zawiera: (al|aleja|pl|plac|skwer|bulwar|rondo|park|os|osiedle|im|imienia). Nast?pnie w tej pomocniczej zmiennej rozwijane s? skróty. Czyli oryginalny “pl. im. Tadeusza Ko?ciuszki” da w efekcie dwie zmienne prefix: "plac imienia " i nazw? “Tadeusza Ko?ciuszki”.
Rozwijam skróty bo mamy przecie? do czynienia z map? elektroniczn?, je?li urz?dzenie które b?dzie z niej korzysta?o z jakich? powodów mia?oby pokaza? skróty to nadal mo?na to zrobi?, ale na li?cie nazw sterta skrótów IMO nie ma znacz?cych powodów do kontunuowania istnienia.
-
teraz Nazwa (ju? bez prefixu!) porównywana jest ze s?ownikiem, który wygl?da tak:
Jana Paw?a II
Tadeusza Ko?ciuszki, ko?ciuszki, ko?ciuszki
Marii Sk?odowskiej-Curie, sk?odowskiej-curie, sk?odowskiej
?wirki i Wigury, ?Wirki I Wigury
pierwsza (i czasem jedyna) pozycja to prawid?owa nazwa jak? chieliby?my widzie? w bazie, kolejne to nazwy “popsute”, przy czym nie tzreba duplikowa? nazw z polskimi znakami i bez nich, s?ownik jest rozszezrany o wersje “polskawe” w chwili wczytywania. Wielko?? znaków jest w tym porównaniu ignorowana. Tak wi?c na string “Tadeusza Ko?ciuszki” zostan? zamienione “Tadeusza Kosciuszki” (oryginalny bez polskich znaków), “TADEUSZA KO?CIUSZKI” (oryginalny kapitalikami), “ko?ciuszki”, “kosciuszki” i wiele innych wariacji na ten temat. Je?li nazwa pasuje w jaki? sposób do którego? z tych stringów zostanie ona zamieniona piwerszym z wiersza. Omijam teraz kolejne kroki a? do momentu przywrócenia prefiksu w punkcie 12.
-
Dla nazw z poza s?ownika idziemy dalej … Wielko?? liter w nazwi jest zamieniana na “Title Case”, czyli ka?de s?owo z Wielkiej Litery i dalej ma?ymi.
-
S?owa sk?adaj?ce si? ze znaków “ivx” w dowolnej kombinacji traktowane s? jako liczbu rzymskie i zamieniane na KAPITALIKI, co powoduje k?opot przy nazwach jak “?wirki i Wigury”, ale wystarczy doda? pilotów do s?ownika i problem przestaje istnie? (jeste?my na etapie gdzie istniej?ce w s?owniku nazwy nie bywaj?).
-
Poprawiane na MAJUSKU?? s? równie? wykryte skróty jak: (PCK|PKP|ONZ|GUS|RP|ZOO), gdyby nie ten etap mieliby?my: Pck, Pkp, Onz, etc.
-
Z kolei cuda jak: (Gen.|Dr |Ks.) zmieniane s? na pisane ma?ymi literami
-
doklejany jest wpowrotem prefix odci?ty w punkcie 6tym
-
Tak stworzona nowa nazwa jest porównywana raz jeszcze z t? która oryginalnie znajdowa?a si? w bazie, je?li s? identyczne, znaczy narobili?my si? bez sensu, je?li inne jest kwalifikowana do zmiany/zmieniana.
-
?eby nie by?o, ?e jest ma?o szcz??liwie 13 kroków dodam, ze teraz lecimy na pocz?tek i jedziemy z kolejn? nazw? 
Czego nam trzeba to s?ownika. Obecny wygl?da tak:
# Ró?ne takie
Ogródki dzia?kowe
# Rzeki (generalnie, rzeki z polskimi literkami w nazwie)
Wis?a
# Ulice
Bohaterów Westerplatte
Bojowników o Wolno?? i Demokracj?
G?ówna
Koników Polnych
Pozna?ska
Przemys?owa
Spó?dzielczo?ci
?wi?toja?ska
Zbo?owa
Zgrupowania AK "Rados?aw"
# Ulice z nazwiskami
Ludwika van Beethovena
?w. Cyryla i Metodego
Jana Paw?a II
Genera?a W?adys?awa Andersa, w?adys?awa andersa, andersa
Adama Asnyka, asnyka
# Stefana I Batorego
Stefana Batorego, Batorego
Józefa Bema, bema
Genera?a Zygmunta Berlinga, zygmunta berlinga, berlinga
Ma?ka z Bogda?ca
Jana Brzechwy, brzechwy
# Fryderyka Franciszka Chopina
Fryderyka Chopina, chopina
# Floriana Stanis?awa Ceynowy
Floriana Ceynowy, ceynowy
# Boles?awa I Chrobrego
Boles?awa Chrobrego, chrobrego
Jana Henryka D?browskiego, d?browskiego
Jana D?ugosza, d?ugosza
Romana Dmowskiego, dmowskiego
Micha?a Drzyma?y, drzyma?y
Aleksandra Fredry, fredry
Konstantego Ildefonsa Ga?czy?skiego, ga?czy?skiego
Wincentego Kad?ubka, kad?ubka
Jana Kasprowicza, kasprowicza
Andrzeja Kmicica, kmicica
Eugeniusza "Nurt" Kaszy?skiego
Jana Kochanowskiego, kochanowskiego
Jana z Kolna
Hugona Ko???taja, ko???taja
Marii Konopnickiej, konopnickiej
Miko?aja Kopernika, kopernika
Janusza Korczaka, korczaka
Tadeusza Ko?ciuszki, ko?ciuszki, ko?ciuszki
Józefa Ignacego Kraszewskiego, kraszewskiego
Boles?awa Le?miana, le?miana
aleja Kazimierza "Dziadka" Lisieckiego
# W?adys?awa I ?okietka
W?adys?awa ?okietka, ?okietka
Ewy i Karola Maleczy?skich
Jana Matejki, matejki
Adama Mickiewicza, mickiewicza
Stanis?awa Moniuszki, moniuszki
Zofii Na?kowskiej, na?kowskiej
Cypriana Kamila Norwida, norwida
Jana Nowaka-Jeziora?skiego, nowaka-jeziora?skiego
Elizy Orzeszkowej, orzeszkowej
Ignacego Jana Paderewskiego, paderewskiego, ignacego paderewskiego
Stanis?awa Augusta Poniatowskiego
Janiny Porazi?skiej, porazi?skiej
Bronis?awa "Lota" Pietraszewicza
# Pi?sudskich jest dwóch ale nie wiem czy pierwszy miewa ulice, wiem, ?e ma 2z? :D
#Bronis?awa Pi?sudskiego
#Marsza?ka Józefa Klemensa Pi?sudskiego
Boles?awa Prusa, prusa
# Przybyszewskich te? jest dwóch i na pewno obaj miewaj? ulice
#Stanis?awa Feliksa Przybyszewskiego
#Komandora Porcznika Zbigniewa Przybyszewskiego
Miko?aja Reja, reja
# W?adys?awa Stanis?awa Reymonta
W?adys?awa Reymonta, reymonta
Józefa i Jana Rostafi?skich
Stefana "Grota" Roweckiego
Hanki Sawickiej, sawickiej
Henryka Sienkiewicza, sienkiewicza
Marii Sk?odowskiej-Curie, sk?odowskiej-curie, sk?odowskiej
Piotra Skargi, skargi
Jana Skrzetuskiego, skrzetuskiego
Juliusza S?owackiego, s?owackiego
Jana III Sobieskiego, sobieskiego
Mieczys?awa "Grzyma?y" Soko?owskiego
Leopolda Staffa, staffa
Stanis?awa Staszica, staszica
Majora Henryka Sucharskiego, sucharskiego
Jana i J?drzeja ?niadeckich
Rabindrannatha Tagore'a
Juliana Tuwima, tuwima
pasa? Stefana "Wiecha" Wiecheckiego
Wincentego Witosa, witosa
# Micha?a Jerzego Wo?odyjowskiego
Micha?a Wo?odyjowskiego, wo?odyjowskiego
Stanis?awa Wyspia?skiego, wyspia?skiego
Kardyna?a Stefana Wyszy?skiego, wyszy?skiego, stefana wyszy?skiego
# Jana Onufrego Zag?oby
Onufrego Zag?oby, zag?oby, onufrego zag?oby
Gabrieli Zapolskiej, zapolskiej
Tadeusza Boya-?ele?skiego, boya-?ele?skiego
Stefana ?eromskiego, ?eromskiego
?wirki i Wigury, ?Wirki I Wigury
Musimy si? jako? dogada? co do prawid?woej pisowni nazw, szczególnie nazw ulic które s? nazwiskami. Moim zdaniem powinni?my u?y? Nazwiska i imion pod jakimi dana posta? wyst?puje w podr?cznikach, nie koniecznie w 100% zgodnie z tabliczk? z nazw? ulicy. Nawet je?li burmistrz W?chocka nada? ulicy nazw? “Ga?czy?skiego”, wiemy, ?e facet u?ywa? imion i eyst?puje w podr?cznikach jako “Konstanty Ildefons Ga?czy?ski”. Raz jeszcze, pracujemy nad map? w postaci elektronicznej tak wi?c ka?dy kto b?dzie z niej korzysta? np. produkuj?c system nawigacji, w ramach potrzeb mo?e wy?wietli? j? jako: “K.I. Ga?czynskeigo” lub nawet “Ga?czy?skiego”. Ale IMO nie powinni?my skraca? nazwy w g?ównej bazie, bo w przeciwn? stron? tak ?atwo jej rozwin?? nie mo?na. W drug? stron? te? nie przeginamy. Co prawda Tadeusz Ko?ciuszko to “Andrzej Tadeusz Bonawentura Ko?ciuszko” ale konia z rz?dem temu kto tak my?li o generale.
Kompromisem wydaje si? by? has?o w wikipedii odnosz?ce si? do danej postaci. W wi?kszo?ci przypadków b?dzie ono zawiera?o w?a?nie popularne imi? imiona podane jako has?o g?owne, a wszystkie imiona wymienia jedynie w tre?ci.
W jaki sposób mo?emy wspólnie (i sprawnie) wypracowa? s?ownik nie mam pomys?u, ale na pocz?tek spróbujmy mo?e tu na forum. Jest nas garstka, ale dzi?ki temu ?atwiej b?dzie si? dogada?, a ci których nie ma … có? … 
I to tyle. Z obecn? wersj? s?ownika nie jestem w ?aden sposób emocjonalnie zwi?zany, je?li wi?c s? zastrzenia to prosze ?mia?o.
Kogo warto doda? mo?na si? ?atwo pokapowa? przegl?daj?c podwieszony w internecie plik z outputem z WRAKa: http://wariat.org.pl/smietnik/OpenStreetMap/wrak-test.txt naj?atwiej sortuj?c go po nazwach czyli np.
$ cat wrak-test.txt | sed -e s/^[^0-9]*[0-9]*\ \\{3\\}// | sort | less
potrzebujemy:
- Prawid?owej pisowni
- popularnych (powtarzaj?cych si?) wariacji pisowni b??dnej
Nie potrzebujemy sporadycznie pojawiaj?cych si? b??dów, te lepiej poprawi? po prostu od razu w bazie via POTLACH i o nich zapomnie?.
Na koniec serdecznie gratuluj? wszystkim którym uda?o si? ten ca?y spam przeczyta?. Obiecuj? stara? si? wi?cej nie tworzy? kiepskiej literatury w takich ilo?ciach. 