[Talk-de] XAPI-Erweiterung mit logischem OR und Vergleichsoperator IsNotEqualTo
Stefan Keller
sfkeller at gmail.com
So Apr 15 22:09:40 UTC 2012
Hallo OSM-Entwickler
Ich möchte gerne die offenbar immer noch sehr beliebte XAPI-Syntax [1]
erweitern und vervollständigen. Damit würde es mehr an die Mächtigkeit
von OGC's Filter Encoding (vgl. [2]) kommen (das übrigens in [3] für
OpenStreetMap-Daten implementiert ist).
Von den logischen Operatoren kennt es meines Wissens nur ein
implizites AND (Bsp.: ?xapi=node[key1=value1]node[key2=value2]). Das
OR (bzw. UNION, wie sie es nennen) gibt es nur für values (Bsp.:
?xapi=node[amenity=restaurant|bar]) und das NOT gibt es nur für "Child
Element Predicates" (Bsp.: ?xapi=node[not(tag)]). Es fehlen OR und
NOT.
Und von den möglichen Vergleichsoperatoren (IsBetween, IsEqualTo,
IsLessThan, IsGreaterThan, IsLessThanOrEqualTo,
IsGreaterThanOrEqualTo, IsNotEqualTo, IsNull, IsLike) kennt es nur
"=", also IsEqualTo (Bsp.: ?xapi=node[amenity=restaurant]).
Von einer Diskussion auf OSM-Dev inspiriert schlage ich folgende
Erweiterungen vor:
1) Logischer Operator OR ist "|" (analog "union" operator für values):
Bsp.: ?xapi=node[amenity=restaurant]|[tourism=office]
2) Vergleichsoperator IsNotEqualTo ist "!="
Bsp.: ?xapi=node[cuisine!=pizza]
3) weitere denkbare Vergleichsoperatoren analog 2), also z.B. "<"
"<=", etc. (siehe oben).
Was meint ihr dazu?
LG, S.
[1] http://wiki.openstreetmap.org/wiki/XAPI#Tag_Predicates
[2] http://www.opengeospatial.org/standards/filter
[3] OpenPOIMap (Schweiz) - http://openpoimap.ch
Mehr Informationen über die Mailingliste Talk-de