streetcomplete und opening_hours

Guten Morgen,

beim Eintragen von Öffnungszeiten mit streetcomplete 0.11 ist mir aufgefallen, dass streetcomplete zur Abtrennung der Tage ein Komma nimmt. Wenn ich mir das Wiki (http://wiki.openstreetmap.org/wiki/Key:opening_hours) anschaue, würde ich aber behaupten das ein Semikolon zu verwenden ist.
Jotam hatte dazu auch schon ein Issue mit Beispielen eröffnet, welches aber abgelehnt wurde. https://github.com/westnordost/StreetComplete/issues/305

Was haltet ihr davon? Meiner Meinung nach ist das ein Fehler und es muß es Semikolon verwendet werden.

Ciao Daniel

Ja - hier sollte Streetcomplete nachbessern, da es bei der Auiswertung zu Fehlern führen (kann).

Wenn man mit dem Mauszeiger auf die entsprechende Regel zeigt:

https://wiki.openstreetmap.org/wiki/DE:Key:opening_hours/specification#section:rule_separators

Nein, ein Smikolon ist nicht zu verwenden, da es vorherige Werte überschreibt.

Das Beispiel ist nicht gut, da es fehlerbehaftet ist (durch das PH), aber wenn man nur die normale Woche nimmt:

Bei diesem Beispiel wäre ein Semikolon ein Fehler, da es durch die Donnerstagsregel (wie die Beschreibung schon sagt) die 24:00-01:00 vom Mittwoch überschreiben würde.

Bezieht sich Dein nein auf das Beispiel von geri-oc oder ist es allgemein?

Bisher hatte ich es so verstanden
Beispiel:
Mo-Fr 08:00-18:00**;** Sa 08:00-14:00

Streetcomplete taggt aber
Mo-Fr 08:00-18:00**,** Sa 08:00-14:00

Welche Variante ist denn nun richtig?

@thetornado76

In diesem Fall ist egal, ob eine normale oder eine additive Regel genutzt wird, da es keine Überschneidungen gibt. Hier ein kleines Beispiel:

Normale Regel:

Mo-Fr 08:00-18:00; Fr 18:00-20:00

Montag bis Donnerstag 8-18 Uhr, Freitag nur (!) 18-20 Uhr, weil der Freitag durch die normale Regel überschrieben wird.

Additive Regel:

Mo-Fr 08:00-18:00, Fr 18:00-20:00

Montag bis Donnerstag 8-18 Uhr, Freitag 8-18 Uhr und 18-20 Uhr, effektiv also 8-20 Uhr. Dies wäre äquivalent zu folgenden Regeln:

Mo-Th 08:00-18:00; Fr 08:00-20:00
Mo-Th 08:00-18:00; Fr 08:00-18:00, 18:00-20:00

(Das eingeblendete im Bild zeigt den Text, wenn man auf das “,” zeigt)

Mo-We 08:00-18:00,20:00-23:00; Th-Fr 09:00-17:00,19:00-23:00; Sa-Su,PH off → richtig

Eintragen - anzeigen - 15.06. Donnerstag ist Feiertag - wird als Beispiel auch richtig dargestellt

Mo-We 08:00-18:00,20:00-23:00, Th-Fr 09:00-17:00,19:00-23:00, Sa-Su,PH off → falsch:
Fehler / Warnung:
'(Diese Regel wird als geschlossen ausgewertet aber wurde als additive Regel angegeben. Sie sollte als normale Regel mittels “;” definiert sein. Siehe https://wiki.openstreetmap.org/wiki/DE:Key:opening_hours/specification#explain:rule_modifier:closed .)

Das ist strengenommen kein Fehler. Die “Warnung” sehe ich eher als Info zum prüfen ob man es wirklich so gemeint hat. Im übrigen halte ich sie für nicht ganz eindeutig formuliert, da suggeriert wird, dass man etwas ändern muss.

http://openingh.openstreetmap.de/evaluation_tool wertet diese “falsche” Regel auch wie gewollt aus, wobei ich mir unsicher bin, ob die Auswertung falsch ist.

Dein Beispiel oben im Screenshot ist sehr ähnlich, wird aber wegen dem Semikolon nicht wie gewollt ausgewertet werden können, streng genommen besagt sie, dass Mittwoch vor Feier-Donnerstagen nur bis 24 Uhr geöffnet ist.

Hmm, ist jetzt alles geklärt?

Anstatt sich an Beispielen zu orientieren würde ich vorschlagen einmal ein Blick in die Spezifikationen zu schauen: https://wiki.openstreetmap.org/wiki/Key:opening_hours/specification

Da habe ich mich daran orientiert und ich denke (hoffe) auch jeder andere der Öffnungszeiten mit OSM implementiert hat.

Ich habe das Gefühl, das speziell die deutsche Wiki-Seite zu Öffnungszeiten da irgendwas drin hat, dass suggeriert dass “,” kein gültiger Rule-Separator ist.

Im übrigen finde ich es super wenn Alarm geschlagen wird bei wohlmöglich systematischen Tagging-Fehlern von StreetComplete. Soetwas muss so schnell wie möglich gefixt werden, da ist es okay wenn es manchmal falscher Alarm ist.

Tatsächlich habe ich Version 0.10 der App innerhalb eines Tages released weil jemandem aufgefallen war, dass ich Opening Hours anfangs genau wie einige andere hier falsch verstanden und mit “;” als Rule-Separator implementiert hatte. Siehe https://github.com/westnordost/StreetComplete/issues/108#issuecomment-299657127

Ich konnte keinen gravierenden Unterschied zwischen der deutschen oder der englischen Version finden (außer, dass die deutsche etwas übersichtlicher ist). In beiden wird ganz klar beschrieben, dass “,” eine additive Regel ist, während bei “;” vorherige Definitionen für den Tag verworfen werden. Korrekterweise müsste StreetComplete also beide Versionen nutzen, je nach Anwendungsfall. Oder halt die Regeln etwas umstrukturieren (wie in meinen Beispielen oben).

Ich finde das Beispiel in #5 sehr erhellend :wink: allerdings sind alle Beispiele mit “Ein_Tag Zeit1 (; oder ,) Ein_anderer_Tag Zeit2” tatsächlich eher sinnlos, weil da macht ; und , keinen Unterschied. Zum Spielen würde ich mit Beispiele wie “Mo-Fr 08:00-18:00, Tu 20:00-22:00” suchen, das macht den Unterschied deutlicher.

Es gibt halt einfach kein “richtig” oder “falsch”, vermutlich kann man auch jede Öffnungszeit auf beide Weisen darstellen.

Nein, eben nicht, siehe die Grafik in #2, die Regel ist falsch.
Edit: Nicht DIE Regel, sondern das komplette Regelset, siehe #3

Ich finde, dass die unterschiedliche Separatoren sinnvoll sind und habe mich auch danach gerichtet:
“;” trennende Wirkung - “,” verbindende Wirkung

Montag-Sonnabend 08:00-13:00 und 15:00-18:00
Sonntag und Feiertag 07:00-11:00

Mo-Sa 08:00-13:00,15:00-18:00; Su,PH 07:00-11:00
→ richtig
Mo-Sa 08:00-13:00,15:00-18:00;
Su,PH 07:00-11:00

Mo-Sa 08:00-13:00; 15:00-18:00; Su,PH 07:00-11:00
→ nicht direkt falsch - aber sinn entstellter Separator (trennend)
Mo-Sa 08:00-13:00;
15:00-18:00;
Su,PH 07:00-11:00

Mo-Sa 08:00-13:00, 15:00-18:00, Su,PH 07:00-11:00
→ mappt so die APP?
erzeugt falsche Öffnungszeiten am Feiertag und Sonntag

Überprüft doch die Werte mit
http://openingh.openstreetmap.de/evaluation_tool/

PS: übrigens finde ich es als falsch, wenn Sonntag oder Feiertag geschlossen ist und dies nicht eingetragen - sondern einfach weggelassen wird. Dies betrifft auch Angaben mit Ferientage …

Ja, hast recht. kürzere Öffnungszeiten an Feiertagen bekommt man mit Kommas alleine gar nicht hin und Öffnungszeiten über Mitternacht hinaus werden ein bisschen verwirrend: “We 20:00-01:00, Th 09:00-12:00” = “We 20:00-24:00; Th 00:00-01:00,09:00-12:00” :wink:

in diesem Falle ja, bei Mitternacht überschreitenden Werten mit 90%iger Sicherheit falsch.

Wow. DAS war mir bis eben nicht bekannt. Ich tippe auf einen Fehler im Evaluation tool, aber ich geh erstmal Spec rumsuchen, was die zu dem Leerzeichen sagt.
Edit: ok, das Leerzeichen bedeutet garnix ;15-18 überschreibt hier komischerweise gar nicht (auch ohne Leerzeichen), vlt. erklärts mir jmd.

Yup, der Wert “sollte” geändert werden, weil additive Regeln die als geschlossen ausgewertet werden nicht additiv sind (im landläufigen Sinne). Da tut es auch ein normales Semikolon. Englisch und die deutsche Übersetzung verwenden beide “sollte”.

Scheint richtig ausgewertet zu werden.

Wow. Das ist so nicht beabsichtigt. 15:00-18:00 sollte die vorherige Regel komplett überschreiben. Scheint ein Fehler in opening_hours.js zu sein. https://github.com/opening-hours/opening_hours.js/issues/231

@SammysHP OK wieder was gelernt. Danke für das schöne Beispiel.

Was ist denn der Vorteil, wenn ich mappe Su off? Ist dies nicht implizit gegeben, wenn ich nur Öffnungszeiten von Mo-Sa eintrage?

Das ja, aber vollständig ist immer besser. Und heute ist Th, und in halb Deutschland hat alles dicht. An PH immer denken.

–ks