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 Verkehrsverbünde 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.

Feed-Leser sollen die gesuchten Informationen mit minimalem Aufwand extrahieren können. Änderungen und Ergänzungen des Feeds sollten so allgemein nützlich wie möglich sein, um die Anzahl der Codepfade zu minimieren, die Leser des Feeds implementieren müssen. Die einfachere Erstellung sollte jedoch Vorrang haben, da es letztendlich mehr Feed-Publisher als Feed-Leser 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 vorhandene Parser nach Möglichkeit weiterhin die älteren Segmente neuerer Feeds lesen können.

Von spekulativen Funktionen wird abgeraten.

Jede neue Funktion erhöht die Komplexität beim Erstellen und Lesen von Feeds. Deshalb möchten wir nur neue Funktionen hinzufügen, von denen wir wissen, dass sie nützlich sind. Im Idealfall wurden alle Vorschläge getestet, indem Daten für ein echtes Verkehrsnetz generiert wurden, das die neue Funktion nutzt, und Software zum Lesen und Darstellen dieser Daten entwickelt wurde. 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.