ES:Espacio de nombres
Un espacio de nombres es un prefijo, sufijo o infijo a una clave. Puede utilizarse en casos especiales para agrupar claves estrechamente relacionadas o como un calificador adicional para claves. El carácter de dos puntos (':') se utiliza como separador de espacios de nombres en nombres de clave. Los posibles beneficios de la introducción de claves con espacios de nombres se deben sopesar frente a sus desventajas.
El agrupamiento de claves estrechamente relacionadas en espacios de nombres ayuda a separar este grupo de claves, evitando conflictos de nomenclatura, y proporciona un contexto de nivel superior a una clave en particular.
Los espacios de nombres como calificadores se utilizan cuando un atributo (como el código de idioma) es aplicable a una amplia gama de claves principales no relacionadas.
Técnicamente ambos conceptos se tratan en gran medida de la misma forma -los nombres de clave que contienen un separador de dos puntos son cadenas de caracteres como cualquier otra clave.
Almacenar un valor de una manera similar a una sintaxis de espacio de nombres, es decir, clave:sufijo=valor donde sufijo equivale a algún valor variable, sin finalidad de agrupación, no significa que el concepto de espacio de nombres se utilice aquí. Es sólo un sufijo delimitado por dos puntos
Ejemplos de uso del espacio de nombres
- addr=* etiquetas para contener parte de una dirección
- contact=* etiquetas para anotar contactos
- Date namespace - Se ha sugerido un sufijo de espacio de nombres para fechas (en Comparación de conceptos de ciclo vital) para especificar la validez temporal de las etiquetas, por ejemplo, "amenity:1835-1965=school","name:1933-1945=Adolf-Hitler-Straße". El sufijo viene como parte final de la clave (por ejemplo, después del sufijo de código de idioma). Advertencia: esta sintaxis es relativamente común, pero es sólo una parte de una propuesta, mientras que, técnicamente, no es un espacio de nombres propio.
- generator:output=* para proporcionar información sobre la potencia de salida de una planta generadora de energía eléctrica.
- is_in=* antiguo espacio de nombres que sigue presente en la base de datos
- :lanes sufijo para agregar información específica del carril.
- Prefijo de ciclo vital - Se ha sugerido (en Comparación de conceptos de ciclo vital) utilizar prefijos, como "proposed:", "construction:", "disused:", "abandoned:" o "demolished:" para etiquetar características en un estado especial, por ejemplo" construction:aerialway=gondola". En el caso de las vías de circulación y los ferrocarriles, un etiquetado diferente es un estándar de facto, por ejemplo "highway=construcction + construction=motorway". Véase Comparación de los conceptos del ciclo vital.
- Nombres multilingües - los sufijos de código están en uso para muchas claves como "name:ro = ..." que indica el nombre rumano de una característica. Consulta Internacionalización de mapas y Nombres multilingües para algunos usos. El sufijo viene inmediatamente después de la clave principal.
parking:lane=* y parking:condition=* para proporcionar información sobre sitios de estacionamiento para highway=*
- source=* para indicar el origen de todas las etiquetas o sólo una etiqueta específica
- traffic:hourly=* indica la densidad de tráfico y puede utilizarse como espacio de nombres.
- Forward y backward, left y right sufijos para indicar que la etiqueta sólo se aplica en alguna dirección o lado para la vía.
Nomenclatura
- Espacio de nombres describe todo el concepto (es decir, esta página). Cuando se utiliza como un espacio de nombres prefijo, la palabra "prefijo" se omite a menudo.
- Prefijo es el uso de un espacio de nombres delante de una clave (utilizada en Etiquetas, Prefijo de ciclo vital, addr).
- sufijo es el uso de un cualificador después de una clave (usada en Etiquetas, Restricciones condicionales, ES:Key:name, Carriles).
- Subclave se utiliza en dos contextos
- como una clave adicional que describe una característica (usada en contenedor de residuos, lancha motora)
- para describir un sufijo (utilizado en Carriles, ES:Key:phone, ES:Key:addr:*, Key:class:bicycle y Template:Tag/doc).
- Infijo se usa muy raramente (Etiquetas, Propuesta de característica)
Este software wiki también utiliza el concepto de espacios de nombres pero esto no está relacionado con los espacios de nombres de OSM.
Consumir espacios de nombres
En un nivel básico dentro del sistema, una clave con un espacio de nombres simplemente se almacenará y tratará como cualquier otra cadena de texto de forma libre (una cadena que sólo tiene un carácter de dos puntos).
Muchos consumidores de los datos de OSM tratarán las claves así. Las aplicaciones que consumen a menudo coinciden con las claves en las que están interesadas y se ignoran las claves no reconocidas. Esto puede ser el efecto deseado de un espacio de nombres. Los espacios de nombres pueden usarse para separar ciertos tipos de información especializada, alineando estos datos lejos de los datos de mapas "básicos", para aclarar que sólo los consumidores más especializados estarán interesados en ella.
Uso excesivo de espacios de nombres
El uso de espacios de nombres es una excelente forma de estructurar el esquema de datos, pero también puede causar problemas para algunos consumidores de datos, lo llaman sobreuso de espacios de nombres.
- Espacio de nombres relacionado con el proyecto: A veces puede ser tentador simplemente usar el espacio de nombres de una clave para evitar el choque con otros datos en lugar de tratar de integrar los esquemas existentes, esto es un mal hábito. OSM es una base de datos multiesquema, lo que significa que cada etiqueta se relaciona con más de un esquema, más de un uso de los datos, por lo que es importante integrarse con otros esquemas ya utilizados para maximizar el saneamiento de los datos.
- El sobreuso de espacios de nombres lleva a la inconsistencia en la base de datos: si tenemos projectfoobar:name=xxx y name=xxx, en muchos casos uno se actualizará y el otro no. Cuanto más sencilla y genérica sea la clave, más utilizada será, más saneada estará.
- El sobreuso de espacios de nombres lleva a un esquema de datos diseminados: por ejemplo, alguien interesado en datos sobre los canales de VHF tendrá que buscar la clave harbour:VHF_channel, más seamark:habour:VHF_channel, más VHF_channel, más lock:VHF_channel, más vhf para recopilar los datos... Usar sólo la clave vhf debería ser suficiente para saber que estos datos se refieren al puerto o la cerradura o cualquiera que sea el objeto de OSM que estamos etiquetando.