TT:trainGroup: Difference between revisions

From railML 2 Wiki
Jump to navigation Jump to search
[checked revision][checked revision]
(improved semantics description as discussed in timetable group)
(added notes as discussed in TT dev group)
Line 78: Line 78:
</trainGroups>
</trainGroups>
</syntaxhighlight>
</syntaxhighlight>
 
|notes=It should be noted that the membership in a group does not necessarily imply any linked characteristics of the grouped trains. It may very well be that trains grouped with type 'interval' have nothing in common, neither regarding their route, nor regarding their driving and stopping times.<br>It is also important to note that membership in a trainGroup does not encode any information regarding the trains circulation. This kind of information is specified using the element {{TT:Tag|rostering}} and its children.<br>{{Deu|Bitte beachten Sie, dass die Zugehörigkeit zu einer Gruppe nicht notwendigerweise irgendwelche verbundenen Eigenschaften der gruppierten Züge impliziert. Es kann sehr gut sein, dass Züge, die mit dem Typ 'interval' gruppiert sind, nichts gemeinsam haben, weder in Bezug auf ihren Fahrweg, noch in Bezug auf ihre Fahr- und Haltezeiten.<br>Es ist auch wichtig anzumerken, dass die Mitgliedschaft in einer trainGroup keine Informationen über den Umlauf der Züge kodiert. Diese Art von Information wird mit dem Element {{TT:Tag|rostering}} und seinen Subelementen abgebildet.}}
}}
}}

Revision as of 13:15, 13 September 2022


trainGroup
 


Scheme description / Schemenbeschreibung

Position of trainGroup in the XML-Tree / Position von trainGroup im XML-Baum

Multiplicity / Anzahl

[1..∞]

Semantics / Bedeutung

The Element <trainGroup> is linking different individual trains to a group. This could for instance be used for an interval group of trains belonging together in a train path allocation process. All trains referenced by a trainGroup must be valid by themselves. No additional information can be inferred for any of those train by their membership in the same train group. This is necessary so that a railML document including trainGroups can also be understood by systems that do not support reading of trainGroups in their use case. Das Element <trainGroup> verknüpft verschiedene Einzelzüge zu einer Gruppe. Dies könnten beispielsweise die Züge einer Taktfamilie sein, die innerhalb einer Trassenanmeldung gemeinsam betrachtet werden sollen. Alle Züge, die von einer trainGroup referenziert werden, müssen für sich selbst stehen könne. Aus der Zugehörigkeit zu einer trainGroup können keine zusätzlichen Informationen für einen dieser Züge abgeleitet werden. Dies ist notwendig, damit ein railML-Dokument, das trainGroups enthält, auch von Systemen verstanden werden kann, die das Lesen von trainGroups in ihrem Anwendungsfall nicht unterstützen.

Attributes of trainGroup / Attribute von trainGroup

  • id: XML-file-wide unique, machine-interpretable identity, required for later referencing that element internally. For a detailed explanation see Dev:identities.
    XML-Datei-weit eindeutige, maschineninterpretierbare Identität, die für die spätere interne Referenzierung dieses Elements erforderlich ist. Für eine detaillierte Erklärung siehe Dev:identities.
  • code (introduced with version 2.1): Machine-interpretable string (e.g. an abbreviation) used for identification of the object across exchange partners, usecase specific uniqueness constraints may apply. Please see our description of the differences between id, code and human-readable identifiers.
    Maschineninterpretierbare Zeichenkette (z.B. Abkürzung), die zur Identifizierung des Objekts auch bei Austauschpartnern verwendet wird, wobei spezifische Eindeutigkeitsbeschränkungen gelten können. Bitte beachten Sie unsere Erläuterung zu den Unterschieden zwischen id, code and menschenlesbaren Kennzeichnungen.
  • name: Established, human-readable short string, giving the object a name. Not intended for machine interpretation, please see our notice on human interpretable data fields.
    Etablierte, menschenlesbare kurze Zeichenkette, die das Objekt benennt. Nicht zur maschinellen Interpretation bestimmt, siehe Hinweise zu menschenlesbaren Datenfeldern.
  • description: Human-readable, more detailed description as addition to the name. It should give additional explanations or hints to the contents of this element. Not intended for machine interpretation, please see our notice on human interpretable data fields.
    Menschenlesbare, detailliertere Beschreibung als Ergänzung zu name. Sie soll zusätzliche Erläuterungen oder Hinweise auf den Inhalt dieses Elements geben. Nicht zur maschinellen Interpretation bestimmt, siehe Hinweise zu menschenlesbaren Datenfeldern.
  • xml:lang (introduced with version 2.1): This is a unique identifier of language. It uses basically the language standard IETF BCP 47 (external link) which may be different to ISO 639-1 (external link) or ISO 639-2 (external link). For mapping hints see relation to other standards (external link).
    This defines the language used for name and description. Use <additionalName> to provide a name and/or description in other languages.
  • type: This is the reason why the trains were combined into a train group. Possible values are:
  • interval: The trains run in a periodic interval with the same period; i.e. all trains run with the same times on the stations, different operating days or lengths of the running routes are permissible. For further background information about interval timetables you may refer to Clock-face scheduling (Wiki banner.png 🇬🇧) too.
    Die Züge verkehren in einem periodischen Intervall mit gleicher Periode; daß heisst alle Züge verkehren mit gleichen Zeiten auf den Stationen, unterschiedliche Verkehrstage oder Längen der Laufwege sind dabei zulässig. Weitere Infomationen hierzu sind auf der zugehörigen Wikipedia-Seite zu Taktfahrplänen (Wiki banner.png 🇩🇪) zu finden.
  • other:anything: Any value that does not fit any value from the previous enumeration list, fulfilling the constraint: at minimum two characters, whitespace is not allowed. Please, apply Dev:usingAny accordingly.
  • trainNumber: This is the train number of the "leading" train of this train group, if this makes sense from a technical point of view. This train belongs to the interval group with the same ranking as the other trains named in the trainfRef. If used, the train referenced here shall not be repeated again in the trainfRef.
    Dies ist die Zugnummer des "führenden" Zuges dieser Zuggruppe, sofern dies fachlich sinnvoll ist. Dieser Zug gehört gleichranging zur Taktgruppe wie die anderen, in der trainfRef genannten, Züge. Sofern verwendet, darf hier referenzierte Zug nicht nochmals in der trainfRef wiederholt werden.
  • processStatus: It describes the trainGroup status in relation to a working process. (deprecated with version 2.5)
