Bonsoir à toutes et à tous,
Il y a 6 mois, après le SOTM monde où des réflexions pour l’évolution du modèle de données d’OSM avaient été présentées, nous avions pu échanger ici à propos de ces visions.
Dans un billet de blog d’hier, Courtney Williamson indique qu’une consultation s’ouvre pour recueillir les commentaires de la communauté vis à vis de perspectives d’évolutions qui se dégagent désormais depuis le SOTM.
https://blog.openstreetmap.org/2023/01/04/reminder-call-for-feedback-on-the-data-model/
Cette consultation est destinée à définir les prochaines étapes au regard des propositions formulées précédemment.
En voici une synthèse qui se contente d’exposer les arguments du billet de blog.
Une définition plus fiable des polygones
Actuellement, chaque outil interprétant des données doit déterminer si tel ou tel chemin clos est un polygone ou non. Ceci pouvant avoir des impacts importants sur l’expérience d’édition ou bien d’utilisation des données.
Il semble nécessaire d’ajouter une primitive area en plus des node/way/relation habituels pour expliciter ce qui est un polygone ou qui ne l’est pas jusque dans les données brutes.
Cela permettra d’assurer la cohérence des traitements d’un outil à l’autre et aussi à l’API principal de vérifier que les objets devant être des zones ne sont pas cassés (par exemple).
Assurer des traitements légers et accessibles
Le modèle de données actuel, relationnel et topologique, a les avantages que nous connaissons tous mais oblige à une gymnastique de plus en plus coûteuse en arrière plan, notamment pour traiter les données brutes. Ce que font osm2pgsql et imposm par exemple.
Ces coûts semblent croître plus rapidement que les progrès du matériel disponible.
C’est le fait de devoir résoudre les identifiants de nœuds constituant un chemin à chaque fois qui prend par exemple de plus en plus de temps.
Au lieu de cela, il serait possible de migrer vers une base de données géographique, associant une géométrie à chacun des objets contrairement à maintenant où la seule géométrie est celle des nœuds.
Disposer de telles géométries permettrait de paralléliser les traitements qui ne sont que séquentiels aujourd’hui (on traite les nœuds, puis les chemins, puis les relations - jamais tout en même temps parce qu’ils dépendent les uns des autres).
C’est une évolution lourde de conséquence. Les nœuds ne seraient plus attachés explicitement aux chemins. Ils seraient attachés « parce qu’ils se trouvent pile dessus » en quelque sorte. C’est à dire qu’un sommet du chemin coïnciderait avec un nœud.
Nous n’aurions plus de nœuds sans tags (actuellement 98% des nœuds n’ont pas de tags et ne sont là que pour servir de sommets aux chemins).
Disposer d’un historique plus accessible
Le côté topologique de la base de données a aussi des implications sur l’accessibilité des historiques.
Puisque seuls les nœuds sont porteurs de coordonnées, il est difficile d’accéder à la représentation d’un chemin d’il y a 2 versions avant l’actuelle.
Avec l’évolution proposée vers une base de données géographique, il serait en outre possible de disposer des géométries d’anciennes versions de chaque objet très facilement.
Autrement dit, de faire sortir OSMCha du domaine de la rocket science et de l’intégrer durablement à l’interface d’osm.org
Produire plus facilement des tuiles vectorielles
La production de tuiles vectorielles (en opposition aux tuiles bitmap que nous connaissons aujourd’hui via le rendu monde) nécessite elle-aussi de résoudre les dépendances chemin/nœuds pour produire des géométries.
Disposer des géométries directement dans la base permettrait non seulement d’accélérer leur production mais aussi leur mise à jour. Puisque ces géométries voyageraient aussi dans les fichiers différentiels (minute / daily …)
Pour les anglophones, vous êtes cordialement invités à donner votre avis sous la forme d’issues sur ce dépôt
Pour les francophones, discutons-en ici afin de raffiner une position commune sur ces propositions
Bonne soirée.