IS:topology

From railML 3 Wiki
Jump to navigation Jump to search

Introduction

Documentation

Syntax

Autoexport from the XML-Schema for element IS:topology of railML® version 3.3
    
Documentation container element for topology model
Subschema infrastructure
Parents*

infrastructure

Children

netConnectorRelations (0..1), netConnectors (0..1), netElements (1..1), netRelations (0..1), netTravelPaths (0..1), networks (1..1)

Attributes:None
*Notice:
Elements may have different parent elements. As a consequence they may be used in different contexts.
Please, consider this as well as a user of this Wiki as when developing this documentation further.
Aspects that are only relevant with respect to one of several parents should be explained exclusively in the documentation of the respective parent element.


 

Autoexport from the XML-Schema for element IS:topology of railML® version 3.2
    
Documentation container element for topology model
Subschema infrastructure
Parents*

infrastructure

Children

netElements (1..1), netRelations (0..1), netTravelPaths (0..1), networks (1..1)

Attributes:None
*Notice:
Elements may have different parent elements. As a consequence they may be used in different contexts.
Please, consider this as well as a user of this Wiki as when developing this documentation further.
Aspects that are only relevant with respect to one of several parents should be explained exclusively in the documentation of the respective parent element.


 

Autoexport from the XML-Schema for element IS:topology of railML® version 3.1
    
Documentation container element for topology model
Subschema infrastructure
Parents*

infrastructure

Children

netElements (1..1), netRelations (0..1), networks (1..1)

Attributes:None
*Notice:
Elements may have different parent elements. As a consequence they may be used in different contexts.
Please, consider this as well as a user of this Wiki as when developing this documentation further.
Aspects that are only relevant with respect to one of several parents should be explained exclusively in the documentation of the respective parent element.


 


Changes 3.1→3.2

There exists an overview of all changes between railML® 3.1 and railML® 3.2 on page Dev:Changes/3.2.

The children have been changed.

Changes 3.2→3.3

There exists an overview of all changes between railML® 3.2 and railML® 3.3 on page Dev:Changes/3.3.

The children have been changed.

Semantics

Best Practice / Examples

The structure of a railway <track> <network> is described by its <topology>. <topology> defines how the <track>s are connected with each other at <switchIS>es and <crossing>s and how the railway stations or <operationalPoint>s are connected via railway <line> sections. Since all trains run on rails (<track>s) and all relevant <infrastructure> elements are somehow situated in a defined relation on or next to the <track>, <topology> provides the basis for the location of static and dynamic elements in railways. Further, <topology> defines the possible ways of movement within the railway <track> <network>. The following figure shows how the railway <track> <network> is reduced to a microscopic and a more abstract mesoscopic <topology>model:

RailML SimpleExample DE v11 180903 IL cropped.svg

Microscopic Topology

🗒️ netElement/relation has been deprecated since railML 3.2 (link to the railML® website), removed since railML 3.3. Current version of railML is 3.3.  

The micro topology contains nine <netElement> objects, which are connected with each other by eleven <netRelation> objects. Altogether, the microscopic topology level network contains 20 <networkResource> objects. To better understand these concepts, the objects have human-readable IDs and references; it is strongly advised to use a generic number once applied to an actual project (link to the railML® website). The railML® file shall look like this:

