Hallo Weide,
Tipp für andere Foristen: Fangt oben auf Weides Userpage an zu lesen.
Auch es nichts mit deinem Vorschlag zu tun hat – die Vergleichstabelle finde ich richtig gut!
Aber nun zu deinem Vorschlag
(1) Du möchtest eine Rolle für die Relationsmitglieder einführen, die ein Stück des Fahrwegs repräsentieren.
(2) Das Tagging von Routen ist in großen Teilen vom bisherigen Tagging verschieden. Charakteristisch ist “p3”. Das fängt schon beim wichtigsten aller Relationstags an, dem type=*. Du schlägst type=p3 statt type=route vor, damit die Routen, die nach deinem Vorschlag gemappt werden, von nicht angepassten Programmen nicht ausgewertet werden.
(3) Bei PTv2 sind die möglichen Verkehrsmittel auf ein enges Set beschränkt, welches u.a. keine light_rail enthält. Du schlägst stattdessen kind=rail/road/water/other vor und überlässt die Einführung von Subtags der künftigen Entwicklung.
(4)In deinem Schema müssen nicht mehr sowohl stop als auch platform in die Routenrelation. Stattdessen kommen nur noch Bahnsteige/Wartebereiche mit der Rolle halt hinein. Wenn eine Station einen mehrteiligen Bahnsteig hat (z.B. ein Teil des Bahnsteigs liegt auf einer Brücke), dann bekommt der zweite/dritte Bahnsteigteil die Rolle +halt. Bahnsteige der Spanischen Lösung bekommen die Rolle halt#. Wenn man die Plattform nicht kennt (z.B. weil Grasbahnsteig im hohen Gras oder von Bäumen verdeckter Bahnsteig), dann fügt man bei PTv2 nur die stop_position ein. Bei dir muss man dann die stop_position einfügen und ihr die Rolle halt_fixme zuweisen.
(5) Wenn eine Linie eine Schleife fährt, dann sollten die Schleifenstücke mit den Rollen tour_ccw und tour_cw in die Relation aufgenommen werden.
(6) Für die Routen schlägst du noch optionale Zusatztags wie next_ref, prev_ref, var_ref, active usw. vor.
(7) Dein Schema trennt zwischen den bekannten Stop-Area-Relationen und “Gesamthaltestellen”. Sobald eine Steig-/Bahnsteignummernkollision droht (z.B. Gleisnummer der U-Bahn-Station mit der Gleisnummer im DB-Teil des Bahnhofs), sind zwei getrennte Stop-Area-Relationen anzulegen. Eine Gesamthaltestellen-Relation verbindet dann alle Teilhaltestellen.
(8) Um die Abwärtskompatibilität zu wahren, schlägst du vor, währen einer Übergangszeit zwei Routenrelationen zu pflegen.
Meine Meinung
(1) Ich habe die leere Rolle bisher nicht als Problem wahrgenommen. Ich glaube, dass eher JOSM das Problem ist, weil er das anmeckert.
(2) Bisher gibt es das (von JOSM/JOSM-Entwicklern vorgeschlagene) public_transport:version=2, welches aber bloß von den Programmen ausgewertet wird, die auch danach suchen. Programme, die vor Urzeiten geschrieben wurden und seither verstaubt sind, tun das nicht und interpretieren PTv2-Routen als PTv1-Route. Das ist in meinen Augen gar nicht so schlimm. Die mir bekannten Tools, die nicht mit PTv2 (oder das ca. 2010/2011 diskutierten Oxomoa-Schema, welches zurückgezogen wurde bzw. in PTv2 aufging) auswerten, widmen sich i.d.R. nur der grafischen Darstellung von Routen.
Eine Unterscheidung benötigen zwischen PTv2 und deinem Entwurf nur bei Routenrelationen. Alle anderen Bereiche könnte man beim bestehenden Tagging lassen und damit Arbeit einsparen. Denn bloßes Ergänzen von p3*=* ist keine Tätigkeit, mit der man Mapper hinter dem Ofen hervorlocken kann.
(3) Diese Flexibilität gefällt mir. Dafür braucht es aber kein grundlegend anderes Schema. Das liese sich jedoch auch an PTv2 anflanschen (z.B. mit type=route, route=train, route:train=tram+train für Zwitter wie die Karlsruher Zweisystemstadtbahnen). Man kann allen komischen Verkehrsmitteln (Rufbus, Schwebebahn, Transrapid usw.) immer irgendein ähnliches System zuordnen.
(4) Mir gefällt das nicht. Derzeit kann der Relationseditor in JOSM (bzw. auch jeder andere Editor könnte es, wenn er es könnte) anhand der Tags des einzufügenden Objekts entscheiden, ob er ihm automatisch die Rolle stop oder platform zuweist. Wenn ich mehrere Bahnsteige an einer Station habe, dann ist im PTv2 die Reihenfolge egal. Mit deinem Schema kann der Editor nicht automatisch eine Rolle vorschlagen. Was die Zerbrechlichkeit angeht, gibt sich das mit PTv2 aber nichts. Wenn ich von einem dreigeteilten Bahnsteig (Damm–Brücke–Damm), den ersten Teil entferne, dann werden mit deinem Schema die beiden übrigen Teile der vorherigen Station zugeordnet. Bei PTv2 muss man hingegen eine stop_position aus der Route entfernen und schon hat man eine Fehlzuordnung. Für mich rechtfertigt das kein neues Schema.
Stattdessen handelst du dir durch den Verzicht auf die stop_positions weitere Probleme ein. Eine stop_position im Straßenway signalisiert dem Pkw-Router, dass da ein Bus anhalten und den Autofahrer zum Halten zwingen könnte (ich kenne noch kein Tag wie bus_passing_place=yes). Im Schienenverkehr (im Busverkehr nur auf Busbahnhöfen mit einer langen Bussteigkante) spielen Haltepositionen eine wichtige Rolle.
Ob meine kurze Regionalbahn in Köln Hbf (Gleis 4/5 486 m) [1], Essen Hbf (Gleis 7, ca. 685 m = ca. 27 Wagen [2]) oder Gößnitz (588 m)) vorn oder hinten am Bahnsteig steht, macht für das Routing beim Umsteigen einen großen Unterschied (1,5 Min./100m bei 4 km/h!). Daher möchte man im Bahnverkehr die Halteposition mit erfassen und in die Route aufnehmen, wenn sie konstant ist bzw. konstant von der selben Routenvariante genutzt wird.
Im Proposaltext von PTv2 findet man übrigens auch das Argument für die Einführung der stop_position – kürzere Verarbeitungszeiten für Auswerter, da man kein Lot mehr auf den Fahrweg fällen muss. Im Rahmen der Qualitätssicherung kann man ja den Abstand von stop_positon und platform (bei Flächen die Außenkante) bestimmen. Wenn dieser das verkehrsmitteltypische Maß überschreitet (Bahnoffset = Lichtraumprofil + 1 Meter Bing-Ungenauigkeit, Busoffset = lanes/2 + 3 m (für Radweg auf dem Bürgersteig zwischen Bordstein und Wartehäuschen)), dann kann ein Validator Alarm schlagen.
(5) Das gefällt mir. An das Problem habe ich bisher noch gar nicht gedacht.
(6) Die Gedanken hinter dem Zusatztags kann ich nachvollziehen. Dafür braucht es aber keine PTv3.
(7) Das gefällt mir. Im Oxomoa-Schema gab es auch ein Gesamthaltestellen-Konstrukt. Diese war aber deutlich komplexer und sehr abstrakt. Seine Mitglieder waren die einzelnen Stop-Area-Relationen, also eine Relation, die Relationen referenziert hat.
Du schreibst: “Die räumliche Zuordnung zum Gebiet (z.B. Bäckerei im Bahnhof) ist kein Grund zur Aufnahme des Objekts in die Relation.” Dem kann ich voll und ganz zustimmen. In Haltestellenrelationen und Gesamthaltestellenrelationen sollten nur Bahnsteige, Haltepositionen, Stationsnode und andere ÖPNV-Kernelemente sein, keine Bäcker, Sitzbänke und Fahrkartenschalter!
(8) Das nenne ich mal Optimismus! Ich habe meine Zweifel, wie lange das gut geht. Wann endet die Übergangszeit? Wie wird man hier reagieren, wenn nach einem Jahr Umstellung ich ankündigen würde, die ersten alten Routen zu löschen, und ein Nutzer sich hier meldet mit dem Argument “Meine Software kann das aber noch nicht.”. Warten wir dann noch länger? ÖPNV ist ein schwieriges Thema. Man kann die Abwärtkompatibilität nicht immer ermöglichen. Wer sich auf kostenlose Daten verlässt, muss damit leben, dass er sich dann an die Daten anpassen muss. So ist das halt. OSM bietet auch keine Premium-Extrakte für Navihersteller an.
Zusammenfassung
Eigentlich gibt es nur drei Gründe, weshalb du einen Entwurf für PTv3 geschrieben hast. Du möchtest allen Mitgliedern eine Rolle zuweisen, Schleifen im Fahrweg erfassen und stop_positions nicht mehr in der Route haben. Sorry, dass ich dir deinen zweiten Entwurf für eine Public-Transport-Reform zerede, aber ich frage mich, ob das den Aufwand einer erneuten Umstellung rechtfertigt. Die Schleifen sind das einzige, was ich für wichtig halte und mit dem Proposaltext von PTv2 inkompatibel ist. Alles andere kann man abwärtskompatibel “anflanschen”.
Können wir uns darauf einigen, erst einmal die Wochenaufgabe voranzutreiben? Danach werde ich dann mit der light_rail-Frage auf der Tagging-Liste aufkreuzen. Roland hat Recht, eins nach dem anderen.
Viele Grüße
Michael
PS Meinst du mit “einfacher als der letzte” den da?
[1] Doppelbelegung durch mehrere Züge hintereinander
[2] Mehr als 12 bis 14 Wagen haben selbst die längsten Reisezüge nicht.