Cs:Jmenný prostor
Jmenný prostor (namespace) je předpona, přípona nebo vpona klíče. Může být ve zvláštních případech použita, aby seskupovala blízce příbuzné klíče, nebo jako doplňkový kvalifikátor klíčů. Jmenné prostory v názvech klíčů se oddělují dvojtečkou (':'). Možné výhody zavedení klíčů se jmennými prostory je potřeba zvážit oproti jejich nevýhodám.
Seskupení blízce příbuzných klíčů do jmenných prostorů napomáhá oddělit tuto skupinu klíčů, pomáhá vyhnout se střetům v pojmenování klíčů a poskytuje danému klíči kontext vyšší úrovně.
Jmenné prostory jako kvalifikátory se používají, když atribut (jako třeba kód jazyka) je aplikovatelný na širokou množinu spolu nesouvisejících hlavních klíčů.
Technicky je s oběma koncepty zacházeno do značné míry stejně - název klíče obsahující oddělovač dvojtečku je stále jen řetězcem znaků jako jakýkoliv jiný klíč.
Uložení hodnoty způsobem podobným syntaxi jmenného prostoru tedy klíč:přípona=hodnota, kde přípona se rovná nějaké proměnné hodnotě a neslouží k účelu seskupování, neznamená, že je zde využit koncept jmenného prostoru. Jedná se jen o příponu oddělenou dvojtečkou.
Příklady použití jmenných prostorů
- Značky addr:*=* obsahují část adresy.
- Značky contact:*=*.
- Datový jmenný prostor je přípona, která byla navržena (ve Srovnání konceptů životního cyklu) pro určení časové platnosti značek, např. "amenity:1835-1965 = school", "name:1933-1945 = Adolf-Hitler-Straße". Přípona je zcela na konci klíče (např. až za příponou kódu jazyka). Varování: tato syntaxe je relativně běžná, ale jedná se jen o část návrhu a technicky to není skutečný jmenný prostor.
- generator:output=* poskytující informaci o výstupní energii elektrárny/teplárny.
- is_in=* starý jmenný prostor, který je stále v databázi.
- Přípona :lanes, kterou se popisují jednotlivé jízdní pruhy.
- Předpona životního cyklu navržený (v Srovnání konceptů životního cyklu) pro užití předpon jako je "proposed:", "construction:", "disused:", "abandoned:" nebo "demolished:" pro označení prvků ve zvláštním stavu. Např. "construction:aerialway=gondola". U silnic a železnic je de facto standardem jiný způsob značení , např. "highway=construction + construction=motorway". Viz Srovnání konceptů životního cyklu.
- Vícejazyčné názvy — přípony kódů se používají u mnoha klíčů jako třeba "name:ro=...", což je rumunský název prvku. Viz pro příklady Internacionalizace mapy a Vícejazyčné názvy. Přípona se dává ihned za hlavní klíč.
- parking:lane=* a parking:condition=* poskytující informace o parkovacích pruzích na highway=*.
- source=* pro popis zdroje informací o všech značkách nebo jen specifické značce.
- traffic:hourly=* popisuje hustotu provozu a lze použít jako jmenný prostor.
- Dopředu a dozadu, doleva a doprava přípony indikující, že značka platí pouze pro nějaký směr nebo stranu cesty.
Viz také Namespace_tag_overview
Nomenklatura
- jmenný prostor popisuje celý koncept (to jest tato stránka). Když se používá jako předpona jmenného prostoru, pak slovo předpona je často vynecháváno.
- předpona je použití jmenného prostoru na začátku klíče (používá se u značek, předpon životního cyklu, adres).
- přípona je použití kvalifikátoru za klíčem (používá se u značek, podmíněných omezení, názvů, jízdních pruhů).
- podklíč se používá ve dvou kontextech
- jako dodatečný klíč, který blíže popisuje nějaký prvek (používáno v waste=*, motorboat=*)
- pro popis přípony (používáno v jízdních pruzích, phone=*, addr:*=*, Class:bicycle a Template:Tag/doc).
- vpona se používá velmi málo (značky, diskuse right/left)
Software této wiki také používá koncept jmenných prostorů, ale to nesouvisí se jmennými prostory OSM.
Zpracování jmenných prostorů
Na základní úrovni systému bude klíč se jmenným prostorem uložen a zpracováván zcela stejně jako jakýkoliv volný textový řetězec (řetězec, který prostě náhodou obsahuje dvojtečku).
Mnoho zpracovatelů dat OSM bude s klíčem takto zacházet. Aplikace zpracovávající data často hledají klíče, které je zajímají a nerozpoznané klíče jsou ignorovány. Což samozřejmě může být požadovaný efekt použití jmenného prostoru. Jmenné prostory mohou být použity k vydělení jistých typů specializovaných informací, "ukrývajíc" tato data za "hlavní" data mapy, aby bylo jasnější, že jsou zajímavá pouze pro specializované zpracovatele dat.
Přílišné použití
Použití jmenných prostorů je skvělým způsobem jak strukturovat datové schéma, ale někdy může způsobovat problémy některým zpracovatelům dat, kteří to nazývají přílišným použitím jmenných prostorů - over-namespacing.
- jmenný prostor vztahující se k projektu; může vás to svádět k rozšíření klíče jmenným prostorem, jen abyste se vyhnuli konfliktům s jinými daty, namísto abyste se snažili integrovat existující schémata. Je to špatný přístup. OSM je databáze o mnoha schématech, což znamená, že každá značka se vztahuje k více než jednomu schématu, více než jednomu použití dat a tak je důležité integrovat je s jinými již používanými schématy, aby se maximalizovala správa dat.
- přílišné používání jmenných prostorů vede k inkonzistencím v databázi: pokud máme projectfoobar:name=xxx a name=xxx, tak v mnoha případech jeden bude aktualizován a druhý nikoliv. Čím jednodušší a obecnější klíč je, tím více bude používán a tím bude aktuálnější.
- přílišné používání jmenných prostorů vede k rozšiřování schématu dat: například někdo, kdo se zajímá o kanály VHF bude muset vyhledávat klíč harbour:VHF_channel, plus seamark:habour:VHF_channel, plus VHF_channel, plus lock:VHF_channel, plus vhf, aby shromáždil všechna data. Použití prostého klíče vhf by mělo úplně stačit a určení zda se tato data vztahují k přístavu nebo zdymadlu lze provést prozkoumáním označeného objektu OSM.