<infrastructure id="is_01">
    <topology>
      <netElements>
        <netElement id="ne_a01">
          <relation ref="nr_a01a02"/>
          <relation ref="nr_a01a03"/>
        </netElement>
        <netElement id="ne_a02">
          <relation ref="nr_a01a02"/>
          <relation ref="nr_a02a03"/>
        </netElement>
        <netElement id="ne_a03">
          <relation ref="nr_a01a03"/>
          <relation ref="nr_a02a03"/>
          <relation ref="nr_a03x01"/>
        </netElement>
        <netElement id="ne_b01">
          <relation ref="nr_b01b03"/>
          <relation ref="nr_b01b04"/>
        </netElement>
        <netElement id="ne_b02">
          <relation ref="nr_b02b04"/>
          <relation ref="nr_b02b05"/>
        </netElement>
        <netElement id="ne_b03">
          <relation ref="nr_b01b03"/>
          <relation ref="nr_b03b04"/>
          <relation ref="nr_x01b03"/>
        </netElement>
        <netElement id="ne_b04">
          <relation ref="nr_b01b04"/>
          <relation ref="nr_b02b04"/>
          <relation ref="nr_b03b04"/>
          <relation ref="nr_b04b05"/>
        </netElement>
        <netElement id="ne_b05">
          <relation ref="nr_b02b05"/>
          <relation ref="nr_b04b05"/>
        </netElement>
        <netElement id="ne_x01">
          <relation ref="nr_a03x01"/>
          <relation ref="nr_x01b03"/>
        </netElement>
      </netElements>
 
      <netRelations>
        <netRelation id="nr_a01a02" positionOnA="1" positionOnB="1" navigability="None">
          <elementA ref="ne_a01"/>
          <elementB ref="ne_a02"/>
        </netRelation>
        <netRelation id="nr_a01a03" positionOnA="1" positionOnB="0" navigability="Both">
          <elementA ref="ne_a01"/>
          <elementB ref="ne_a03"/>
        </netRelation>
        <netRelation id="nr_a02a03" positionOnA="1" positionOnB="0" navigability="Both">
          <elementA ref="ne_a02"/>
          <elementB ref="ne_a03"/>
        </netRelation>
        <netRelation id="nr_b01b03" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne_b01"/>
          <elementB ref="ne_b03"/>
        </netRelation>
        <netRelation id="nr_b01b04" positionOnA="0" positionOnB="0" navigability="None">
          <elementA ref="ne_b01"/>
          <elementB ref="ne_b04"/>
        </netRelation>
        <netRelation id="nr_b02b04" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne_b02"/>
          <elementB ref="ne_b04"/>
        </netRelation>
        <netRelation id="nr_b02b05" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne_b02"/>
          <elementB ref="ne_b05"/>
        </netRelation>
        <netRelation id="nr_b03b04" positionOnA="1" positionOnB="0" navigability="Both">
          <elementA ref="ne_b03"/>
          <elementB ref="ne_b04"/>
        </netRelation>
        <netRelation id="nr_b04b05" positionOnA="1" positionOnB="1" navigability="None">
          <elementA ref="ne_b04"/>
          <elementB ref="ne_b05"/>
        </netRelation>
        <netRelation id="nr_a03x01" positionOnA="1" positionOnB="0" navigability="Both">
          <elementA ref="ne_a03"/>
          <elementB ref="ne_x01"/>
        </netRelation>
        <netRelation id="nr_x01b03" positionOnA="1" positionOnB="0" navigability="Both">
          <elementA ref="ne_x01"/>
          <elementB ref="ne_b03"/>
        </netRelation>
      </netRelations>
   
      <networks>
        <network id="nw01">
          <level id="lv0" descriptionLevel="Micro">
            <networkResource ref="ne_a01"/>
            <networkResource ref="ne_a02"/>
            <networkResource ref="ne_a03"/>
            <networkResource ref="ne_b01"/>
            <networkResource ref="ne_b02"/>
            <networkResource ref="ne_b03"/>
            <networkResource ref="ne_b04"/>
            <networkResource ref="ne_b05"/>
            <networkResource ref="ne_x01"/>
            <networkResource ref="nr_a01a02"/>
            <networkResource ref="nr_a01a03"/>
            <networkResource ref="nr_a02a03"/>
            <networkResource ref="nr_b01b03"/>
            <networkResource ref="nr_b01b04"/>
            <networkResource ref="nr_b02b04"/>
            <networkResource ref="nr_b02b05"/>
            <networkResource ref="nr_b03b04"/>
            <networkResource ref="nr_b04b05"/>
            <networkResource ref="nr_a03x01"/>
            <networkResource ref="nr_x01b03"/>
          </level>
        </network>
      </networks>
    </topology>
  </infrastructure>


Mesoscopic Topology

🗒️ netElement/relation has been deprecated since railML 3.2 (link to the railML® website), removed since railML 3.3. Current version of railML is 3.3.  

The mesoscopic/macroscopic topology implements the line view of the railway network. All tracks within an operational point are grouped together. The same is done for all the tracks that belong to one section of line between the operational points. This means for our simple example: the macro topology contains three <netElement> objects connected with each other by two <netRelation> objects. Altogether, the mesoscopic topology level network contains five <networkResource> objects. The aggregation between microscopic and mesoscopic topology levels is realized via element collections. In particular, the mesoscopic <netElement> object references the microscopic <netElement> objects as element parts. The railML® syntax for resulting mesoscopic topology shall look like this:

 <infrastructure id="is_01">
    <topology>
      <netElements>
        ...
        <netElement id="ne_a11">
          <relation ref="nr_a11x11"/>
          <elementCollectionUnordered id="ne_a11_ecu01">
            <elementPart ref="ne_a01"/>
            <elementPart ref="ne_a02"/>
            <elementPart ref="ne_a03"/>
          </elementCollectionUnordered>
        </netElement>
        <netElement id="ne_b11">
          <relation ref="nr_x11b11"/>
          <elementCollectionUnordered id="ne_b11_ecu01">
            <elementPart ref="ne_b01"/>
            <elementPart ref="ne_b02"/>
            <elementPart ref="ne_b03"/>
            <elementPart ref="ne_b04"/>
            <elementPart ref="ne_b05"/>
          </elementCollectionUnordered>
        </netElement>
        <netElement id="ne_x11">
          <relation ref="nr_a11x11"/>
          <relation ref="nr_x11b11"/>
          <elementCollectionOrdered id="ne_x11_ecu01">
            <elementPart ref="ne_x01"/>
          </elementCollectionOrdered>
        </netElement>
      </netElements>
 
      <netRelations>
        ...
        <netRelation id="nr_a11x11" positionOnA="0" positionOnB="0" navigability="Both">
          <elementA ref="ne_a11"/>
          <elementB ref="ne_x11"/>
        </netRelation>
        <netRelation id="nr_x11b11" positionOnA="1" positionOnB="0" navigability="Both">
          <elementA ref="ne_x11"/>
          <elementB ref="ne_b11"/>
        </netRelation>
      </netRelations>
   
      <networks>
        <network id="nw01">
          ...
          <level id="lv1" descriptionLevel="Meso">
            <networkResource ref="ne_a11"/>
            <networkResource ref="ne_b11"/>
            <networkResource ref="ne_x11"/>
            <networkResource ref="nr_a11x11"/>
            <networkResource ref="nr_x11b11"/>
          </level>
        </network>
      </networks>
    </topology>  
  </infrastructure>


When the railway track network topology modelling is finished, the next step is to define a linear referencing system that can be used to provide a spatial dimension to the topology elements.

Additional Information

Notes

Open Issues