Relation "associatedStreet" ou tag "addr:street" sur chaque adresse ?
Posted by Pieren on 14 November 2013 in French (Français).Pour lier un numéro d’adresse avec sa rue, il existe deux modèles qui co-existent dans OSM: soit le nom de la rue est répété avec chaque adresse, qu’elle soit mise sur un noeud, un way fermé (souvent un “building”) ou une relation (par exemple une relation de type “site” ou “multipolygon”) en ajoutant le tag “addr:street” au tag “addr:housenumber”; soit on crée une relation de type “associatedStreet” et chaque élément portant un numéro (dans un noeud ou un way, plus rarement une autre relation) est ajouté dans la relation avec un role “house” et on associe la rue en ajoutant au moins un way de celle-ci avec le role “street”.
J’ai voulu voir s’il était possible de calculer l’usage de ces deux méthodes en France et de les comparer avec leur équivalent dans le monde entier uniquement avec l’outil taginfo. Les statistiques pour la France viennent du serveur taginfo.openstreetmap.fr alors que ceux pour le monde viennent du serveur taginfo.openstreetmap.org . Je ne connais pas les détails de l’installation sur osm.fr mais on peut penser que les données collectées débordent légèrement du cadre strict des frontières. On considérera cependant que les écarts que cela implique peuvent être faibles et négligés dans la petite étude suivante.
Il se trouve que l’outil taginfo construit ses statistiques d’usage différement entre tags sur éléments et “roles” sur relations. Il faut donc faire attention à bien distinguer les deux.
On commence avec taginfo France. Le tag “type=associatedStreet” s’y trouve ~48.000 fois sur des relations. Mais attention, une relation peut couvrir plusieurs adresses. Pour savoir ce que cela représente en nombre d’adresses individuelles, il faut aller sur la page comptant le nombre de roles “house”. On en décompte alors ~833.000 ce qui représente une moyenne de 17 adresses par relation, chiffre tout à fait plausible.
Pour connaitre ensuite le nombre d’adresses qui ne sont pas identifiées par une relation, il suffit de chercher le nombre d’éléments utiliisant le tag “addr:street”, soit ~760.000
Résumé du match en France : 833.000 adresses en relations “associatedStreet” contre 760.000 tagguées avec “addr:street”.
Si on applique les mêmes requêtes dans taginfo pour le monde, on obtient les résultats suivants: 2.100.000 adresses en relations “associatedStreet” contre 23.090.000 tagguées avec “addr:street”.
Conclusion :
- 40% des adresses tagguées avec la relation “associatedStreet” dans le monde le sont en France (833m/2100m).
- en France, on est à peu près à 50-50 entre les deux méthodes avec un léger avantage pour la relation.
- sur l’ensemble du monde, les relations “associatedStreet” ne représentent que 9% des adresses modélisées (2.1M/23M).
Biais : cette méthode a ses limites et ne tient pas compte de certains facteurs qui peuvent altérer les résultats. Par exemple, il arrive que certaines adresses soient tagguées avec les deux méthodes simultanément.
Discussion
Comment from Vincent de Phily on 14 November 2013 at 17:13
Stats interessantes, merci :)
Perso les premières addresses que j’ai taggées l’étaient avec addr:street car ça paraissait plus simple. Puis j’ai réalisé qu’utiliser des relations avait de nombreux avantages :
Avec un peu de chance, la communauté OSM finira par faire le même cheminement de pensée que moi :p
Comment from Pieren on 14 November 2013 at 17:41
Mon billet ne s’intéressait pas aux avantages et inconvénients de chaque méthode. J’en ai déjà parlé sur la liste de diffusion talk-fr. Mais pour contre-balancer les avantages cités, je peux avancer ceci:
Comment from EddieJ on 14 November 2013 at 18:35
Et la plus marginale : Relation:street…
http://wiki.openstreetmap.org/wiki/FR:Relation:street
(page traduite récemment)
Comment from JBacc1 on 15 November 2013 at 10:08
Argh, sans commentaire pour la relation street… (la version anglaise serait pas une proposition, des fois ? Elle n’en a pas la forme mais est décrite comme telle, et cela pourrait être mis en avant sur la version française…).
Non, surtout merci pour ces stats. L’intégration d’Opendata sous la forme de relation est surement pour beaucoup dans ces résultats.
Et la dernière division non présentée (mais hors sujet) : 6.3% des adresses sont françaises !
Comment from Vincent de Phily on 15 November 2013 at 10:16
Comment from Pieren on 15 November 2013 at 11:07
Aie:
C’est terrible si le nom est différent ! Des outils de controle qualité pourraient considérer que c’est une erreur. Le nom devrait être 100% identique sinon c’est la porte ouverte à toutes les interprétations.
Sinon, un changement de nom n’est pas identique à une correction de typo. Le premier ne se fait que si ça change dans le monde réel. Le deuxième corrige une erreur et ne change plus par la suite.
Comment from Larry0ua on 15 November 2013 at 11:16
If you are using associatedStreet with Josm, try RelToolbox plugin - well, it is great for multipolygons and border stuff, but will significantly decrease clicks number when adding new relation or adding house to existing one. Also it has internal validations like street way with wrong name was included to the relation, incorrect roles and some others.
Comment from Vincent de Phily on 15 November 2013 at 14:08
Le name=* d’une relation associatedstreet est optionel. Il n’a pas d’interêt pour les outils de controle qualité ou autres puisque c’est le name=* du membre street qui compte (on appelle ça une bdd normalisée :p). La seule utilité du name sur la relation, c’est d’aider un humain à choisir la bonne relation dans la liste. Et quand il y a plein de relations dans un même coin pour une même rue, c’est bien pratique d’avoir des name différents pour chacun (par exemple “Rue Tartampion Nord-est”). Mandater que le name de la relation et celui du membre soient égaux est une fausse bonne idée.
Pour la différence typo/changement, on est d’accord sur la différence sémantique. Mais la manipulation à faire dans OSM (et probablement sa fréquence) est la même.
Pour l’algo, le wiki mentione (oui, je sais que c’est à prendre avec des pincettes) “more easy and less error-prone to evaluate” ainsi que “much slower to parse”. Les deux sont à considérer.
Comment from Pieren on 15 November 2013 at 14:28
C’est le plus important, non ? Comme on n’est pas des machines, c’est les données qui s’adaptent aux humains et pas l’inverse. C’est pourquoi le tag name est finalement aussi souvent ajouté par les contributeurs, sinon on se retrouve, comme dans JOSM, avec des listes de relations dont on sait pas qui fait quoi. C’est donc une option quasi obligatoire pour les humains mais optionnel pour les machines. Différiencer le tag name n’apporte que de la confusion et n’est pas un conseil à suivre ni à donner.
Comment from Vincent de Phily on 15 November 2013 at 17:50
Bizarre, on est d’accord sur le principe de base (celui que tu as cité) mais pas sur la conclusion. Peut-être qu’on n’utilise pas les relations de la même manière ? As-tu déja eu besoin d’utiliser plusieur relations pour une même rue ?
Au passage, quand le name de la relation est identique à celui de la rue, j’aimerais bien ne pas avoir à perdre de temps (et de ressources) en ajoutant un name. Si l’éditeur affichait le name de la rue membre quand la relation elle-même n’a pas de membre, on n’aurais pas besoin d’ajouter un name à la relation dans la pluspart des cas.