Home » railML newsgroups » railml.timetable » [railML3] Community poll regarding modelling of circulation
[railML3] Community poll regarding modelling of circulation [message #3248] Mon, 03 June 2024 15:37
Milan Wölke is currently offline  Milan Wölke
Messages: 142
Registered: April 2007
Senior Member
Hi all,

in our last timetable developer group meeting we discussed about a certain aspect of the modelling we wanted to get feedback from the community about. For this let me set the stage a little. The general idea of describing circulations in railML 3 is to define blocks and connections between these block (so no more intermediate layers). So far our solution was to simply create a so called <blockConnection> between two <block>'s, a block being a task like cleaning, shunting, or an operational train run.
When creating examples for this developers noted that it would be easier if such a connection was not just from one block to one other but rather from one block to multiple possible successors. Depending on the attached validity either on or the other successor would apply.

Let me show by example:

The one to one block connection would look like this:
<vehicleRosterings>
	<!-- all blockConnections reference the same <block> in the <from> -->
	<vehicleRostering ...>
		<blockConnection>
			<from blockRef="bl_4712_BA" validityRef="1101000" />
			<to blockRef="bl_4711_A_B" dayOffset="1" />
		</blockConnection>
		<blockConnection>
			<from blockRef="bl_4712_BA" validityRef="0000100" />
			<to blockRef="bl_4711_A_B" dayOffset="3" />
		</blockConnection>
		<blockConnection>
			<from blockRef="bl_4712_BA" validityRef="0010000" />
			<to blockRef="bl_refuel" dayOffset="0" />
		</blockConnection>
	</vehicleRostering>
</vehicleRosterings>

The same would look like this with the alternative approach:
<vehicleRosterings>
	<!-- Summary of all <to> elements for a blockRef -->
	<vehicleRostering ...>
		<blockConnection blockRefFrom="bl_4712_BA">
			<to blockRef="bl_4711_A_B" validityRef="1101000" dayOffset="1" />
			<to blockRef="bl_4711_A_B" validityRef="0000100" dayOffset="3" />
			<to blockRef="bl_refuel" validityRef="0010000" dayOffset="0" />
		</blockConnection>
	</vehicleRostering>
</vehicleRosterings>

Both code snippets specify that following bl_4712_BA different blocks may follow depending on the validity.
The benefit is that the secondary approach reduced redundancy by a lot. However, it may be harder for people unfamiliar with circulations in general to understand the concept. Since reduction of redundancy was one goal we tried to achieve with railML 3 timetable and clarity of concepts another following our targets doesnt really help us decide in this case. That why we wanted to ask for the opinion of the community.

Please let us know what you think.


Milan Wölke – Timetable scheme coordinator
railML.org (Registry of Associations: VR 5750)
Altplauen 19h; 01187 Dresden; Germany www.railML.org
Previous Topic: [railML3] Suggested change for railML 3.3 Timetable regarding times at passing points
Goto Forum:
  


Current Time: Fri Jun 14 15:16:29 CEST 2024