TT:times ocpTT ocpsTT trainPart: Difference between revisions

From railML 2 Wiki
Jump to navigation Jump to search
[checked revision][checked revision]
(+Tabelle)
(Moved TT:011 to best practivce as decided in TT developer meeting)
Line 49: Line 49:
{{Deu|{{@|scope}}&#61;'earliest' und 'latest' sind ''nicht'' zur Abbildung von Fahrzeitzuschlägen zu verwenden, da dies redundant zu <ocpTT>.<sectionTT>.<runTimes>@operationalReserve, @additionalReserve, @minimalTime ist.}}
{{Deu|{{@|scope}}&#61;'earliest' und 'latest' sind ''nicht'' zur Abbildung von Fahrzeitzuschlägen zu verwenden, da dies redundant zu <ocpTT>.<sectionTT>.<runTimes>@operationalReserve, @additionalReserve, @minimalTime ist.}}
|status=approved|proposed=2019-06-19|approved=2020-10-15|forum=https://www.railml.org/forum/index.php?t=msg&th=588&goto=1848&#msg_1848|id=TT:010}}
|status=approved|proposed=2019-06-19|approved=2020-10-15|forum=https://www.railml.org/forum/index.php?t=msg&th=588&goto=1848&#msg_1848|id=TT:010}}
{{semcon|<!--'''Semantics and restrictions of the attribute {{@|scope}}'''-->
All instances of {{TT:Tag|ocpTT}}.{{TT:Tag|times}} with the same {{@|scope}} (excluding the {{@|scope}}s {{Enum|earliest}}, {{Enum|latest}} and {{Enum|published}} of the same {{TT:Tag|trainPart}} define the same planning stage and are therefore semantically linked and thus shall be consistent with each other.<br>''('''Comment:''' conversely, {{TT:Tag|ocpTT}}.{{TT:Tag|times}} with different {{@|scope}} are not necessarily consistent with each other: A train may be ordered for a “wished” time but not all those requests may be fulfilled. A train may be planned for a certain time but may run at a different time (later or earlier).)''<br/>
"consistent with each other" in this context means, that the times following the path of the train are continuously increasing.<br/>
{{Deu|Alle Instanzen von {{TT:Tag|ocpTT}}.{{TT:Tag|times}} mit dem selben {{@|scope}} (mit Ausnahme der {{@|scope}}s) {{Enum|earliest}}, {{Enum|latest}} und {{Enum|published}}) des selben {{TT:Tag|trainPart}} beschreiben die gleiche Planungsphase, sie sind entsprechend semantisch verknüpft und müssen demzufolge in sich konsistent sein.<br>''('''Kommentar:''' Umgekehrt müssen {{TT:Tag|ocpTT}}.{{TT:Tag|times}}-Instanzen mit unterschiedlichen Werten für {{@|scope}} untereinander nicht konsistent sein. Ein Zug mag bei der Trassenbestellung für eine bestimmte Zeit bestellt sein, allerdings kann es sein, dass dieser Wunsch nicht erfüllt werden kann, und der Zug zu einer anderen Zeit fährt.<br/>
"In sich konsistent" bedeutet in diesem Zusammenhang, dass, dass die Zeiten dem Fahrtverlauf folgend stetig ansteigend sind.}}
|status=proposed|proposed=2019-06-19|id=TT:011}}
{{semcon|
{{semcon|
When {{@|scope}}&#61;'actual' is used, then the operating period and/or timetable period specified at the trainpart level shall refer to only one operating day. Like this the operating day to which the actual times refer is defined.
When {{@|scope}}&#61;'actual' is used, then the operating period and/or timetable period specified at the trainpart level shall refer to only one operating day. Like this the operating day to which the actual times refer is defined.
Line 71: Line 65:
|example =  
|example =  
===Semantics and restrictions of the attribute {{Attr|scope}}===
===Semantics and restrictions of the attribute {{Attr|scope}}===
===={{Attr|scope}} values 'earliest' and 'latest'====
====Consistency expectations====
In general it is assumed that the times specified for earliest and latest at one {{tag|TT|ocpTT}} should be consistent with each other. That means that the times specified for 'earliest' (taking into account {{@|arrivalDay}} and {{@|departureDay}}) must be earlier than those specified for 'latest'. Only in very rare cases this  assumption may be broken. For example in strategic planning it may be necessary to communicate impossibilities that result from various dependencies in order for the receiving system to adjust accordingly to avoid those impossibilities.
In general it is expected that all {{TT:Tag|times}} instances of the same {{@|scope}} are consistent with each other. "consistent with each other" in this context means, that the times following the path of the train are continuously increasing. The reason for this is that it is assumed that all {{TT:Tag|times}} instances of the same {{@|scope}} are semantically linked. However, there are use cases where this may not apply. For example {{TT:Tag|times}} with the {{@|scope}} {{Enum|earliest}} or {{Enum|latest}} may encode inconsistencies as described below. Also for {{Enum|published}} {{TT:Tag|times}} it is known that in some cases consistency is broken. In some use cases this can also happen in other {{@|scope}}s, for example if railML is used as a means of transferring data from a planning system to a visualization with the express purpose of viewing inconsistencies graphically. It is acceptable practice though to refuse importing of such data in reading programs if such use case is excluded. A appropriate error reporting is advised in this case.
 
{{Deu|Im Allgemeinen wird erwartet, dass alle {{TT:Tag|times}}-Instanzen desselben {{@|scope}} miteinander konsistent sind. "Miteinander konsistent" bedeutet in diesem Zusammenhang, dass die Zeiten, dem Zuglauf folgend, kontinuierlich ansteigen. Der Grund dafür ist, dass angenommen wird, dass alle {{TT:Tag|times}}-Instanzen desselben {{@|scope}} semantisch miteinander verbunden sind. Es gibt jedoch Anwendungsfälle, auf die dies nicht zutrifft. Zum Beispiel {{TT:Tag|times}} mit dem {{@|scope}} {{Enum|earliest}} oder {{Enum|latest}} kodieren möglicherweise Inkonsistenzen, wie beispielsweise unten beschrieben. Auch für {{Enum|published}} {{TT:Tag|times}} ist bekannt, dass in einigen Fällen die Konsistenz gebrochen wird. In einigen Anwendungsfällen kann dies auch in anderen {{@|scope}}s vorkommen, z.B. wenn railML als Mittel zur Übertragung von Daten aus einem Planungssystem in eine Visualisierung mit dem ausdrücklichen Zweck verwendet wird, Inkonsistenzen grafisch darzustellen. Es ist jedoch akzeptierte Praxis, den Import solcher Daten in Leseprogrammen zu verweigern, wenn ein solcher Anwendungsfall ausgeschlossen ist. In diesem Fall wird eine entsprechende Fehlermeldung empfohlen.}}
 
====={{Attr|scope}} values 'earliest' and 'latest'=====
As just explained it is in general assumed that the {{TT:Tag|times}} specified for {{Enum|earliest}} and {{Enum|latest}} at one {{tag|TT|ocpTT}} should be consistent with each other. Accordingly the times specified for {{Enum|earliest}} (taking into account {{@|arrivalDay}} and {{@|departureDay}}) must be earlier than those specified for {{Enum|latest}}. Only in very rare cases this  assumption is broken. For example in strategic planning it may be necessary to communicate impossibilities that result from various dependencies in order for the receiving system to adjust accordingly to avoid those impossibilities.
 
{{Deu|Wie soeben erläutert, wird im Allgemeinen davon ausgegangen, dass die für {{Enum|earliest}} und {{Enum|latest}} an einem {{tag|TT|ocpTT}} angegebenen {{TT:Tag|times}} miteinander harmonieren sollten. Dementsprechend sollten die für {{Enum|earliest}} angegebenen Zeiten (unter Berücksichtigung von {{@|arrivalDay}} und {{@|departureDay}}) früher sein als die für {{Enum|latest}} angegebenen Zeiten. Nur in sehr seltenen Fällen wird diese Annahme gebrochen. Zum Beispiel kann es bei der strategischen Planung notwendig sein, Unmöglichkeiten mitzuteilen, die sich aus verschiedenen Abhängigkeiten ergeben, damit das empfangende System entsprechende Anpassungen vornehmen kann, um diese Unmöglichkeiten zu vermeiden.
====Slot ordering / {{Deu|Trassenbestellung}}====
====Slot ordering / {{Deu|Trassenbestellung}}====
In the use case ''slot ordering'' the attributes 'earliest' and 'latest' are intended to define a wish of a RU or authority as customer of an IM. The customer likes to order a slot with the earliest departure at... or with the latest arrival at... Therefore, 'earliest' and 'latest' are related here to early planning states because they define something like the "first idea" of the timetable of a train.
In the use case ''slot ordering'' the attributes 'earliest' and 'latest' are intended to define a wish of a RU or authority as customer of an IM. The customer likes to order a slot with the earliest departure at... or with the latest arrival at... Therefore, 'earliest' and 'latest' are related here to early planning states because they define something like the "first idea" of the timetable of a train.

Revision as of 18:21, 14 July 2022

{{ElementDocu| elementName = times

|semantics = The Element <times> describes arrival and departure times of a train with their scope.

Das Element <times> beschreibt Ankunfts- und Abfahrtszeiten eines Zuges und ihre Interpretation.

|parent = <ocpTT> |childs=None |minocc=0 |maxocc=∞ |inheritedAttributes=None |ownAttributes =

Possible values are:
  • actual recorded arrival and departure times
  • calculated times from a simulation tool
  • published times that the passengers get on written sheets or online
  • scheduled times for operational purposes
  • earliest acceptable arrival and/or departure time (used to express a wish of a customer at a very early planning stage of a new timetable)
  • latest acceptable arrival and/or departure time (used to express a wish of a customer at a very early planning stage of a new timetable)
  • expected (introduced with version 2.5) forecast times based on realtime data
  • 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.
🗒️ Not to be confused with <train>@scope, that distinguishes different paths / alternative slots of a train.
🗒️ Not to be confused with <train>@processStatus, that describes the scope in relation to a process of train path ordering.
  • arrival: Moment at which the train ends its movement and gets to a halt at the parent <ocpTT>; usually called arrival time.
    • If this attribute is set at the first <ocpTT> of a <trainPart> that is also the first of the <trainPartSequence> of all <train>s it belongs to, it shall describe an "arrival from outside of the scope of the railML file": It expresses that the train arrives at that first <ocpTT> at the given time, but the railML file does not express from where the train arrives nor whether it arrives as a train movement at all or rather as a shunting movement.
  • departure: departure or run-through (passing) time;
    • normally specified at all except the very last station of the last trainPart (section) of a train:
    • If this attribute is set at the last <ocpTT> of a <trainPart> that is also the last of the <trainPartSequence> of all <train>s it belongs to, it shall describe "departure to outside of the scope of the railML file": It expresses that the train departs at that last <ocpTT> at the given time, but the railML file does not express to where the train departs nor whether it departs as a train movement at all or rather as a shunting movement.
  • xs:anyAttribute: This provides an extension point for non-railML® attributes in a foreign namespace. How to use it?
    (introduced with version 2.2)

|semcon=

Private-cloud-icon.png Semantic Constraint "TT:010":
 

@scope='earliest' and 'latest' are not intended to encode supplement times, as this is redundant to <ocpTT>.<sectionTT>.<runTimes>@operationalReserve, @additionalReserve, @minimalTime.
@scope='earliest' und 'latest' sind nicht zur Abbildung von Fahrzeitzuschlägen zu verwenden, da dies redundant zu <ocpTT>.<sectionTT>.<runTimes>@operationalReserve, @additionalReserve, @minimalTime ist.


 
Proposed on June 19th 2019
Approved on October 15th 2020
Discuss this semantic constraint
Please, recognize our guidelines on semantic constraints

Private-cloud-icon.png Semantic Constraint "TT:012":
 

When @scope='actual' is used, then the operating period and/or timetable period specified at the trainpart level shall refer to only one operating day. Like this the operating day to which the actual times refer is defined.
Wenn @scope= 'actual' verwendet wird, bezieht sich die operating period und/oder timetable period des train(part) auf nur einen einzelnen Betriebstag. Es muss so festgelegt werden, auf welchen Betriebstag sich die erfassten Ist-Zeiten beziehen.


 
Proposed on June 19th 2019
Approved on June 2nd 2022
FIXME: add Link to discussion!
Please, recognize our guidelines on semantic constraints

Private-cloud-icon.png Semantic Constraint "TT:014":
 

@arrival is not to be specified if the attribute ocpType of the parent <ocpTT> has the value pass - use departure for run-through (passing) times; This is in line with the definition of @arrival as the moment at which the train ends its movement and gets to a halt at the parent <ocpTT>.


 
Proposed on June 19th 2019
Approved on June 2nd 2022
FIXME: add Link to discussion!
Please, recognize our guidelines on semantic constraints

Private-cloud-icon.png Semantic Constraint "TT:015":
 

At the first <ocpTT> of a <trainPart> that is not the first one of the <trainPartSequence>, the attribute @arrival is optional. If it is set anyway, then, for consistency reasons, the value of @arrival of the regarding <ocpTT> must be identical for both this <trainPart> and the preceding one.


 
Proposed on June 19th 2019
Approved on June 2nd 2022
FIXME: add Link to discussion!
Please, recognize our guidelines on semantic constraints

Private-cloud-icon.png Semantic Constraint "TT:016":
 

At the last <ocpTT> of a <trainPart> that is not the last one of the <trainPartSequence>, the attribute @departure is optional. If it is set anyway, then, for consistency reasons, the value of @departure of the regarding <ocpTT> must be identical for both this <trainPart> and the subsequent one.


 
Proposed on October 09th 2020
Approved on June 2nd 2022
FIXME: add Link to discussion!
Please, recognize our guidelines on semantic constraints

|example =

Semantics and restrictions of the attribute scope

Consistency expectations

In general it is expected that all <times> instances of the same @scope are consistent with each other. "consistent with each other" in this context means, that the times following the path of the train are continuously increasing. The reason for this is that it is assumed that all <times> instances of the same @scope are semantically linked. However, there are use cases where this may not apply. For example <times> with the @scope earliest or latest may encode inconsistencies as described below. Also for published <times> it is known that in some cases consistency is broken. In some use cases this can also happen in other @scopes, for example if railML is used as a means of transferring data from a planning system to a visualization with the express purpose of viewing inconsistencies graphically. It is acceptable practice though to refuse importing of such data in reading programs if such use case is excluded. A appropriate error reporting is advised in this case.

Im Allgemeinen wird erwartet, dass alle <times>-Instanzen desselben @scope miteinander konsistent sind. "Miteinander konsistent" bedeutet in diesem Zusammenhang, dass die Zeiten, dem Zuglauf folgend, kontinuierlich ansteigen. Der Grund dafür ist, dass angenommen wird, dass alle <times>-Instanzen desselben @scope semantisch miteinander verbunden sind. Es gibt jedoch Anwendungsfälle, auf die dies nicht zutrifft. Zum Beispiel <times> mit dem @scope earliest oder latest kodieren möglicherweise Inkonsistenzen, wie beispielsweise unten beschrieben. Auch für published <times> ist bekannt, dass in einigen Fällen die Konsistenz gebrochen wird. In einigen Anwendungsfällen kann dies auch in anderen @scopes vorkommen, z.B. wenn railML als Mittel zur Übertragung von Daten aus einem Planungssystem in eine Visualisierung mit dem ausdrücklichen Zweck verwendet wird, Inkonsistenzen grafisch darzustellen. Es ist jedoch akzeptierte Praxis, den Import solcher Daten in Leseprogrammen zu verweigern, wenn ein solcher Anwendungsfall ausgeschlossen ist. In diesem Fall wird eine entsprechende Fehlermeldung empfohlen.

scope values 'earliest' and 'latest'

As just explained it is in general assumed that the <times> specified for earliest and latest at one <ocpTT> should be consistent with each other. Accordingly the times specified for earliest (taking into account @arrivalDay and @departureDay) must be earlier than those specified for latest. Only in very rare cases this assumption is broken. For example in strategic planning it may be necessary to communicate impossibilities that result from various dependencies in order for the receiving system to adjust accordingly to avoid those impossibilities.

{{{1}}}