Sv:Namespace
Ett namnutrymme är ett prefix, suffix eller infix till en nyckel. Den kan användas i speciella fall för att gruppera närbesläktade nycklar, eller som en extra kvalificering för nycklar. Kolontecknet (':') används som avgränsare för namnutrymmen i nyckelnamn. De möjliga fördelarna med att introducera nycklar med namnavstånd måste vägas mot deras nackdelar.
Gruppering av närbesläktade nycklar i namnutrymmen hjälper till att separera denna grupp av nycklar, undvika namnkonflikter och ger en högre nivåkontext till en viss nyckel.
Namnutrymmen som kvalificerare används när ett attribut (som språkkod) är tillämpligt för ett stort antal icke-relaterade huvudnycklar.
Tekniskt sett behandlas båda begreppen i stor utsträckning på samma sätt – nyckelnamn som innehåller en kolonavgränsare är teckensträngar precis som alla andra taggar.
Att lagra ett värde på ett sätt som liknar en syntax för ett namnområde, dvs. nyckel:suffix=värde där suffix är lika med ett variabelvärde, som inte tjänar ett grupperingssyfte, betyder inte det namnutrymmeskonceptet används här. Det är bara ett kolonavgränsat suffix.
Exempel på namnutrymme använder
- addr:*=* taggar för att innehålla en del av en adress
- Suffixet :villkorliga används för nycklar med värden villkorliga begränsningar
- butikssuffixet används för att avgöra vad som erbjuds
- contact:*=* taggar
- Datum namespace — Ett date namespace suffix har föreslagits (i Jämförelse av livscykelbegrepp) för att specificera taggars tidsmässiga giltighet, t.ex. "amenity:1835-1965 = skola", "namn:1933-1945 = Adolf-Hitler-Straße". Suffixet kommer som sista delen av nyckeln (t.ex. efter språkkodssuffix). Varning: denna syntax är relativt vanlig, men den är bara en del av ett förslag, medan det tekniskt sett inte är en riktig namnrymd.
- generator:output=* för att ge information om uteffekten från en elkraftverk.
- is_in=* gammalt namnområde som fortfarande finns i databasen
- :lanes suffix för att lägga till körfältsspecifik information.
- Livscykelprefix — Det har föreslagits (i Jämförelse av livscykelbegrepp) att använda ett prefix som "föreslagen:", "konstruktion:", "disused:", " abandoned:" eller "demolished:" för att tagga objekt i ett speciellt tillstånd, t.ex. "construction:aerialway=gondol". För motorvägar och järnvägar är en annan märkning de facto standard, t.ex. "highway=construction + construction=motorway". Se Jämförelse av livscykelbegrepp.
- Flerspråkiga namn — kodsuffix används för många nycklar som "name:ro=..." som indikerar det rumänska namnet på en funktion. Se Kartinternationalisering och Flerspråkiga namn för vissa användningsområden. Suffixet kommer omedelbart efter huvudnyckeln.
- parking:left=*, parking:right=* eller parking:both=* för att ge information om parkeringsbanor för highway=*
- source=* för att indikera källan till alla taggar eller endast specifik tagg
- traffic:hourly=* indikerar trafiktäthet och kan användas som namnområde.
- Framåt & bakåt, vänster & höger suffix för att indikera att taggen bara gäller i någon riktning eller sida för sträckan.
- Fler exempel som en tabell:
Namnutrymme | Beskrivning | Listöversikt över distribution |
---|---|---|
capacity: | Describes the capacity a facility is suitable for. | taginfo capacity:* |
Nomenklatur
- namnutrymme beskriver hela konceptet (d.v.s. den här sidan). När det används som ett prefixnamnutrymme utelämnas ofta ordet prefix.
- prefix är användningen av ett namnområde i framsidan av en nyckel (används i Taggar, livscykelprefix, addr).
- suffix är användningen av en kvalificerare efter en nyckel (används i Taggar, villkorliga begränsningar, Key:name, Lanes).
- undernyckel används i två sammanhang
- som en extra nyckel som ytterligare beskriver en Funktion (används i Key:waste, Key:motorbåt)
- för att beskriva ett suffix (används i Lanes, Key:phone, Key:addr, Klass:cykel och Mall:Tag/doc).
- infix används mycket sällan (Taggar, Talk right/left)
Denna wikis programvara använder också konceptet namespaces men detta är inte relaterat till konceptet "namespaces" i nycklar och taggar som används i OpenStreetMap-databasen.
Konsumerar namnutrymmen
På en grundläggande nivå i systemet kommer en nyckel med ett namnområde bara att lagras och behandlas som vilken annan friformstextsträng som helst (en sträng som bara råkar ha ett kolontecken).
Många konsumenter av OSM-data kommer att behandla nycklar så här. Konsumerande applikationer matchar ofta nycklar de är intresserade av, och alla okända nycklar ignoreras. Detta kan verkligen vara den önskade effekten av ett namnutrymme. Namnrymder kan användas för att separera vissa typer av specialistinformation, genom att placera denna data bort från "kärn" kartdata, för att göra det tydligare att endast fler specialistkonsumenter kommer att vara intresserade av den.
Över-namnutrymmd
Namnrymder är ett utmärkt sätt att strukturera dataschemat, men det kan också orsaka problem för vissa datakonsumenter, de kallar det över-namnutrymme.
- projektrelaterat namnområde: det kan ibland vara frestande att bara namnrymden en nyckel för att undvika att kollidera med andra data istället för att försöka integrera befintliga system, detta är en dålig vana. OSM är en databas med flera scheman, vilket innebär att varje tagg relaterar till mer än ett schema, mer än en användning av data, och därför är det viktigt att integrera med andra scheman som redan används för att maximera kureringen av data
- över-namnutrymme leder till inkonsekvens i databasen: om vi har projectfoobar:name=xxx och name=xxx kommer i många fall det ena att uppdateras och inte det andra. Ju enklare och mer generisk nyckeln är, desto mer använd kommer den att vara, desto mer kurerad blir den.
- över-namnutrymme leder till ett spritt dataschema: någon som är intresserad av VHF-kanaldata måste till exempel leta efter hamn:VHF_kanal-nyckeln plus sjömärke:hamn:VHF_kanal , plus VHF_channel, plus lock:VHF_channel, plus vhf för att samla in data... Att endast använda vhf-tangenten bör vara tillräckligt för att veta att dessa data relaterar till hamnen eller slussen eller vad annat är OSM-objektet vi taggar.
För de vanligaste Kartfunktioner (d.v.s. de vanligaste taggarna som nya mappers kommer att använda oftast) är enkla nycklar (utan några namnutrymmen) vanliga.
När den inte används
I vissa fall är det fortfarande möjligt att använda generisk notation utan sammandrabbningar. Till exempel, modell=* kontra siren:modell=*. Båda knapparna indikerar en modell, men model=* är kortare och kan användas för alla relevanta funktioner, inte bara sirener.
Se även
- Homonyma nycklar – nycklar som tjänar ett annat syfte eller har en annan datatyp beroende på elementets primära tagg. I andra fall kan en homonym nyckel ha olika semantik när den är taggad på en nod jämfört med ett sätt.
- Sophox-fråga för de mest djupt kapslade undernycklarna
- Wiki-namnutrymmden