[Talk-de] Fragen zur Overpass API-Syntax

Stefan Keller sfkeller at gmail.com
Di Apr 17 06:22:21 UTC 2012


Hallo Peter

Am 16. April 2012 00:19 schrieb Peter Wendorff <wendorff at uni-paderborn.de>:
> Hallo Stefan.
> Ich schlage vor, du liest dir mal in Ruhe die Dokumentation zur Overpass
> Query Language durch.
> Die Overpass-API ist nicht die XAPI, sie bietet einen Kompatibilitätsmodus
> an.
> Die Overpass-API kann aber mehr - und irgendwie finde ich das dann schon
> logisch, dass das nicht unbedingt konsistent zur XAPI-Syntax ist.
>
> Roland hat, wenn ich mich richtig erinnere, in mindestens einem Blogpost
> oder Vortrag letztens die Overpass Query Language vorgestellt und begründet,
> warum die sinnvoll und richtig ist.
>
> Wenn Du dir die Doku durchliest, solltest du auch verstehen, warum da ein
> Semikolon nicht falsch ist, was out; bedeutet.
>
> Da der ganze Kram hinter data EIN Parameter, und zwar eine Befehlsfolge in
> der Overpass-Query-Language ist, ist das durchaus so "In REST üblich", denn
> es sind eben nicht mehrere Parameter, die man durch & trennen könnte.
>
> Gruß
> Peter

Habe nun im Language Guide nachgeschaut und sehe, dass es bei Overpass
offenbar neu gleich dreikommafünf Query Languages gibt: XML,
pretty/concise QL sowie den "XAPI Kompatibilitätslayer" [1].

Da sind u.a. Operatoren erwähnt, ohne sie zu definieren: Ich vermute
'~' ist der POSIX  Regex-Op. Das passt zu meiner Anfrage im anderen
Thread zur Erweiterung von XAPI.

Warum es das out braucht und warum "out" eine mit ";" zusammengepeppte
Befehlsfolge mit den anderen Befehlen sein soll, ist mir immer noch
unklar. Aus der XML Sprache (soweit sie informell definiert ist) geht
das m.E: jedenfalls nicht hervor.

Ich frage mich immer noch, warum man nicht besser bestehende Query
Sprachen wie XAPI und SQL (bzw. OGC's OQL) nimmt und ausbaut, anstelle
eine eigene zu entwickeln? Alle haben nämlich das ähnliche Problem,
dass sie verschiedenartige Queries effizient beantworten müss(t)en,
wie "Alle Berggipfel in der DB" versus "Sämtliche Daten innerhalb der
BBOX" (vielleicht liest ja Roland mit)?

LG, S.

[1] http://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide

> Am 16.04.2012 00:19, schrieb Stefan Keller:
>>
>> Hallo
>>
>> Auf der Suche nach einer erweiterten XAPI-Syntax mit logischem
>> Operator OR und Vergleichsoperator IsNotEqualTo (vgl. anderer Thread)
>> hat mich jemand auf OSM-Dev auf das Overpass API hingewiesen und
>> folgende Vorschläge gemacht:
>>
>> Logischer Operator OR:
>>>
>>> 1)
>>> (node["name"="Lichtscheid"];node["name"="Müngstener Straße"]);out;
>>>
>>> full
>>> URL:<http://overpass-api.de/api/interpreter?data=way%5B%22highway%22%21%3D%22residential%22%5D%2850%2E7%2C7%2E1%2C50%2E701%2C7%2E101%29%3Bout%3B>
>>
>> Vergleichsoperator IsNotEqualTo:
>>>
>>> 2)
>>> way["highway"!="residential"](50.7,7.1,50.701,7.101);out; [2]
>>>
>>> full
>>> URL:<http://overpass-api.de/api/interpreter?data=way%5B%22highway%22%21%3D%22residential%22%5D%2850%2E7%2C7%2E1%2C50%2E701%2C7%2E101%29%3Bout%3B>
>>
>> Zu 1)
>> * Warum diese Klammern und Anführungszeichen?
>> Mind. die Anführungszeichen sind überflüssig und nicht kompatibel mit
>> XAPI.
>> * Warum Strichpunkt zwischen Tags?
>> Ist das der logische OR-Operator?
>>
>> Zu 2)
>> * Warum "out" und warum ein Semicolon davor?
>> Wenn schon dann das für Parameter-Trennung übliche&  davor und ein
>>
>> sinniger, in REST üblicher, Parametername "format", also z.B.
>> "&format=xml".
>> * Warum die BBOX in Klammern?
>> Dafür gibt es in XAPI extra den Parameter "bbox" (also z.B.
>> "[bbox=left,bottom,right,top]"
>>
>> Diese Syntax finde ich ein wenig verwirrlich und nicht RESTful - oder
>> habe ich da etwas noch nicht verstanden?
>>
>> -S.
>>
>> _______________________________________________
>> Talk-de mailing list
>> Talk-de at openstreetmap.org
>> http://lists.openstreetmap.org/listinfo/talk-de
>>
>
>
> _______________________________________________
> Talk-de mailing list
> Talk-de at openstreetmap.org
> http://lists.openstreetmap.org/listinfo/talk-de




Mehr Informationen über die Mailingliste Talk-de