Re: [OSM-dev-fr] Trouver des objets ne possédant pas certains tags
En fait je prévois déjà une migration vers pgsql pour certaines de mes bases. Il faut pour cela reprendre un certain nombre de choses sur mon ORM pour qu'il puisse travailler avec ce SGBDR. C'est un truc assez lourd, je ne sais pas pour combien de temps je vais en avoir puisque c'est pas prioritaire. Mais je suis déjà convaincu que Pg est plus performant que My dans bien des aspects. *François Lacombe* francois dot lacombe At telecom-bretagne dot eu http://www.infos-reseaux.com Le 6 décembre 2013 21:32, Christian Quest a écrit : > Ah oui... mysql... > > Les hstore de PG sont vraiment un truc top pour nos tags... et si tu > ajoute postgis dans la balance, mysql ne fait plus le poids. > Le temps que tu va passer à la découverte de PG et à la migration sera un > investissement que tu ne regrettera pas ! > > J'ai utilisé mysql pendant des années, je n'écrit pas ça pour le dénigrer. > > > > Le 6 décembre 2013 21:25, François Lacombe < > francois.laco...@telecom-bretagne.eu> a écrit : > > Bonsoir, >> >> Merci pour vos réponses. >> >> Ista, pas de soucis hain :) >> Concernant cette requête Overpass, ca a l'air d'être ca. Avec la négation >> dont je parle ci-dessous. >> >> >> Comme indiqué plus haut, la question ne porte pas sur un développement >> OSM. >> J'ai uniquement posé la question en imaginant que la structure de données >> pour stocker les tags et les mettre en relation avec les primitives était >> similaire à la mienne. >> >> En effet, Overpass n'utilisant pas SQL, comparer avec son implémentation >> n'est pas pertinent. >> >> Néanmoins, je remarque qu'ici ou ailleurs, la réponse apportée à la >> question reste l'élaboration de l'ensemble qui ne satisfait pas la >> contrainte, pour le nier ensuite. >> On doit donc en pratique en SQL faire des requêtes imbriquées, ce qui >> n'est pas très performant. >> Je fonctionne sous MySQL, je ne peux pas toucher immédiatement au >> dispositif pour utiliser des hstore sous PgSQL par exemple. >> >> Vu que c'est le retour que j'ai depuis plusieurs sources, et que les gens >> qui répondent à la question sont aussi plus calés que moi sur ces aspects, >> je vais m'en tenir à cela :) >> >> >> Merci et bonne soirée :) >> >> >> *François Lacombe* >> >> francois dot lacombe At telecom-bretagne dot eu >> http://www.infos-reseaux.com >> >> >> Le 6 décembre 2013 20:54, Christian Quest a >> écrit : >> >> En SQL ça ne pose pas de problème comme indiqué par sly, en query >>> overpass j'ai pas trouvé. >>> >>> Pour SQL, si tu utilise des hstore très bien adaptés pour le stockage >>> clé=valeur ça passe aussi très bien et couplé à des index conditionnels >>> c'est performant. >>> >>> >>> Le 5 décembre 2013 22:51, François Lacombe < >>> francois.laco...@telecom-bretagne.eu> a écrit : >>> Bonsoir, Je souhaite savoir si dans le modèle de données retenu par OSM il est possible de retrouver des objets ne possédant pas certains tags. A partir d'Overpass API par exemple ? Dans OAPI, on peut tout a fait fixer une clause pour trouver des objets qui possèdent un tag défini avec n'importe quelle valeur mais en revanche le langage ne permet pas de définir le conjugué d'une telle contrainte. Est-ce un "oubli" ou une lacune profonde du modèle ? L'objet de ma question ne trouve pas d'application concrète dans OSM. OSM utilise comme beaucoup d'autres systèmes une modélisation EAV pour le stockage des tags dans la base de données. Je cherche actuellement à mettre au point une requête SQL qui retrouve des enregistrements qui ne possèdent pas certaines clés. Merci par avance pour vos indications. *François Lacombe* francois dot lacombe At telecom-bretagne dot eu http://www.infos-reseaux.com ___ dev-fr mailing list dev-fr@openstreetmap.org https://lists.openstreetmap.org/listinfo/dev-fr >>> >>> >>> -- >>> Christian Quest - OpenStreetMap France >>> Un nouveau serveur pour OSM... http://donate.osm.org/server2013/ >>> >>> ___ >>> dev-fr mailing list >>> dev-fr@openstreetmap.org >>> https://lists.openstreetmap.org/listinfo/dev-fr >>> >>> >> >> ___ >> dev-fr mailing list >> dev-fr@openstreetmap.org >> https://lists.openstreetmap.org/listinfo/dev-fr >> >> > > > -- > Christian Quest - OpenStreetMap France > Un nouveau serveur pour OSM... http://donate.osm.org/server2013/ > > ___ > dev-fr mailing list > dev-fr@openstreetmap.org > https://lists.openstreetmap.org/listinfo/dev-fr > > ___ dev-fr mailing list dev-fr@openstreetmap.org https://lists.openstreetmap.org/listinfo/dev-fr
Re: [OSM-dev-fr] Trouver des objets ne possédant pas certains tags
Ah oui... mysql... Les hstore de PG sont vraiment un truc top pour nos tags... et si tu ajoute postgis dans la balance, mysql ne fait plus le poids. Le temps que tu va passer à la découverte de PG et à la migration sera un investissement que tu ne regrettera pas ! J'ai utilisé mysql pendant des années, je n'écrit pas ça pour le dénigrer. Le 6 décembre 2013 21:25, François Lacombe < francois.laco...@telecom-bretagne.eu> a écrit : > Bonsoir, > > Merci pour vos réponses. > > Ista, pas de soucis hain :) > Concernant cette requête Overpass, ca a l'air d'être ca. Avec la négation > dont je parle ci-dessous. > > > Comme indiqué plus haut, la question ne porte pas sur un développement OSM. > J'ai uniquement posé la question en imaginant que la structure de données > pour stocker les tags et les mettre en relation avec les primitives était > similaire à la mienne. > > En effet, Overpass n'utilisant pas SQL, comparer avec son implémentation > n'est pas pertinent. > > Néanmoins, je remarque qu'ici ou ailleurs, la réponse apportée à la > question reste l'élaboration de l'ensemble qui ne satisfait pas la > contrainte, pour le nier ensuite. > On doit donc en pratique en SQL faire des requêtes imbriquées, ce qui > n'est pas très performant. > Je fonctionne sous MySQL, je ne peux pas toucher immédiatement au > dispositif pour utiliser des hstore sous PgSQL par exemple. > > Vu que c'est le retour que j'ai depuis plusieurs sources, et que les gens > qui répondent à la question sont aussi plus calés que moi sur ces aspects, > je vais m'en tenir à cela :) > > > Merci et bonne soirée :) > > > *François Lacombe* > > francois dot lacombe At telecom-bretagne dot eu > http://www.infos-reseaux.com > > > Le 6 décembre 2013 20:54, Christian Quest a > écrit : > > En SQL ça ne pose pas de problème comme indiqué par sly, en query overpass >> j'ai pas trouvé. >> >> Pour SQL, si tu utilise des hstore très bien adaptés pour le stockage >> clé=valeur ça passe aussi très bien et couplé à des index conditionnels >> c'est performant. >> >> >> Le 5 décembre 2013 22:51, François Lacombe < >> francois.laco...@telecom-bretagne.eu> a écrit : >> >>> Bonsoir, >>> >>> Je souhaite savoir si dans le modèle de données retenu par OSM il est >>> possible de retrouver des objets ne possédant pas certains tags. >>> A partir d'Overpass API par exemple ? >>> >>> Dans OAPI, on peut tout a fait fixer une clause pour trouver des objets >>> qui possèdent un tag défini avec n'importe quelle valeur mais en revanche >>> le langage ne permet pas de définir le conjugué d'une telle contrainte. >>> Est-ce un "oubli" ou une lacune profonde du modèle ? >>> >>> >>> L'objet de ma question ne trouve pas d'application concrète dans OSM. >>> OSM utilise comme beaucoup d'autres systèmes une modélisation EAV pour >>> le stockage des tags dans la base de données. >>> Je cherche actuellement à mettre au point une requête SQL qui retrouve >>> des enregistrements qui ne possèdent pas certaines clés. >>> >>> >>> Merci par avance pour vos indications. >>> >>> *François Lacombe* >>> >>> francois dot lacombe At telecom-bretagne dot eu >>> http://www.infos-reseaux.com >>> >>> ___ >>> dev-fr mailing list >>> dev-fr@openstreetmap.org >>> https://lists.openstreetmap.org/listinfo/dev-fr >>> >>> >> >> >> -- >> Christian Quest - OpenStreetMap France >> Un nouveau serveur pour OSM... http://donate.osm.org/server2013/ >> >> ___ >> dev-fr mailing list >> dev-fr@openstreetmap.org >> https://lists.openstreetmap.org/listinfo/dev-fr >> >> > > ___ > dev-fr mailing list > dev-fr@openstreetmap.org > https://lists.openstreetmap.org/listinfo/dev-fr > > -- Christian Quest - OpenStreetMap France Un nouveau serveur pour OSM... http://donate.osm.org/server2013/ ___ dev-fr mailing list dev-fr@openstreetmap.org https://lists.openstreetmap.org/listinfo/dev-fr
Re: [OSM-dev-fr] Trouver des objets ne possédant pas certains tags
Bonsoir, Merci pour vos réponses. Ista, pas de soucis hain :) Concernant cette requête Overpass, ca a l'air d'être ca. Avec la négation dont je parle ci-dessous. Comme indiqué plus haut, la question ne porte pas sur un développement OSM. J'ai uniquement posé la question en imaginant que la structure de données pour stocker les tags et les mettre en relation avec les primitives était similaire à la mienne. En effet, Overpass n'utilisant pas SQL, comparer avec son implémentation n'est pas pertinent. Néanmoins, je remarque qu'ici ou ailleurs, la réponse apportée à la question reste l'élaboration de l'ensemble qui ne satisfait pas la contrainte, pour le nier ensuite. On doit donc en pratique en SQL faire des requêtes imbriquées, ce qui n'est pas très performant. Je fonctionne sous MySQL, je ne peux pas toucher immédiatement au dispositif pour utiliser des hstore sous PgSQL par exemple. Vu que c'est le retour que j'ai depuis plusieurs sources, et que les gens qui répondent à la question sont aussi plus calés que moi sur ces aspects, je vais m'en tenir à cela :) Merci et bonne soirée :) *François Lacombe* francois dot lacombe At telecom-bretagne dot eu http://www.infos-reseaux.com Le 6 décembre 2013 20:54, Christian Quest a écrit : > En SQL ça ne pose pas de problème comme indiqué par sly, en query overpass > j'ai pas trouvé. > > Pour SQL, si tu utilise des hstore très bien adaptés pour le stockage > clé=valeur ça passe aussi très bien et couplé à des index conditionnels > c'est performant. > > > Le 5 décembre 2013 22:51, François Lacombe < > francois.laco...@telecom-bretagne.eu> a écrit : > >> Bonsoir, >> >> Je souhaite savoir si dans le modèle de données retenu par OSM il est >> possible de retrouver des objets ne possédant pas certains tags. >> A partir d'Overpass API par exemple ? >> >> Dans OAPI, on peut tout a fait fixer une clause pour trouver des objets >> qui possèdent un tag défini avec n'importe quelle valeur mais en revanche >> le langage ne permet pas de définir le conjugué d'une telle contrainte. >> Est-ce un "oubli" ou une lacune profonde du modèle ? >> >> >> L'objet de ma question ne trouve pas d'application concrète dans OSM. >> OSM utilise comme beaucoup d'autres systèmes une modélisation EAV pour le >> stockage des tags dans la base de données. >> Je cherche actuellement à mettre au point une requête SQL qui retrouve >> des enregistrements qui ne possèdent pas certaines clés. >> >> >> Merci par avance pour vos indications. >> >> *François Lacombe* >> >> francois dot lacombe At telecom-bretagne dot eu >> http://www.infos-reseaux.com >> >> ___ >> dev-fr mailing list >> dev-fr@openstreetmap.org >> https://lists.openstreetmap.org/listinfo/dev-fr >> >> > > > -- > Christian Quest - OpenStreetMap France > Un nouveau serveur pour OSM... http://donate.osm.org/server2013/ > > ___ > dev-fr mailing list > dev-fr@openstreetmap.org > https://lists.openstreetmap.org/listinfo/dev-fr > > ___ dev-fr mailing list dev-fr@openstreetmap.org https://lists.openstreetmap.org/listinfo/dev-fr
Re: [OSM-dev-fr] Trouver des objets ne possédant pas certains tags
En SQL ça ne pose pas de problème comme indiqué par sly, en query overpass j'ai pas trouvé. Pour SQL, si tu utilise des hstore très bien adaptés pour le stockage clé=valeur ça passe aussi très bien et couplé à des index conditionnels c'est performant. Le 5 décembre 2013 22:51, François Lacombe < francois.laco...@telecom-bretagne.eu> a écrit : > Bonsoir, > > Je souhaite savoir si dans le modèle de données retenu par OSM il est > possible de retrouver des objets ne possédant pas certains tags. > A partir d'Overpass API par exemple ? > > Dans OAPI, on peut tout a fait fixer une clause pour trouver des objets > qui possèdent un tag défini avec n'importe quelle valeur mais en revanche > le langage ne permet pas de définir le conjugué d'une telle contrainte. > Est-ce un "oubli" ou une lacune profonde du modèle ? > > > L'objet de ma question ne trouve pas d'application concrète dans OSM. > OSM utilise comme beaucoup d'autres systèmes une modélisation EAV pour le > stockage des tags dans la base de données. > Je cherche actuellement à mettre au point une requête SQL qui retrouve des > enregistrements qui ne possèdent pas certaines clés. > > > Merci par avance pour vos indications. > > *François Lacombe* > > francois dot lacombe At telecom-bretagne dot eu > http://www.infos-reseaux.com > > ___ > dev-fr mailing list > dev-fr@openstreetmap.org > https://lists.openstreetmap.org/listinfo/dev-fr > > -- Christian Quest - OpenStreetMap France Un nouveau serveur pour OSM... http://donate.osm.org/server2013/ ___ dev-fr mailing list dev-fr@openstreetmap.org https://lists.openstreetmap.org/listinfo/dev-fr
Re: [OSM-dev-fr] Trouver des objets ne possédant pas certains tags
On 05/12/2013 22:51, François Lacombe wrote: Bonsoir, Je souhaite savoir si dans le modèle de données retenu par OSM il est possible de retrouver des objets ne possédant pas certains tags. Ca depends de ton modele. Si tu a une notion de "way" ou de "node" qui sont lié a des "tags" en SQL tu pourrait ecrire select * from way where une premiere condition and not exists (select 'bla' from tag where tag.key='truc' and tag.way_id = way.id) qui te permet de trouver les way pour lesquels il n'existe pas de tag 'truc' Note : le "not exists" peut etre couteux, ca depends des volumes de way, de tag, etc. A partir d'Overpass API par exemple ? Dans OAPI, on peut tout a fait fixer une clause pour trouver des objets qui possèdent un tag défini avec n'importe quelle valeur mais en revanche le langage ne permet pas de définir le conjugué d'une telle contrainte. Est-ce un "oubli" ou une lacune profonde du modèle ? Est ce qu'on interroge souvent le modèle OSM avec ce genre de question ? je ne pense pas. Quand on veut dessiner une carte ou utiliser les données on s’intéresse plutot a ce qui est présent, pas ce qui est absent. L'exception a la règle serait peut-être les outils de qualité de données genre osmose ou geofabrik. Osmose a par exemple une règle qui trouve les écoles n'ayant pas un tag d'ID officiel. http://osmose.openstreetmap.fr/en/error/556433378 Tu peut regarder comment ils ont fait -- JB ___ dev-fr mailing list dev-fr@openstreetmap.org https://lists.openstreetmap.org/listinfo/dev-fr
Re: [OSM-dev-fr] Trouver des objets ne possédant pas certains tags
Le 5 décembre 2013 23:14, François Lacombe < francois.laco...@telecom-bretagne.eu> a écrit : > Bonsoir Ista, Frederic, > > > Le 5 décembre 2013 23:04, Ista Pouss a écrit : > >> >> Pour l'overpass api c'est indiqué là : >> http://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide#Negation >> > > Non justement, le guide montre comment nier l'égalité (ou la ressemblance) > une valeur donnée, mais pas la présence même d'un tag. > Une clause du genre !["highway"] => Tous les objets qui ne possèdent pas > "highway" en tag. > > > > Quel total nul je fais, quelle sombre cloche je constitue quel imbécile des îles quel idiot du village, quel tartuffe de la tartinologie culturelle de geek à pizza/bières, quel gouffre de stupidité, quelle honte en public ! Et avec (node({{bbox}}); - node["highway"]({{bbox}});); out body; ? (sans le "?" ) ___ dev-fr mailing list dev-fr@openstreetmap.org https://lists.openstreetmap.org/listinfo/dev-fr
Re: [OSM-dev-fr] Trouver des objets ne possédant pas certains tags
Ca c'est la théorie, mais certains moteurs SQL admettent dans leurs index (pourvu qu'ils ne contiennent pas la restriction UNIQUE et donc acceptent d'indexer les doublons) d'inclure les valeurs NULL. On peut faire des jointures sur des valeurs NULL de façon efficace (et d'ailleurs la construction d'une jointure externe impose justement de créer un index non unique admettant des valeurs NULL, ce la se fait par tri de chaque index à joindre, et une fusion linéaire des deux dans l'index final. Ce qui est long c'est justement le fait de réaliser cette fusion de deux index si les deux index à croiser sont longs. Un moteur SQL peut aussi réaliser la fusion non pas linéairement mais par recherche indexée de l'un dans l'autre sans créer d'index temporaire, en fonction des volumétrie (possible si les deux index à croiser sont de taille très différente, et surtout si le plus petit peut tenir en peu de pages mémoire; dans ce cas le moteur fait le croisement en parcourant linéairement avec un curseur interne le plus grand et effectuant une recherche indexée sur le plus petit avant de faire ensuite l'inverse si c'est une jointure externe mixte). Une jointure externe n'est donc pas nécessairement "longue" ou "coûteuse", cela dépend des volumétries et ce n'est pas long si un des deux index est très petit, et si le moteur SQL dispose d'un optimiseur statistique capable d'estimer ces volumétries ; cela dépend aussi des formats d'index supportés, de la taille de son cache de pages en mémoire, etc. En effet, savoir si une valeur n'est pas présente dans un index a exactement le même coût que de savoir si elle y est. Les scans complets de la table complète (ou de la table ordonnée en index primaire) n'ont lieu qu'en cas d'absence totale d'index secondaire contenant la colonne recherchée (un bon optimiseur SQL ne lit pas forcément la table complète mais peut se contenter de faire un full scan d'un index secondaire contenant moins de colonnes, même si la colonne cherchée n'est pas la première, si cet index secondaire sépare maintient la séparation des colonnes (ce qui n'est pas le cas des index par hachage des colonnes combinées : le format de l'index joue un rôle sur le fait qu'un moteur pourra l'utiliser ou pas). Enfin le choix des index peut varier d'une requête à l'autre en fonction des éléments cherchés et de leur sélectivité estimée (autrement dit le moteur peut estimer la sélectivité d'une clé sans parcourir l'index entier, s'il gère dans la racine de son index des statistiques de sélectivité par "tranche" de valeurs, et si ces statistiques sont maintenues à jour, ce qui en général n'est pas instantané en cas de modification des contenus, car cette mise à jour à un coût lors des insertions, mises à jour ou suppression d'éléments dans une table et est souvent fait en arrière-plan, soit par une tâche programmée, soit lorsque le moteur dispose de ressources pour une tâche non prioritaire en file d'attente. Les plans d'exécution effectifs pour une même requête avec les mêmes contenus dans les tables et les même paramètres de requête peuvent donc varier dans le temps en fonction de ces mises à jour des statistiques de sélectivité). Mais si on emploie MySQL qui n'a pas de tel optimiseur statistique, alors oui les jointures externes peuvent être coûteuses car les plans d'exécution statiques ne sont pas optimum. car pas évolutifs selon les sélectivités dynamiques. De ce point de vue-là, PostgreSQL est bien meilleur que MySQL qui reste un moteur un peut trop simpliste où toute l'optimisation se fait manuellement, selon la façon dont on a directement écrit la requête, sans utiliser de table dynamique de sélectivité des clés pour chiosir parmi plusieurs plans alternatifs lequel sera le plus optimal: pour les jointures externes, MySQL ne sait pas faire autre chose que des scans complets et le plus souvent uniquement sur les tables primaires et non sur les index secondaires possibles pourtant plus petits (ça explique aussi la lourdeur d'écriture des requêtes en MySQL dès qu'on fait des jointures externes car il faut tout lui expliquer manuellement, il n'a pas d'autonomie pour faire son choix dynamiquement comme peut le faire Oracle par exemple). MySQL reste une version très "light" d'Oracle (un peu trop à mon goût), même si Oracle l'a amélioré depuis l'acquisition de Sun (auteur initial de MySQL) mais sans trop investir dessus. Le 5 décembre 2013 23:05, Frédéric Rodrigo a écrit : > Le 05/12/2013 22:51, François Lacombe a écrit : > > Bonsoir, >> >> Je souhaite savoir si dans le modèle de données retenu par OSM il est >> possible de retrouver des objets ne possédant pas certains tags. >> A partir d'Overpass API par exemple ? >> >> Dans OAPI, on peut tout a fait fixer une clause pour trouver des objets >> qui possèdent un tag défini avec n'importe quelle valeur mais en >> revanche le langage ne permet pas de définir le conjugué d'une telle >> contrainte. >> Est-ce un "oubli" ou une lacune profonde du modèle ? >> >> >> L'objet de
Re: [OSM-dev-fr] Trouver des objets ne possédant pas certains tags
Le jeudi 05 décembre 2013 22:51:12, François Lacombe a écrit : > Bonsoir, Bonsoir, > Je souhaite savoir si dans le modèle de données retenu par OSM il est > possible de retrouver des objets ne possédant pas certains tags. A supposer donc que ça soit théorique comme questionnement. C'est pas clair pour moi tout ça, de quel "modèle retenu par OSM" tu parles ? Celui des noeuds/ways/relation avec des tags ? Le modèle ne me semble pas empêcher ta demande, charge à celui qui veut le faire de trouver le bon format de stockage et le bon algo. Je dois pas bien comprendre la question... > Je cherche actuellement à mettre au point une requête SQL qui retrouve des > enregistrements qui ne possèdent pas certaines clés. Là, c'est du concret ? ou on est toujours dans les nuages du théorique ? Si tu veux te fixer sur l'utilisation de SQL (juste avant tu disais "avec overpass par exemple, mais overpass n'utilise pas SQL) il te reste à trouver un schéma (structure de base de donnée le permettant) Le schéma tout fait tout prêt avec convertisseur .osm -> sql de osm2pgsql te permet un truc genre : "select * from planet_osm_line where highway is NULL" ça te sort tous les chemins qui n'ont pas de tag highway -- sly (sylvain letuffe) http://wiki.openstreetmap.org/wiki/User:Sletuffe ___ dev-fr mailing list dev-fr@openstreetmap.org https://lists.openstreetmap.org/listinfo/dev-fr
Re: [OSM-dev-fr] Trouver des objets ne possédant pas certains tags
Bonsoir Ista, Frederic, Le 5 décembre 2013 23:04, Ista Pouss a écrit : > > > Pour l'overpass api c'est indiqué là : > http://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide#Negation > Non justement, le guide montre comment nier l'égalité (ou la ressemblance) une valeur donnée, mais pas la présence même d'un tag. Une clause du genre !["highway"] => Tous les objets qui ne possèdent pas "highway" en tag. Le 5 décembre 2013 23:05, Frédéric Rodrigo a écrit : > > Il faut utiliser un jointure externe ("left join" en sql) sur ton tag s'il > est dans une table de jointure ou IS NULL si c'est une colonne ou un > hstore... tu ne donnes pas le schéma que tu utilises... > Non je ne donne pas le modèle parce que je ne me serais pas permis d'utiliser cette liste pour un problème qui ne concerne pas OSM directement. Les tags sont bien dans une table de jointure (double jointure même, c'est une relation n:n). Le modèle est là, avec quelques détails sur le problème si certains souhaitent s'y pencher. http://www.developpez.net/forums/d1398546/bases-donnees/mysql/requetes/recherche-nulle-modele-eav/#post7601284 > Pourquoi OAPI ne le fait pas ? Sûrement parce que ça coute cher. Pour > trouver une données indexé il faut chercher dans l'index. Pour trouver une > absence de données, il faut regarder partout. > Je me faisais la réflexion que je n'avais pas vu beaucoup de systèmes implémenter cette fonctionnalité... et je voulais voir si OSM était l'exception qui confirme la règle. Cordialement, *François Lacombe* francois dot lacombe At telecom-bretagne dot eu http://www.infos-reseaux.com ___ dev-fr mailing list dev-fr@openstreetmap.org https://lists.openstreetmap.org/listinfo/dev-fr
Re: [OSM-dev-fr] Trouver des objets ne possédant pas certains tags
Le 5 décembre 2013 22:51, François Lacombe < francois.laco...@telecom-bretagne.eu> a écrit : > > Je souhaite savoir si dans le modèle de données retenu par OSM il est > possible de retrouver des objets ne possédant pas certains tags. > A partir d'Overpass API par exemple ? > > Pour l'overpass api c'est indiqué là : http://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide#Negation Cordialement. ___ dev-fr mailing list dev-fr@openstreetmap.org https://lists.openstreetmap.org/listinfo/dev-fr
Re: [OSM-dev-fr] Trouver des objets ne possédant pas certains tags
Le 05/12/2013 22:51, François Lacombe a écrit : Bonsoir, Je souhaite savoir si dans le modèle de données retenu par OSM il est possible de retrouver des objets ne possédant pas certains tags. A partir d'Overpass API par exemple ? Dans OAPI, on peut tout a fait fixer une clause pour trouver des objets qui possèdent un tag défini avec n'importe quelle valeur mais en revanche le langage ne permet pas de définir le conjugué d'une telle contrainte. Est-ce un "oubli" ou une lacune profonde du modèle ? L'objet de ma question ne trouve pas d'application concrète dans OSM. OSM utilise comme beaucoup d'autres systèmes une modélisation EAV pour le stockage des tags dans la base de données. Je cherche actuellement à mettre au point une requête SQL qui retrouve des enregistrements qui ne possèdent pas certaines clés. Merci par avance pour vos indications. Il faut utiliser un jointure externe ("left join" en sql) sur ton tag s'il est dans une table de jointure ou IS NULL si c'est une colonne ou un hstore... tu ne donnes pas le schéma que tu utilises... Pourquoi OAPI ne le fait pas ? Sûrement parce que ça coute cher. Pour trouver une données indexé il faut chercher dans l'index. Pour trouver une absence de données, il faut regarder partout. Frédéric. ___ dev-fr mailing list dev-fr@openstreetmap.org https://lists.openstreetmap.org/listinfo/dev-fr
[OSM-dev-fr] Trouver des objets ne possédant pas certains tags
Bonsoir, Je souhaite savoir si dans le modèle de données retenu par OSM il est possible de retrouver des objets ne possédant pas certains tags. A partir d'Overpass API par exemple ? Dans OAPI, on peut tout a fait fixer une clause pour trouver des objets qui possèdent un tag défini avec n'importe quelle valeur mais en revanche le langage ne permet pas de définir le conjugué d'une telle contrainte. Est-ce un "oubli" ou une lacune profonde du modèle ? L'objet de ma question ne trouve pas d'application concrète dans OSM. OSM utilise comme beaucoup d'autres systèmes une modélisation EAV pour le stockage des tags dans la base de données. Je cherche actuellement à mettre au point une requête SQL qui retrouve des enregistrements qui ne possèdent pas certaines clés. Merci par avance pour vos indications. *François Lacombe* francois dot lacombe At telecom-bretagne dot eu http://www.infos-reseaux.com ___ dev-fr mailing list dev-fr@openstreetmap.org https://lists.openstreetmap.org/listinfo/dev-fr