FR:Espaces de noms
Un espace de nom est un préfixe, un suffixe ou un infixe d'une clé. Il peut être utilisé dans des cas particuliers pour regrouper des clés étroitement liées ou comme qualificatif supplémentaire pour les clés. Le caractère deux-points (':') sert de séparateur des espaces de noms dans les noms de clés. Les avantages possibles de l’introduction d'espaces de noms aux clés doivent être comparés à leurs inconvénients.
Le regroupement de clés étroitement liées dans des espaces de noms permet de séparer ce groupe de clés, en évitant les conflits de noms et en fournissant un contexte de niveau supérieur à une clé particulière.
Les espaces de noms en tant que qualificatifs sont utilisés lorsqu'un attribut (tel que le code de langue) est applicable à un large éventail de clés principales non liées.
Techniquement, les deux concepts sont traités dans une large mesure de la même manière - les noms de clés contenant un séparateur deux-points sont des chaînes de caractères comme toute autre clé.
Stocker une valeur de cette manière, similaire à une syntaxe d’espace de nom tel que clé:suffixe=valeur où suffixe est égal à une valeur de variable, en n'ayant pas un objectif de regroupement, ne signifie pas que le concept d’espace de nom est utilisé ici. C'est juste un suffixe délimité par deux-points.
Exemple d'utilisation d'espaces de noms
- addr=* balises pour contenir une partie d'une adresse.
- Le suffixe :conditional est utilisé pour les clés avec des valeurs de conditional restrictions.
- contact=* attributs.
- Date namespace - Un suffixe d'*espace de noms date a été suggéré (dans Comparaison des concepts de cycle de vie ) pour spécifier la validité temporelle des attributs, par exemple "amenity:1835-1965 = school", "name:1933-1945 = Adolf-Hitler-Straße". Le suffixe est la dernière partie de la clé (exemple, après le suffixe du code de langue). Attention: cette syntaxe est relativement courante, mais il ne s'agit que d'une partie d'une proposition, alors que, techniquement, ce n'est pas un espace de nom approprié.
- generator:output=* pour fournir des informations sur la puissance fournie par une centrale électrique.
- is_in=* ancien espace de nom toujours présent dans la base de données.
- :lanes suffixe pour ajouter des informations spécifiques aux voies.
- Lifecycle prefix - Il a été suggéré (dans Comparaison des concepts de cycle de vie ) d’utiliser un préfixe tel que "proposed:", "construction:", "disused:", "abandoned:" ou "demolished:" pour marquer les attributs dans un état spécial, par exemple "construction:aerialway=gondola". Pour les voies routières et ferrées, un marquage différent est de facto standard, par exemple "highway=construction + construction=motorway". Voir Comparaison des concepts de cycle de vie.
- Multilingual names - des suffixes de code sont utilisés pour de nombreuses clés telles que "name:ro=..." pour indiquer le nom en roumain d'une entité. Voir Internationalisation des cartes et Noms multilingues pour certaines utilisations. Le suffixe vient immédiatement après la clé principale.
- parking:lane=* et parking:condition=* fournissent des informations sur les voies de stationnement pour highway=*.
- source=* pour indiquer la source de toutes les balises ou seulement d'une balise spécifique.
- traffic:hourly=* indique la densité du trafic et peut être utilisé comme espace de nom.
- Forward & backward, left & right suffixes pour indiquer que l’étiquette ne s’applique que dans une direction ou un côté de la voie.
Nomenclature
- espace de nom décrit l'ensemble du concept (c'est-à-dire cette page). Lorsqu'il est utilisé comme espace de nom préfixe, le mot préfixe est souvent omis.
- prefixe est l'utilisation d'un espace de nom devant une clé (utilisé dans Tags, Lifecycle_prefix, addr).
- suffixe est l'utilisation d'un qualificatif après une clé (utilisée dans Tags, Conditional_restrictions, Key:name, Lanes).
- sous-clé est utilisée dans deux contextes
- en tant que clé supplémentaire décrivant plus en détail une fonctionnalité (utilisée dans Key:waste, Key:motorboat)
- pour décrire un suffixe (utilisé dans Lanes, Key:phone, Key:addr, Class:bicycle et Template:Tag/doc).
- infixe est utilisé très rarement (Tags, Talk right/left)
Le moteur logiciel de ce wiki utilise également le concept d'espaces de noms, mais cela n'a aucun lien avec les espaces de noms OSM.
Consommation des espaces de noms
Au niveau de base du système, une clé avec un espace de nom sera simplement stockée et traitée comme toute autre chaîne de texte de forme libre (une chaîne qui a juste un caractère deux-points).
De nombreux consommateurs de données OSM traiteront les clés de cette manière. Les applications consommatrices correspondent souvent aux clés qui les intéressent et toutes les clés non reconnues sont ignorées. Cela peut être l'effet souhaité d'un espace de noms. Les espaces de noms peuvent être utilisés pour séparer certains types d'informations spécialisées, en les éloignant des données cartographiques « essentielles », afin de préciser que seuls les consommateurs les plus spécialisés s'y intéresseront.
Sur-classification nominale
L'utilisation d'espaces de noms est un excellent moyen de structurer le schéma de données, mais il peut également causer des problèmes à certains utilisateurs de données qui considèrent cela comme une sur-classification nominale.
- espace de nom lié au projet ; il peut être tentant parfois de simplement mettre en espace de nom une clé pour éviter tout conflit avec d'autres données au lieu d'essayer d'intégrer des schémas existants, ce qui est une mauvaise habitude. OSM est une base de données multi-schémas, ce qui signifie que chaque balise concerne plus d'un schéma, plusieurs utilisations des données. Il est donc important de l'intégrer à d'autres schémas déjà utilisés pour optimiser la conservation des données.
- la sur-classification nominale entraîne des incohérences dans la base de données : si nous avons projectfoobar:name=xxx and name=xxx, dans de nombreux cas, l'un sera mis à jour et pas l'autre. Plus la clé est simple et générique, plus elle sera utilisée, plus elle sera organisée.
- la sur-classification nominale conduit à un schéma de données disséminé : par exemple, une personne intéressée par les canaux VHF devra rechercher la clé harbour:VHF_channel, plus seamark:habour:VHF_channel, plus VHF_channel, plus lock:VHF_channel, plus vhf, pour collecter les données... Utiliser uniquement la clé vhf devrait être suffisant pour savoir que ces données se rapportent au port ou à l'écluse ou à un objet d'OSM que nous identifions.