TT:circulation: Difference between revisions

From railML 2 Wiki
Jump to navigation Jump to search
[checked revision][checked revision]
(add definition for open circulations)
(multiplicity)
(5 intermediate revisions by 2 users not shown)
Line 8: Line 8:
|parent = {{TT:Tag|circulations}}
|parent = {{TT:Tag|circulations}}
|childs=''None''
|childs=''None''
|maxocc=∞
|inheritedAttributes=''None''
|inheritedAttributes=''None''
|ownAttributes =
|ownAttributes =
Line 16: Line 17:
}}
}}


* {{Attr|startDate}}: If this is absent {{Attr|operatingPeriodRef}} must be defined.
* {{Attr|startDate}}: If this is absent {{Attr|operatingPeriodRef}} must be defined.{{StartEndDoc}}


* {{Attr|endDate}}: If this is absent {{Attr|operatingPeriodRef}} may be defined or it is "open end".
* {{Attr|endDate}}: If this is absent {{Attr|operatingPeriodRef}} may be defined or it is "open end".{{StartEndDoc}}


{{InheritRef
{{InheritRef
Line 52: Line 53:
|constraints =
|constraints =
* {{Attr|blockRef}} {{RailMLType|tGenericRef}}, mandatory
* {{Attr|blockRef}} {{RailMLType|tGenericRef}}, mandatory
 
* {{Attr|startDate}} {{XsdType|date}}, optional; shall be lower or equal {{Attr|endDate}} if both are used.
* {{Attr|startDate}} {{XsdType|date}}, optional
* {{Attr|endDate}} {{XsdType|date}}, optional; shall be higher or equal {{Attr|startDate}} if both are used.
 
* {{Attr|endDate}} {{XsdType|date}}, optional
 
* {{Attr|operatingPeriodRef}} {{RailMLType|tGenericRef}}, optional
* {{Attr|operatingPeriodRef}} {{RailMLType|tGenericRef}}, optional
* {{Attr|repeatCount}} {{RailMLType|tCounter}}, optional
* {{Attr|repeatCount}} {{RailMLType|tCounter}}, optional
* {{Attr|vehicleCounter}} {{RailMLType|tCounter}}, optional
* {{Attr|vehicleCounter}} {{RailMLType|tCounter}}, optional
* {{Attr|vehicleGroupCounter}} {{RailMLType|tCounter}}, optional
* {{Attr|vehicleGroupCounter}} {{RailMLType|tCounter}}, optional
* {{Attr|nextBlockRef}} {{RailMLType|tGenericRef}}, optional
* {{Attr|nextBlockRef}} {{RailMLType|tGenericRef}}, optional
* {{Attr|nextOperatingPeriodRef}} {{RailMLType|tGenericRef}}, optional
* {{Attr|nextOperatingPeriodRef}} {{RailMLType|tGenericRef}}, optional
 
|semcon={{startEndCon}}
|example =
|example =
see {{external|http://www.irfp.de/download/railml_beispiel_umlauf.pdf|RailML-Beispiel Umlauf|type=PDF|comment=314 kByte}}
see {{external|http://www.irfp.de/download/railml_beispiel_umlauf.pdf|{{rml}}-Beispiel Umlauf|type=PDF|comment=by Dirk Bräuer, iRFP Dresden|lang=de|visited=2018-03-27|date=2012-05-23}}
|notes =
There exists a {{TT:Tag|circulation}} element for every block belonging to the roster on every operating day. Via the attributes {{attr|nextBlockRef}} and {{attr|nextOperatingperiodRef}} the blocks are connected to a chain and form a rostering. A circulation without {{attr|nextBlockRef}} models a block that has no successor in the linked chain ''of the current circulation plan''. Similarly, a block that is referenced via {{attr|blockRef}} but not via {{attr|nextBlockRef}} models a block that has no predecessor on the linked chain ''of the current circulation plan''. They may have predecessor and successor (and of course they will have in practice) in the previous or following circulation plan, may be in the previous or following timetable.


|notes =
It is also legal that a block is completely unlinked within the roster ''of the current circulation plan''. The presence of a circulation element that references this block via {{attr|blockRef}}, in this case, expresses the fact that the block is considered as belonging to the roster at the given operating days and allows defining the values of the attributes {{Attr|vehicleCounter}} and {{Attr|vehicleGroupCounter}}.
There exists a {{TT:Tag|circulation}} element for every block belonging to the roster on every operating day. Via the attributes {{attr|nextBlockRef}} and {{attr|nextOperatingperiodRef}} the blocks are connected to a chain and form a rostering. A circulation without nextBlockRef models a block that has no successor in the linked chain. Similarly, a block that is referenced via blockRef but not via nextBlockRef models a block that has no predecessor on the linked chain. It is also legal that a block is completely unlinked within the roster. The presence of a circulation element that references this block via blockRef, in this case, merily expresses that fact that the block is considered as belonging to the roster.


A rostering is ''closed'' (can be repeated), if for each {{TT:Tag|circulation}} element the {{attr|nextBlockRef}} and {{attr|nextOperatingperiodRef}} elements exist.
A rostering (circulation plan) is ''closed'' (can be repeated), if the attributes {{attr|nextBlockRef}} and {{attr|nextOperatingPeriodRef}} exist in each {{TT:Tag|circulation}} element. Otherwise, the circulation plan is ''open'' and must have links to previous and successive circulation plans. Even a ''closed'' (repeatable) circulation plan is likely to have links to previous and successive circulation plans because it is unlikely to be repeated infinitely. However, currently there are no possibilities to define such links (references) between different circulation plans in railML.


The attribute {{Attr|vehicleCounter}} is completely redundant because the information can be recreated by counting links ({{Attr|nextBlockRef}},…) which link to earlier days ({{Attr|vehicleCounter}}) or to lower vehicles number ({{Attr|vehicleGroupCounter}}). Nevertheless, providing these values makes it easier to get the data and to avoid misunderstandings (skipping of vehicles during standstill).
The attributes {{Attr|vehicleCounter}} and {{Attr|vehicleGroupCounter}} are completely redundant in closed rosterings (circulation plans) because the information can be recreated by counting links ({{Attr|nextBlockRef}},…) which link to earlier days ({{Attr|nextOperatingPeriodRef}}). Nevertheless, providing these values even in closed circulation plans makes it easier to get the data and to avoid misunderstandings (skipping of vehicles during standstill).


}}
}}

Revision as of 21:07, 25 November 2018


circulation
 


Scheme description / Schemenbeschreibung

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

Multiplicity / Anzahl

[1..∞]

Semantics / Bedeutung

The element <circulation> is for chaining the blocks into a complete rostering.

In dem Element <circulation> werden die "Dienste" (blocks) zu einem Umlaufplan verkettet.
 
Please, be aware of the semantic constraint(s)!

Attributes of circulation / Attribute von circulation

  • blockRef: This refers to the id attribute of the associated <block> element.
  • operatingPeriodRef: This refers to the id attribute of the associated <operatingPeriod> element.
    This operatingPeriod constraints the dates the referenced block is to be fulfilled. If this is absent the referenced block runs daily from startDate to endDate.
  • repeatCount: This is for abstract circulations from startDate to endDate.
  • vehicleCounter (introduced with version 2.2): This indicates the right vehicle number (de: Fahrzeugnummer) within the circulations. (See also the Notes at the bottom of this page.)
  • vehicleGroupCounter (introduced with version 2.2): This indicates the right vehicle group number (de: Gruppennummer) within the circulations. (See also the Notes at the bottom of this page.)
  • nextBlockRef: This refers to the id attribute of the associated <block> element.
    This is the block which should follow the currently referenced block.
  • xs:anyAttribute(introduced with version 2.3) This provides an extension point for non-railML® attributes in a foreign namespace. How to use it?

Syntactic Constraints / Syntaktische Beschränkungen

Semantic Constraints / Semantische Beschränkungen

Private-cloud-icon.png Semantic Constraint "TT:001":
 
Any starting time stamp (as it may result e.g. from a combination of startDate and startTime) shall be lower or equal any ending time stamp (e.g. endDate) if both are given. Must not overlap with other validity periods.
 
Proposed on November 12th 2018
Approved on March 21st 2019
FIXME: add Link to discussion!
Please, recognize our guidelines on semantic constraints

Best practice & Examples / Empfohlene Anwendung & Beispiele

see railML®-Beispiel Umlauf (external link, 2012-05-23, PDF, 🇩🇪, visited on 2018-03-27; by Dirk Bräuer, iRFP Dresden)

Notes / Anmerkungen

There exists a <circulation> element for every block belonging to the roster on every operating day. Via the attributes nextBlockRef and nextOperatingperiodRef the blocks are connected to a chain and form a rostering. A circulation without nextBlockRef models a block that has no successor in the linked chain of the current circulation plan. Similarly, a block that is referenced via blockRef but not via nextBlockRef models a block that has no predecessor on the linked chain of the current circulation plan. They may have predecessor and successor (and of course they will have in practice) in the previous or following circulation plan, may be in the previous or following timetable.

It is also legal that a block is completely unlinked within the roster of the current circulation plan. The presence of a circulation element that references this block via blockRef, in this case, expresses the fact that the block is considered as belonging to the roster at the given operating days and allows defining the values of the attributes vehicleCounter and vehicleGroupCounter.

A rostering (circulation plan) is closed (can be repeated), if the attributes nextBlockRef and nextOperatingPeriodRef exist in each <circulation> element. Otherwise, the circulation plan is open and must have links to previous and successive circulation plans. Even a closed (repeatable) circulation plan is likely to have links to previous and successive circulation plans because it is unlikely to be repeated infinitely. However, currently there are no possibilities to define such links (references) between different circulation plans in railML.

The attributes vehicleCounter and vehicleGroupCounter are completely redundant in closed rosterings (circulation plans) because the information can be recreated by counting links (nextBlockRef,…) which link to earlier days (nextOperatingPeriodRef). Nevertheless, providing these values even in closed circulation plans makes it easier to get the data and to avoid misunderstandings (skipping of vehicles during standstill).

Open issues / Offene Punkte/Pendenzen

Not yet described. / Noch nicht beschrieben.