Grundprinzipien

Um dem ursprünglichen Ziel von GTFS Realtime gerecht zu werden, wurden einige Grundprinzipien festgelegt, die beim Erweitern der Spezifikation zu berücksichtigen sind:

Feeds sollten leicht zu erstellen und zu bearbeiten sein.

Wir haben das CSV-Format als Grundlage für die Spezifikation gewählt, da es sich mit Tabellenkalkulationsprogrammen und Texteditoren einfach darstellen und bearbeiten lässt. Das ist insbesondere für kleinere Betreiber nützlich. Außerdem kann dieses Format mit den meisten Programmiersprachen und Datenbanken sehr einfach erstellt werden, was für Publisher größerer Feeds gut ist.

Feeds sollten einfach geparst werden können.

Feedreader sollten die gesuchten Informationen mit minimalem Aufwand extrahieren können. Änderungen und Ergänzungen des Feeds sollten möglichst vielseitig verwendbar sein, um die Anzahl der Codepfade zu minimieren, die Reader des Feeds implementieren müssen. Der einfacheren Erstellung sollte jedoch Vorrang eingeräumt werden, da es letztlich mehr Feed-Publisher als Feedreader gibt.

Änderungen an der Spezifikation sollten abwärtskompatibel sein.

Wenn der Spezifikation neue Funktionen hinzugefügt werden, möchten wir vermeiden, dass bestehende Feeds durch diese Änderungen ungültig werden. Vorhandenen Feed-Publishern sollte kein zusätzlicher Aufwand entstehen, es sei denn, sie möchten ihren Feeds neue Funktionen hinzufügen. Außerdem sollten Parser nach Möglichkeit weiterhin die älteren Segmente neuerer Feeds lesen können.

Von spekulativen Funktionen wird abgeraten.

Durch jede neue Funktion wird das Erstellen und Lesen von Feeds komplexer. Deshalb möchten wir nur neue Funktionen hinzufügen, von denen wir wissen, dass sie nützlich sind. Idealerweise werden alle Vorschläge getestet, indem Daten für ein Verkehrssystem in der realen Welt generiert wurden, das die neue Funktion nutzt, und Software zum Lesen und Darstellen dieser Daten entwickelt wird. Das GTFS-Format lässt sich einfach erweitern, indem zusätzliche Spalten und Dateien hinzugefügt werden, die von offiziellen Parsern und Validatoren ignoriert werden. So können ganz einfach Prototypen für Vorschläge erstellt und Tests mit bestehenden Feeds durchgeführt werden.