Jak jednoznacznie zidentyfikować punkt adresowy w Polsce
Sam adres tekstowy nie identyfikuje punktu jednoznacznie. Przegląd identyfikatorów — adres, kody TERYT, identyfikator PRG (ID_IIP) — i ich ograniczeń, oraz czego brakuje do trwałego, krótkiego ID punktu adresowego.
Problem: adres to nie identyfikator
Ten sam punkt adresowy bywa zapisywany na dziesiątki sposobów: „ul. Ogrodowa 7", „Ogrodowa 7", „os. Ogrodowa 7 m. 3", z literówkami, skrótami, różną wielkością liter. Adres tekstowy jest opisem lokalizacji, a nie jej tożsamością. Dwie instytucje wymieniające dane o tym samym budynku nie mają pewności, że mówią o tym samym punkcie — dopóki nie uzgodnią wspólnego, jednoznacznego identyfikatora.
Kody TERYT — za grube
TERYT (prowadzony przez GUS) świetnie identyfikuje jednostki terytorialne: województwo, powiat, gminę (kod TERC), miejscowość (SIMC) i ulicę (ULIC). Ale TERYT nie schodzi do pojedynczego budynku — najdrobniejszy poziom to ulica. Kombinacja SIMC + ULIC + numer budynku przybliża nas do punktu, ale numer bywa złożony („53/57", „40-42"), z literą („7a", „1B") i niespójnie zapisywany — to wciąż tekst do uzgodnienia, nie stabilny klucz.
Identyfikator PRG (ID_IIP) i jego wady
Każdy punkt adresowy w PRG ma identyfikator ID_IIP (zgodny z dyrektywą INSPIRE). W praktyce wygląda on tak:
PL.PZGIK.200_da34d030-0085-4f55-ac53-c8aa642ca7f4_2017-03-27T12:55:26+02:00
Jest jednoznaczny i pełni rolę kotwicy tożsamości, ale jako identyfikator „do ręki" ma istotne wady:
- Bardzo długi — 75 znaków. Nie da się go podyktować, zapamiętać ani wygodnie wpisać w formularz.
- Niestabilny jako całość — końcówka to znacznik czasu wersji obiektu (
beginLifespanVersion). Przy aktualizacji danych punktu zmienia się on, więc cały ciąg się zmienia. Stabilny jest tylko środkowy GUID (da34d030-…), ale to wiedza, której zewnętrzny użytkownik nie ma. - Nieczytelny — z identyfikatora nie odczytasz, gdzie leży punkt (jakie województwo, powiat, gmina).
- Bez sumy kontrolnej — literówka przy przepisywaniu nie jest wykrywana.
Czego potrzeba do dobrego identyfikatora punktu
Identyfikator, którym instytucje mogłyby się swobodnie wymieniać, powinien być: stały (niezmienny przez całe życie punktu i nigdy nie reużywany), krótki i czytelny (do podyktowania), odporny na literówki (suma kontrolna), a najlepiej częściowo dekodowalny (żeby z grubsza wskazywał lokalizację). Tak zaprojektowaliśmy adresy.app ID — krótki, stały identyfikator punktu zbudowany na stabilnym GUID-zie PRG.
Zakoduj dowolny adres na identyfikator (i odwrotnie) w narzędziu na id.adresy.app.