Bonjour à tous,

Cela fait un moment que je suis dépassé par cette discussion interminable.
Est-ce qu'il ne serait pas intéressant que les différents "protagonistes"
se rencontrent pour en discuter de vive-voix et avec des exemples à
l'appui...?

Romain

Le 26 janvier 2012 09:33, Philippe Verdy <verd...@wanadoo.fr> a écrit :

> Le 25 janvier 2012 18:09, Pieren <pier...@gmail.com> a écrit :
> > 2012/1/25 Vincent de Chateau-Thierry <v...@laposte.net>:
> >
> >> Contrairement à ce que je disais hier soir, je n'ai en revanche pas
> touché aux
> >> ajouts de type "subarea" dans les relations Paris et Val de Marne, pour
> la simple raison
> >> que de tels ajouts se sont multipliés depuis hier :
> >>
> >> la Vienne :
> >> http://www.openstreetmap.org/browse/relation/7377
> >> Poitou-Charente :
> >> http://www.openstreetmap.org/api/0.6/relation/8652
> >> Seine-et-Marne :
> >> http://www.openstreetmap.org/api/0.6/relation/7383
> >>
> >> etc, etc.
> >>
> >> Je suis tout à fait prêt à discuter du modèle par surfaces, le jour où
> il sera proposé.
> >> Pour l'instant, il est plutôt imposé (litote) au mépris des suggestions
> alternatives (ne
> >> pas squatter les relations existantes, avant tout), ce qui ne réunit
> pas les conditions
> >> minimales d'une discussion. Un jour peut-être.
> >
> > Et donc on ne fait rien ? Alors que tout le monde à part l'auteur des
> > modifs semble d'accord pour une séparation des modèles dans des
> > relations différentes à minima ?
>
> Tout d'abord je comprend très bien l'intérêt de la méthode de
> construction par niveaux indépendants qui favorise la modélisation par
> frontières. Je n'ai absolument rien à critiquer là-dessus. Cette
> méthode permet effectivement de construire 100% d'un niveau et de
> vérifier qu'il n'y a doublon des surfaces couvertes (intersections),
> ni surfaces oubliées pour un niveau donné. Oui effectivement elle
> permet de construire chaque niveau indépendamment de tous les autres.
> De même elle permet de détecter au sein d'un même niveau les
> frontières mitoyennes définies par des ways (ou boundary_segments si
> on les utilise, débat séparé)  superposés: la méthode demandée veut
> qu'on évite de superposer les ways d'un même niveau. Elle ne va pas au
> delà: on obtient une couche séparée pour ce niveau.
>
> Cependant ce n'est pas parce qu'un niveau parait 100% terminé, avec
> une couverture totale, pas de doublons, qu'elle est de qualité. Car on
> me dit d'utiliser une requête spaciale pour trouver les inclusions
> entre niveaux. En particulier, les frontières définies par un niveau
> sont aussi réutilisées pour définir les niveaux inférieurs: en
> travaillant sur un niveau donné, on peut très bien obtenir le niveau N
> 100% complet, et avoir tout cassé aux niveaux 1 à N-1...
>
> De même, il n'y a strictement rien avec le modèle qui utilise
> UNIQUEMENT les frontières pour recoller les niveaux entre eux: par
> exemple quel propriété "boundary_level" doit être mise dans les ways
> (ou boundary-segments si on les crée) ? Il n'y a aucune méthode pour
> vérifier que ces boundary_level sont corrects.
>
> De même, un ensemble de surfaces (définies par frontières) définies
> dans un niveau N+1 et qui devraient former une partition du niveau N,
> ne le font pas: la requête spacile échoue (et on se retrouve donc avec
> l'Ille-et-Vilaine qui n'est pas en Bretagne car des morceaux en
> dépassent. Le modèle avec *uniquement* les frontières ne permet pas le
> contrôle de cohérence. On aboutit alors aux aberrations produites par
> Nominatim (qui cherche alors une heuristique afin de déterminer quelle
> région contient le plus probablement l'Ille-et-Vilaine, basée sur les
> distances entre centroïdes, une heuristique qui est largement fausse
> et produit de nombreuses erreurs; on pourrait améliorer l'heuristique
> en calculant la surface (en mètres carrés ou autre unité de surface)
> commune, mais un tel calcul est bien plus lourd car cela suppose
> d'abord déterminer les intersections de surfaces polygonales, avant de
> calculer la surface par décomposition en triangles élémentaires:
> calcul très complexe que Nominatim ne fera sans doute jamais).
>
> Je ne veux pas dire qu'il faut supprimer les frontières: je veux
> garder les deux comme un outil de vérification mais aussi de
> consultation de la base de données ave des requêtes simples non
> spaciales. Ce que je défend reste la méthode de construction d'un
> niveau donné commençant d'abord par le modèle à frontières, qu'il font
> conserver dans les données. Si on représente la topologie des
> relations obtenues, on dessine un arbre des surfaces en commençant par
> tous les noeuds de l'arbre représentant les zones d'un même niveau,
> ces niveaux consituant l'axe horizontal de l'arbre hiérarchique
> virtuel.
>
> Maintenant on a toutes les couches horizontales créées, on les recolle
> sur le plan vertical en libellant explicitement les branches de
> l'arbre virtuel: c'est un ajout que l'on fait, on ne supprime pas les
> frontières du tout (les ways actuels, ou les boundary_segments
> proposés) ! Cet ajout évite d'avoir recours ensuite systémantiquement
> aux requêtes spaciales très lourdes et aux heuristiques pour gérer les
> ambiguités (cas des surfaces de niveaux différents qui se chevauchent
> géométriquement). Cette couche permet de vérifier la cohérence des
> niveaux différents entre eux.
>
> Je n'ai jamais milité pour la construction n'utilisant QUE le modèle
> par surface, mais je ne milite pas non plus pour celle n'utilisant QUE
> le modèle par frontières. Les deux devraient être présents (d'autant
> que dans certains cas, il est normal et même attendu que les
> chevauchements surviennent, à priori pas entre départements et régions
> françaises, mais bien entre EPCI et départements, ou EPCI et régions,
> et d'autres cas se présentent avec les "eaux intérieures" (pour les
> limites côtières sur la ligne de base, étendue par les digues,
> barrages, surfaces découvertes à marée basse, gués, terres
> inondables).
>
>
> Mais si on me demande de créer des relations séparées, cela ne va pas
> du tout: tout l'intérêt est perdu de ces relations verticales, et on
> se retrouve avec par exemple deux relations pour représenter la même
> région, l'une contenant uniquement les frontières externes de la
> région, l'autre contenant uniquement une énumération des départements
> (qu'il faudra ensuite dédoubler eux aussi...) Pas question de cela !
> La même relation représentant la région peut contenir à la fois la
> définition de ses frontières externes (définition horizontale dans
> l'arbre hiérarchique), et inclure la liste de ses membres (définition
> verticale dans l'arbre hiérarchique des niveaux). Les deux se
> complètent, mais ne se déduisent PAS l'un de l'autre (il y a plein de
> raisons pour cela), comme certains le supposent (à tord: il semble
> vrai en apparence qu'on peut déduire les relations verticales
> hiérarchiques de la définition par frontières, mais dans le détail
> cela ne marche pas, et c'est extrêmement lourd à calculer).
>
> Il reste aussi que des tonnes de données géographiques externes
> utilisent le modèle par surface. Je ne veux pas privilégier un modèle
> contre l'autre: les deux se complètent très bien (et ne servent pas à
> la même chose).
>
> En disposer ne même temps permet aussi des contrôles de cohérence, et
> permet aussi de réparer des zones cassées, par exemple:
> - des frontières (définition horizontale par niveau dans l'arbre
> hiérarchique) ne sont plus fermées par la suppression par erreur d'un
> way dont on n'a pas pu charger toutes les relations qui l'utilisent
> (notamment les relations régions et pays car cela concerne des
> centaines de ways et des dizaines de milleirs de noeuds voire beaucoup
> plus, ce que le serveur OSM ne peut pas supporter.
> - des surfaces ne sont plus contenues l'une dans l'autre (définition
> verticale dans l'arbre hiérarchique) quand elles le devraient (d'où
> les erreurs de type Nominatim qui cherche une approximation
> heuristique, qui ne peut jamais être 100% exacte).
>
> La définition des relations hiérarchiques (par surface) est en terme
> de volume de données stockées dans la base très minime en comparaison
> de la définition des frontières (qui actuellement n'utilise que les
> ways, d'où une duplication énorme de données, qui ne fait qu'empirer
> avec le temps, sauf si plus tard on se met à admettre le support des
> "boundary_segments", qu'on peut aussi appeler "MultiLineString" en
> terminologie GIS, et avec lesquels il va bien falloir se mettre !).
> Les ajouter aux relations n'aura pas d'impact significatif (l'impact
> est bien supérieur au moment où on ajoute des couches de niveaux, et
> quand on se met à partager des ways pour mixer à la fois la géographie
> administrative et la géographie physique, une erreur grave à mon avis,
> alors que ce partage ne devrait exister QUE sur les points
> géodésiques, mais PAS sur les lignes de côtes physiques, les rives de
> fleuves, les routes, ponts, jetées, forêts, bâtiments...).
>
> Disposer des deux modèles solidifie le schéma, permet de le certifier,
> permet l'exploitation des cartes par des logiciels tiers ou aux fins
> statistiques. Il permet aussi à ceux qui modifient les cartes à un
> niveau N de ne pas oublier de modifier des relations de niveaux
> supérieurs ou inférieurs, sans que ceux-ci aient à charger la totalité
> des données contenues dans des rectangles très larges. Il n'a alors
> pas à s'occuper de charger les maisons, rivières, routes, commerces,
> terrains "landuse". Il travaille sur le plan administratif, ou sur le
> plan physique, que sur des ensembles de couches qui doivent
> normalement être indépendantes les un des autres, en ne demandant que
> peut de données au serveur, qui sera capable de les lui retourner avec
> des requêtes simples (il ne sera nécessaire de charger tous les types
> de données dans une zone que pour résoudre des conflits dans des
> toutes petites zones où on détecte une ambiguité ou une erreur entre
> la définition hiérarchique horizontale par frontières et la définition
> vertical par surface).
>
> Le rendu des tuiles n'a pas besoin de charger la définition par
> surfaces: celle par frontières suffit oui. Mais on ne se contente pas
> de produire des données OSM pour faire un rendu de tuiles. Dès qu'on
> cherche à exploiter une carte dans une application réelle (là je parle
> des utilisateurs de la cartes, pas de ceuw qui créent ou modifient les
> cartes), on se pose en permanence la question : dans quoi (quelle
> relation de boundary ?) est situé tel ou tel objet (noeud, ways,
> surface) ? Et c'est là que le modèle uniquement par frontières trouve
> ces limites, car il ne produit pas la réponse (objet non trouvé alors
> qu'il y est bien !), ou produit des réponses incorrectes (heuristiques
> : mauvais objets retournés par la requête spéciale), ou encore le
> serveur n'est pas capable de supporter la charge de cette requête
> (nécessite le chargement de dizaines de milliers de noeuds et ways,
> parfois plus).
>
> On a exactement la même problématique hors des zones administratives,
> avec d'autres données géolocalisées comme les réseaux de transport,
> plans d'aménagement du territoire, découpages de territoires non
> administratifs ou hors du découpage "principal" (de type NUTS). D'où
> sans arrêt les débat entre les deux modèles, dès que certains ne
> veulent privilégier qu'un seul des deux modèles, alors que les deux se
> complètent et se solidifient entre eux pour des usages différents (on
> utilise soit un type de recherche, soit l'autre, mais pas les deux en
> même temps pour un même niveau de couverture). C'est ce que je veux
> faire comprendre:
>
> Le modèle par surfaces (le plus économe en volume de données stockée
> en comparaison du modèle par frontières qui nécessite encore une
> duplication énorme de données sauf si on admet les "boundarysegments"
> ou "Multilinestring") correspond à la modélisation hiérarchique
> verticale des arbres, le modèles par frontières correspond à la
> modélisation horizontale. N'avoir que l'un ou l'autre ne répond pas à
> tous les problèmes, et dans les DEUX cas, le modèle utilise reste très
> fragile et instable face aux modifications parcellaires qui rendent
> les données incohérentes avec la réalité, et DIFFICILES à réparer.
>
> Mais dire que la modélisation par ways et celle par surfaces est
> équivalente est faux: elles ne sont ABSOLUMENT PAS duales l'une de
> l'autre.
>
> Le seul véritable dual (terme mathématique : cherchez les références
> en géométrie pour comprendre, ou bien dans la documentation relative
> aux topologies réseaux, au encore dans la documentation du traitement
> numérique des images pixellisées et des effets photographiques
> numériques...) de la modélisation par surfaces, c'est la modélisation
> par frontières utilisant les boundary_segments (ou multilinestring en
> termes GIS, mais eux-mêmes aussi définitions de façon relationnelle,
> sans duplication d'aucune liste des ways qui composent chaque segment,
> puisqu'il faudrait que chaque segment soit décomposables en
> sous-segments eux aussi de niveaux différents et formant eux-aussi un
> arbre).
>
> Mais visiblement nos logiciels ne sont pas encore prêts à les accepter
> (alors qu'ils n'ont pas de problème à gérer et ignorer les données du
> modèle par surfaces), même si on n'utilise QUE des boundary_segments
> dupliquant des sous-listes de ways (donc pas encore eux-mêmes
> structurés eux aussi en arbres).
>
> Donc en attendant d'avoir des chemins structurés hiérarchiquement (de
> façon relationnelle aussi, et pas uniquement de simples listes
> ordonnées de noeuds), les données par surface sont indispensables (et
> peuvent fonctionner immédiatement : les surfaces structurées
> hiérarchiquement sont même bien plus simples à modéliser (et
> comprendre aussi) que les chemins linéaires structurés
> hiérarchiquement, qui restent "imaginaires" et n'existent pas dans la
> réalité (sauf pour les données de frontières administratives: traités
> internationaux, cadastres...) mais ces lignes imaginaires n'ont aucune
> manifestation physique qu'on puisse voir sur les photos même les plus
> fines, hormi les repères géodésiques (si on leur accorde une
> signification au niveau d'un seul noeud, mais strictement jamais sur
> une ligne elle aussi imaginaire, ni sur une surface bien réelle où ils
> auraient été construits sur le terrain).
>
> Alors oui je veux bien qu'on suspende l'utilisation des
> "boundary_segments" les modéliser avec les relations actuelles est une
> erreur qui conduit à des ambiguités topologiques. Mais en revanche
> l'utilisation des relations pour structurer les surfaces a bel et bien
> un sens: les relations ont été conçues pour ça (entre autres) et aussi
> pour définir des jeux de métadonnées (avec pour chaque jeu un "rôle"
> distinctif) qui ne tiennent pas dans des propriétés (à valeurs simple:
> un nom, un identifiant, un nombre, une date) de l'objet mais dans des
> collections énumérables de valeurs multiples (à priori non ordonnées
> entre elles dans un même rôle) : alors le "rôle" a la même fonction
> dans un objet que celle que joue la "clé" dans les propriétés à
> valeurs simples de cet objet.
>
> _______________________________________________
> Talk-fr mailing list
> Talk-fr@openstreetmap.org
> http://lists.openstreetmap.org/listinfo/talk-fr
>
_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-fr

Répondre à