Home » railML newsgroups » railml.timetable » How to represent open circulations in railML?
How to represent open circulations in railML? [message #1663] Fri, 17 November 2017 16:20 Go to next message
Leopold Kühschelm is currently offline  Leopold Kühschelm
Messages: 8
Registered: September 2015
Junior Member
Dear railML Timetable Community!

When defining an rostering with an open (non-cyclic) circulation of blocks, there are two different possibilities to model them in railML.

Either with an final open circulation Element at the end:

<circulations>
           <circulation blockRef="b00380" operatingPeriodRef="op0103" nextBlockRef="b00381" nextOperatingPeriodRef="op0104"/>
           <circulation blockRef="b00381" operatingPeriodRef="op0104" nextBlockRef="b00382" nextOperatingPeriodRef="op0105"/>
           <circulation blockRef="b00382" operatingPeriodRef="op0105" nextBlockRef="b00383" nextOperatingPeriodRef="op0106"/>
           <circulation blockRef="b00383" operatingPeriodRef="op0106" nextBlockRef="b00384" nextOperatingPeriodRef="op0107"/>
           <circulation blockRef="b00384" operatingPeriodRef="op0107"/>
       </circulations>

So you can see in the example there is a final circulation with no nextBlockRef and nextOperatingPeriodRef attributes. But in my point of view this last circulation element is redundant and may be left out - like the following example depicts:

<circulations>
           <circulation blockRef="b00380" operatingPeriodRef="op0103" nextBlockRef="b00381" nextOperatingPeriodRef="op0104"/>
           <circulation blockRef="b00381" operatingPeriodRef="op0104" nextBlockRef="b00382" nextOperatingPeriodRef="op0105"/>
           <circulation blockRef="b00382" operatingPeriodRef="op0105" nextBlockRef="b00383" nextOperatingPeriodRef="op0106"/>
           <circulation blockRef="b00383" operatingPeriodRef="op0106" nextBlockRef="b00384" nextOperatingPeriodRef="op0107"/>
       </circulations>

As well I have read the railML-Wiki entry on circulations (http://wiki.railml.org/index.php?title=TT:circulationWink. There I found following section on this question:

"There exists a <circulation> element for every block on every operational day. Via the attributes nextBlockRef and nextOperatingperiodRef the blocks are connected to a chain and form a rostering. ..."

I am not quit sure how to interpret this phrase. Is it sufficient to refer the final block and operatingPeriod in an nextBlockRef and nextOperatingPeriodRef attribute, or do I have to add an additional circulation element at the end with a blockRef and operatingPeriodRef pointing to the last block and operatingPeriod?

Best regards,
Leopold Kühschelm

[Updated on: Mon, 20 November 2017 11:33] by Moderator

Report message to a moderator

Re: How to represent open circulations in railML? [message #1672 is a reply to message #1663] Thu, 23 November 2017 12:55 Go to previous messageGo to next message
Dirk Bräuer is currently offline  Dirk Bräuer
Messages: 221
Registered: August 2008
Senior Member
Dear Leopold,

> Is it sufficient to refer the final block and operatingPeriod in an nextBlockRef and nextOperatingPeriodRef attribute, or do I have to add an additional circulation element at the end with a blockRef and operatingPeriodRef pointing to the last block and operatingPeriod?

Currently, as far as I know, there is only one usage of railML rostering for open circulations: The last block has a (redundant) <circulation> element without /nextBlockRef/ and without /nextOperatingPeriodRef/ attributes.

> But in my point of view this last circulation element is redundant and may be left out...

Yes, I agree, but this is apparently a bit too "indirect", implicit. However, as far as I am concerned, it was not the intention when the current structures were designed.

A closed circulation was regarded as the "normal" case - hence the word "circulation". The "open circulation" (which may be regarded as no circulation at all) was seen as a special case which is derived from the normal case. In a closed circulation, every block needs a <circulation> element. Therefore, to ease usage of structures and uniqueness, also in an "open circulation" every block should have a <circulation> element.

One could discuss whether a closed circulation is really the "normal" case; actually there are arguments against it. The question may be whether the alternative usage you describe is shall be valid railML or not. Currently, for the sake of compatibility, I would vote for "not valid", in spite of the obvious redundancy.

With best regards,
Dirk.


---
Am 17.11.2017 um 16:20 schrieb Leopold Kühschelm:
> Dear railML Timetable Community!
>
> When defining an rostering with an open (non-cyclic) circulation of blocks, there are two different possibilities to model them in railML.
>
> Either with an final open circulation Element at the end:
>
>       <circulations>
>           <circulation blockRef="b00380" operatingPeriodRef="op0103" nextBlockRef="b00381" nextOperatingPeriodRef="op0104"/>
>           <circulation blockRef="b00381" operatingPeriodRef="op0104" nextBlockRef="b00382" nextOperatingPeriodRef="op0105"/>
>           <circulation blockRef="b00382" operatingPeriodRef="op0105" nextBlockRef="b00383" nextOperatingPeriodRef="op0106"/>
>           <circulation blockRef="b00383" operatingPeriodRef="op0106" nextBlockRef="b00384" nextOperatingPeriodRef="op0107"/>
>           <circulation blockRef="b00384" operatingPeriodRef="op0107"/>
>       </circulations>
>
> So you can see in the example there is a final circulation with no nextBlockRef and nextOperatingPeriodRef attributes. But in my point of view this last circulation element is redundant and may be left out - like the following example depicts:
>
>      <circulations>
>           <circulation blockRef="b00380" operatingPeriodRef="op0103" nextBlockRef="b00381" nextOperatingPeriodRef="op0104"/>
>           <circulation blockRef="b00381" operatingPeriodRef="op0104" nextBlockRef="b00382" nextOperatingPeriodRef="op0105"/>
>           <circulation blockRef="b00382" operatingPeriodRef="op0105" nextBlockRef="b00383" nextOperatingPeriodRef="op0106"/>
>           <circulation blockRef="b00383" operatingPeriodRef="op0106" nextBlockRef="b00384" nextOperatingPeriodRef="op0107"/>
>       </circulations>
>
>
> As well I have read the railML-Wiki entry on circulations (http://wiki.railml.org/index.php?title=TT:circulation). Ther I found following section on this question:
>
> “There exists a <circulation> element for every block on every operational day. Via the attributes nextBlockRef and nextOperatingperiodRef the blocks are connected to a chain and form a rostering.
> …”
>
> I am not quit sure how to interpret this phrase. Is it sufficient to refer the final block and operatingPeriod in an nextBlockRef and nextOperatingPeriodRef attribute, or do I have to add an additional circulation element at the end with a blockRef and operatingPeriodRef pointing to the last block and operatingPeriod?
>
> Best regards,
> Leopold Kühschelm
>
Re: How to represent open circulations in railML? [message #1684 is a reply to message #1663] Mon, 18 December 2017 08:02 Go to previous message
Joachim.Rubröder is currently offline  Joachim.Rubröder
Messages: 31
Registered: September 2004
Member
Dear Leopold

Between these two alternatives I agree with Dirk and would vote for the first one because it is more explicit.
In ever such cases I would prefer a clear and easy understandable structure in spite of a possible redundancy.

With best regards,
Joachim Rubröder
Previous Topic: Referenzierung von ausgefallenen Zügen / Referencing of canceled trains
Next Topic: example data: East Saxony railway network by FBS
Goto Forum:
  


Current Time: Thu Jan 18 20:35:53 CET 2018