🗒️ The semantics of the attribute values for @processStatus have not been fully defined in the past. In general the attribute shall describe a state of the process supported by railML®. Therefore the precise semantics shall be clarified between data provider and the data consumer.
Examples:
If an updated version of a timetable is transferred, the @processStatus is used by some systems to indicate if a train was changed compared to the previous data transfer by providing @processStatus=changed.
For the use case slot ordering the attribute is used with the value planned by some systems to describe that a train has been planned in the scheduling tool, but hasn’t been taken into account for the slot ordering process.

Possible values are:

  • planned
  • actual
  • calculated
  • toBeChecked
  • changed
  • imported
  • other:anything: Any value that does not fit any value from the previous enumeration list, fulfilling the constraint: at minimum two characters, whitespace is not allowed. Please, apply Dev:usingAny accordingly.
  • parentRef (introduced with version 2.5): Reference to a superordinate trainGroup. Allows the composition of hierarchies of trainGroups. In order to compose trainGroups that only consist of (further) trainGroups, "empty" trainGroups without trainRefs may also exist starting with railML version 2.5.
    Referenz zu einer übergeordneten trainGroup. Ermöglicht die Bildung von Hierarchien aus trainGroups. Um auch trainGroups bilden zu können, die nur aus (weiteren) trainGroups bestehen, dürfen ab railML-Version 2.5 auch "leere" trainGroups ohne trainRefs existieren.

Syntactic Constraints / Syntaktische Beschränkungen

  • id: xs:ID, required
    a string, starting with a letter (a..zA..Z) or an underscore (_),
    followed by a non-colonized and non-spaced string consisting of letters, digits, points (.), dashes (-) or underscores (_)
  • code: xs:string, optional
  • name: xs:string, optional
  • description: xs:string, optional
  • xml:lang: xs:language, language identification, optional
  • type: union of (restriction of xs:string, tOtherEnumerationValue); tOtherEnumerationValue is an arbitrary string starting with 'other:' followed by at minimum two characters, white space not allowed for extending railML® enumeration lists, optional
  • processStatus: union of (restriction of xs:string, tOtherEnumerationValue); tOtherEnumerationValue is an arbitrary string starting with 'other:' followed by at minimum two characters, white space not allowed for extending railML® enumeration lists optional

Best practice & Examples / Empfohlene Anwendung & Beispiele

Three Thalys trains (9304, 9306, 9308) driving during a day belonging to the same family of an interval train (9300)

<trainGroups>
  <!-- Interval trains -->
  <trainGroup id="THA_9300" type="interval" description="Bruxelles - Paris" trainNumber="9300">
    <trainRef sequence="1" ref="o9304"/>
    <trainRef sequence="2" ref="o9306"/>
    <trainRef sequence="3" ref="o9308"/>
  </trainGroup>
</trainGroups>

Example for attribute @parentRef

<trainGroups>
  <trainGroup id="trg_1" name="parent trainGroup for trainGroups A and B"/>
  <trainGroup id="trg_2" name="trainGroup A" parentRef="trg_1">
    <trainRef ref="..." sequence="1" />
    <trainRef ref="..." sequence="2" />
  </trainGroup>
  <trainGroup id="trg_3" name="trainGroup B" parentRef="trg_2">
    <trainRef ref="..." sequence="1" />
    <trainRef ref="..." sequence="2" />
    <trainRef ref="..." sequence="3" />
  </trainGroup>
</trainGroups>

Notes / Anmerkungen

It should be noted that the membership in a group does not necessarily imply any linked characteristics of the grouped trains. It may very well be that trains grouped with type 'interval' have nothing in common, neither regarding their route, nor regarding their driving and stopping times.
It is also important to note that membership in a trainGroup does not encode any information regarding the trains circulation. This kind of information is specified using the element <rostering> and its children.
Bitte beachten Sie, dass die Zugehörigkeit zu einer Gruppe nicht notwendigerweise irgendwelche verbundenen Eigenschaften der gruppierten Züge impliziert. Es kann sehr gut sein, dass Züge, die mit dem Typ 'interval' gruppiert sind, nichts gemeinsam haben, weder in Bezug auf ihren Fahrweg, noch in Bezug auf ihre Fahr- und Haltezeiten.
Es ist auch wichtig anzumerken, dass die Mitgliedschaft in einer trainGroup keine Informationen über den Umlauf der Züge kodiert. Diese Art von Information wird mit dem Element <rostering> und seinen Subelementen abgebildet.

Open issues / Offene Punkte/Pendenzen

Not yet described. / Noch nicht beschrieben.