Re: [OSM-dev-fr] Trouver des objets ne possédant pas certains tags

2013-12-06 Par sujet François Lacombe
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

2013-12-06 Par sujet Christian Quest
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

2013-12-06 Par sujet François Lacombe
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

2013-12-06 Par sujet Christian Quest
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

2013-12-06 Par sujet Julien Balas

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

2013-12-06 Par sujet Ista Pouss
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

2013-12-05 Par sujet Philippe Verdy
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

2013-12-05 Par sujet sly (sylvain letuffe)
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

2013-12-05 Par sujet François Lacombe
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

2013-12-05 Par sujet Ista Pouss
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

2013-12-05 Par sujet Frédéric Rodrigo

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

2013-12-05 Par sujet François Lacombe
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