Hierarchical structure (levels)

From RailTopoModel® Wiki
Revision as of 18:27, 18 April 2016 by Nina Loof (talk | contribs)
Jump to navigation Jump to search
Lorem ipsum...

Hierarchical Structure (Language Unit)

To describe the hierarchical structure of a “Network” instance which is built from “NetElement” instances belonging to different description levels the RailTopoModel provides the classes “CompositionNetElement”, “ElementPartCollection”, “OrderedCollection” and “UnorderedCollection”.
The important difference between “OrderedCollection” and “UnorderedCollection” is the possibility to enforce a sequence in the “NetElements” children at the more detailed description level.

The fact that a given “NetElement” instance is composed from “NetElement” instances of a more detailed description level is modelled with the “CompositionNetElement” class.


The following example shows the principle of aggregation.
Starting point is a sample network at micro level depicting switches and tracks.

The aggregation shall produce “Operating Points” out of the micro level to be used in more generalised applications:

The model sees the original network this way (each dot represents a NetElement):

The target OP’s have known boundaries that happen to be in the middle of the tracks, so those tracks have to be split first to identify what falls inside the boundaries and what stays outside.

The RailTopoModel concepts provides structures to split the NetElement instances. For each “NetElement” instance which has to broken up, two (or more) “LinearElementPart” instances are created. The first from 0 to split point, the other from split point to 1 (or to the next split point), effectively forming two(or more) new elements on another level.

The resulting network will be depicted as follows (Each dot is an “ElementPart”, those in orange are the new ElementParts resulting from a split, those in blue and green ElementParts keeping the totality of their parent element):

At this step the advantage of considering linear and non-linear elements in the same way can be seen: The graph theory gives us tools to aggregate nodes of a graph. All being “NetElements” as nodes (and not linear elements as links and punctual elements as nodes), one can easily aggregate those elements to form a new network:

Using the previous symbology (where the blue dots represent linear and green dots nonlinear) the green rectangles shows the elements that will be aggregated to obtain the target description of the network:

Structure Model

Model part 6 (© railML)

The CompositionNetElements are the NetElements of Figure 54.
Each of those elements is composed of one or more collections (the blue and green boxes in Figure 55).
Each of those collections contains ElementParts (the dots of Figure 55) and those parts are defined by one or two coordinates of the parent element.
There are two types of collections defined in the model: Ordered and unordered.
The OrderedCollection defines a collection that has to be a continuous string of elements, without orientation changes. It makes possible to compute a length and orientation.

Ordered and unordered collections

The OrderedCollection defines a collection that has to be a continuous string of elements, without orientation changes2. Using an OrderedCollection it is possible to compute a length and orientation.


This red collection is an OrderedCollection : it has a start, an end and it is possible to compute a length.

In the more generic UnorderedCollection still all elements are connected, but it is not possible to calulate a length or deduct an orientation.
This purple collection is an UnorderedCollection

It may have more than one start, more than one end and more than one length.
In this example, a nonbinding model for disaggregation, that goes conform to the RailTopoModel, will be outlined.
It is likely most levels will be built up, from nano to macro, but it is also possible to build downwards. For example, if the required data to do so is available, or if the nodes are to be disaggregated schematic, using “Templates” (a default station layout, a standard switch layout…).
This procedure seems to be very useful as a system function for capacity planning or for the fast configuration of simulation datasets in situations of inadequate or outdated base documentation.
As an example it may be assumed that the level of detail for the network7 is as shown in Figure 62, and that a lower level is to be derived.


In practical use very probably most derived levels will be produced using aggregation. Starting from datasets with nano level up to macro level.
The RailTopoModel support also possible to produce description levels starting from higher aggregated levels.
A possible use case is the application of “Templates” for quick setup of default station layout or a standard switch layout.
This procedure seems to be very useful as a system function for capacity planning or for the fast configuration of simulation datasets in situations of inadequate or outdated base documentation.

The orientation of the Part needs not be the same as the orientation of the parent. The parameter KeepsOrientation allows to reverse the element in order to keep a homogeneous orientation for the collection.
This assumes that the starting point is the level of detail for the network3 as shown below, and that a lower, more detailed level has to be produced:

In the model view this will translate into:

Assuming a “Template” OP

The result is:

Let’s assume that, for the following example, you know your network as a whole on the meso level and wish to build a micro representation for capacity planning, using a standard station layout.
Afterwards the adjacent linear elements are fused if required.

The resulting model view will be as follows:

The aggregation is done in two steps: first the elements are decomposed into “element parts” and then the parts are fused together to create new elements. There is thus very little difference between aggregation and disaggregation, the main difference is the purpose of the operation. While aggregation simplifies the network and reduces the number of elements, disaggregation raises this number by adding detail to the network.
There are two ways of applying the disaggregation procedure:
Depending on how the created level will be linked to the existing level disaggregation might produce a higher or a lower description level.
A lower level is produced when information is added to the original Elements level.
A higher level is produced if the objects of the new level can be derived as a function of the objects of the original level.

Different Level Views

Higher level view

Disaggregation of a higher level amounts to creating an alternative path. In other words creating another “Branch” in the tree of level definitions. For example, one may want to divide your network following a station/open track rule- the “predefined path” - for path calculation purposes, and divide it into track circuits for train tracking and control.

The track circuits have to be defined as collection of parts of the elements of the base network.
Fortunately the RailTopoModel allows an infinite number of those branches.

In the previous example, the function of macro level could be defined both in terms of the Station/open track definition and as a collection of track circuits.

Both path give a validnetwork (in that it obeys the model’s rules), but the two results may not always be identical.

Lower level view

Building downwards, in fact multiple “roots” are created from the trunk, adding a new definition of the elements to the “base” level. It is important to be careful and ensure that the multiple definitions result in exactly the same element at the base level.

It also means that, an element at any level may have several definitions, depending on what level is considered as the source, and that a routing level has to be built at the end of each “root”. As the roots never rejoin the trunk (else, they would be built upwards) there is no real issue concerning the data coherency. As long as the client is conscious from which root he takes the data.
For example, a station may have several definitions, whether viewed from the point of a signalman, a passenger operator.

In the signalman’s view, all the tracks and switches are important.

In the operator’s view, the platforms and the yard are the main elements in this view.
The two definitions may be considered equivalent if there is an agreement of the boundaries, meaning that what is inside and outside stays the same(geographically or functionally).

What you should have learned

Lorem ipsum...

  • Bulleted list item

Back To Previous Chapter Next Chapter
Structure Topological structure (network) -