[OSM-talk-fr] Héritage et relation

Vincent Pottier vpottier at gmail.com
Jeu 24 Mai 09:32:52 UTC 2012


Le 24/05/2012 10:10, Nicolas Dumoulin a écrit :
> Bonjour,
>
> Le jeudi 24 mai 2012 09:36:53 Gilles Bassière a écrit :
>> Effectivement, si on veut être très rigoureux (notamment si on aime bien
>> le principe de normalisation relationnelle), on peut considérer que
>> "Tout est relation". Par exemple, les multiples tronçons d'une route
>> sont des ways non-taggés qu'on inclut dans une relations portant le
>> name= et le highway=.
>>
>> C'est une position cohérente d'un point de vue intellectuel, je l'ai
>> déjà lu ou entendu. Mais ça rend l'édition bien plus compliqué. C'est
>> pourquoi, en pratique, on continue à répéter les tags sur les multiples
>> tronçons d'une même rue. Le pragmatisme et la dé-normalisation sont dans
>> l'air du temps !
> Oui, nous sommes certains à y rêver :-) Que c'est moche d'avoir tous ces tags
> répétés. Comme c'est parfois hasardeux de modifier les attributs d'une voie
> sans en oublier un morceau … (bon ok, on s'en sort au pire en faisant une
> recherche).
> Mais effectivement, tant que nous n'avons pas des éditeurs qui permettent de
> gérer cela simplement, on ne peut pas y passer.
>
Ça n'est pas qu'une question d'éditeurs, mais de modèle de donnée.
OpenStreetMap n'est pas tout à fait une base de données à objets, ou 
plus exactement, c'est une base de donnée à objets [1], mais on ne sait 
pas exactement ce que sont ces objets.

L'exemple de la route est typique.
Si le formalisme d'OSM était rigide, toutes les routes seraient 
contruites sur le même modèle :
- soient des ways simples comportant tout l'information : sémantique et 
géométrie (c'est le modèle de départ d'OSM)
- soient des relations portant la sémantique et des ways pour la 
géométrie et on aurait une couche ORM pour récupérer les données et les 
présenter comme objets.

Pour des raisons historiques et pratiques, les deux modèles sont 
mélangés dans la base de donnée.
- Pour l'avenue Machin, tronçonnées pour les sens interdits, les pistes 
cyclables, les relations de bus, les adresses postales, les Y à l'abord 
d'un rond-point...Le modèle relation+ways s'impose.
- Mais pour le "chemin des choux" qui mène dans la garrigue, le seul way 
suffit avec le nom, le ref et la géométrie.

Quand on veut obtenir un objet "Rue Machin", on risque donc de récupérer 
une collection : la relation globale et les tronçons.
Plus les "associatedStreet" et autres exotismes...

Le flou sur la représentation de l'objet "Rue Machin" est une 
difficulté, pour l'édition, le traitement... mais aussi une souplesse 
pour la créativité.

Les éditeurs essaient de tenir compte de ce flou, laissant à l'humain de 
déterminer s'il doit traiter une relation ou un way simple.

Ce que savent bien faire les machines, c'est de repérer que tel way, 
c'est du "highway=tertiary" et d'en tenir compte pour du routage.
Par contre de déterminer ce qu'est l'Avenue des Champs-Élysées [3], avec 
ses chaussées séparées, son rond-point au milieu, ses trottoirs, ses 
adresses, ses passages pour piétons, ses jardins et bassins, ses arrêts 
du bus et stations de métro, son serial-killer tunnel [4]... du 
surfacique, du linéaire, des interruptions, des associations... Pas 
simple...

Pourtant, les logiciels de routage s'en débrouillent, mapnik aussi.

Les représentations ne sont pas encore assez avancées pour qu'un modèle 
d'objets et interfaces (ou duck-typing) : linéaire pour le routage, 
surfacique pour la cartographie, associations pour les POIs... émerge et 
qu'une couche ORM se construise pour les éditeurs. On y vient avec les 
APIs, notamment XAPI [5].

Ça viendra... patience


[1] http://fr.wikipedia.org/wiki/Base_de_donn%C3%A9es_orient%C3%A9e_objet
[2] http://fr.wikipedia.org/wiki/Mapping_objet-relationnel
[3] http://osm.org/go/0BPIIMGO4-
[4] http://www.2m40.com
[5] http://taginfo.openstreetmap.org/tags/name=Avenue des Champs-Élysées
http://overpass-api.de/api/xapi_meta?*[name%3DAvenue+des+Champs-%C3%89lys%C3%A9es]
--
FrViPofm




Plus d'informations sur la liste de diffusion Talk-fr