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
_______________________________________________
Talk-fr mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/talk-fr