OpenStreetMap

Ein Semikolon in opening_hours hat Folgen

Posted by kreuzschnabel on 6 July 2017 in German (Deutsch)

Es ist gut, dass wir Öffnungszeiten in OSM erfassen. Echtzeit-Navi-Anwendungen wie OsmAnd markieren in den Suchergebnissen gleich, welche Einrichtungen geöffnet sind und welche nicht.

Das Schema, nach dem die Zeiten angegeben werden, ist allerdings einigermaßen komplex, und einer der beliebtesten Fehler ist das falsch gesetzte Semikolon. Ich habe schon viele davon ausgemerzt (und in meiner Anfangszeit einige selbst gesetzt, ich bin keineswegs besser!).

Deshalb die erste Regel: Benutz im Zweifelsfall immer das evaluation tool. Da kannst du oben eine Kalenderwoche aussuchen, darunter dein opening_hours-Konstrukt eingeben, und dann wird dir übersichtlich angezeigt, wann demnach offen und wann zu ist. Du kannst den String auch gleich da überarbeiten und dann mit copy&paste ins OSM-Tag übernehmen.

Das oben angesprochene falsche Semikolon schleicht sich immer gern dann ein, wenn nur wenige Wochentage von einem ansonsten festen Schema abweichen – nehmen wir an, Montag bis Samstag ist 08:00-12:00, Dienstag und Donnerstag zusätzlich 14:00-18:00 geöffnet.

Elegant ist es, je eine Regel für die Vormittags- und für die Nachmittagszeiten anzugeben, und ganz schnell hat man dann so was getippselt:

opening_hours = Mo-Sa 08:00-12:00; Tu,Th 14:00-18:00

… und ist schon reingefallen. Erklärung: Eine mit Semikolon abgetrennte Regel bedeutet eine vollkommen neue Angabe, wird also als „nur dann geöffnet“ interpretiert und macht damit die gerade genannten Vormittagszeiten am Dienstag und Donnerstag gleich hinterrücks wieder ungültig. Aus OSM-Sicht ist diese Einrichtung dienstags und donnerstags jetzt vormittags geschlossen, denn von widersprüchlichen Regeln gilt immer die letzte.

Richtig wäre dagegen ein Komma zwischen den zwei ergänzenden Regelsätzen:

opening_hours = Mo-Sa 08:00-12:00, Tu,Th 14:00-18:00

… auch wenn das irgendwie komisch aussieht, weil das Komma ja auch die Wochentage trennt. Auf Nummer Sicher geht natürlich, wer die Wochentage einzeln aufzählt:

opening_hours = Mo,We,Fr 08:00-12:00; Tu,Th 08:00-12:00,14:00-18:00

Das ist etwas weniger elegant, weil die Vormittags-Öffnungszeit in beiden Regeln steht, aber hier überschreibt sich nichts. Das funktioniert auf jeden Fall, und hier ist das Semikolon richtig, es sind ja zwei unabhängige Regelsätze für unterschiedliche Wochentage.

Andererseits kann man sich das Überschreiben durch einen neuen Regelsatz sogar zunutze machen, indem man die geschlossenen Nachmittage aus einer zu reichlichen Angabe nachträglich „ausschneidet“, mit einer off-Regel:

opening_hours = Mo-Fr 08:00-12:00,14:00-18:00; Mo,We,Fr 14:00-18:00 off

funktioniert auch. Hier ist das Semikolon richtig, die off-Regel überschreibt wegen ihrer Zeitangabe nur die Nachmittage.

Es gibt also mehrere richtige Wege, so was einzutragen, leider auch einige falsche.

Ein zweiter beliebter Fehler betrifft die Regelung „oder nach Vereinbarung“, englisch „on appointment“. Das wird hinten dran gesetzt, aber nicht mit Semikolon (dann würde es alle anderen Regeln überschreiben und nur „nach Vereinbarung“ gelten), sondern mit zwei senkrechten Strichen || abgetrennt – das heißt „zu allen anderen Zeiten gilt das hier“.

Es ist nicht ganz einfach, deshalb trifft man mich auch oft noch auf dem evaluation_tool an. Ist keine Schande.

Und denkt bitte immer an die Feiertage – an alles, was feiertags geschlossen ist, gehört ein PH off hinten dran, mit Semikolon :)

Comment from Harald Hartmann on 6 July 2017 at 14:30

Als Ergänzung noch zwei aktuelle Diskussionen im deutschen Forum:

Hide this comment

Comment from MKnight on 10 July 2017 at 16:11

Und denkt bitte immer an die Feiertage – an alles, was feiertags geschlossen ist, gehört ein PH off hinten dran, mit Semikolon

Da tappt man gern auch mal in die selbe Falle, Beispiel:

Mo-Sa 20:00-04:00; Su,PH off

Da gehört ein Komma hin :)

Hide this comment

Comment from kreuzschnabel on 10 July 2017 at 16:25

Wenn man den Su nochmal extra aufführen will, gehört da ein Komma hin, ja :) oder separate Regeln: Su off; PH off.

Hide this comment

Comment from MKnight on 10 July 2017 at 19:18

Eben nicht, ;Su off sagt, dass Samstag nur bis 24 Uhr auf ist.

(Das evaluation-tool hat da momentan übrigens einen Bug, es rendert in dem Falle auch das Komma als überschreibend)

Hide this comment

Comment from MKnight on 10 July 2017 at 19:19

(Edit: das selbe gilt in dem Falle für PH)

Hide this comment

Leave a comment

Parsed with Markdown

  • Headings

    # Heading
    ## Subheading

  • Unordered list

    * First item
    * Second item

  • Ordered list

    1. First item
    2. Second item

  • Link

    [Text](URL)
  • Image

    ![Alt text](URL)

Login to leave a comment