Main Page: Difference between revisions

From railML 2 Wiki
Jump to navigation Jump to search
[unchecked revision][checked revision]
m (Typo)
(typos)
 
(109 intermediate revisions by 11 users not shown)
Line 1: Line 1:
== New to railML Wiki / {{Deu|Neu im railML-Wiki}}==
{{navi}}
=== Welcome to the railML.org Wiki / {{Deu| Willkommen im railML.org-Wiki}}===
=== Welcome to the {{rml}} wiki / {{Deu| Willkommen im {{rml}}-Wiki}} ===
{| class="wikitable toptextcells" style="text-align:left vertical-align:top"
|- style="vertical-align:top;"
|style="width:45%" | {{rml}} ('''rail'''way '''M'''arkup '''L'''anguage) is an open, XML based data exchange format for data interoperability of railway applications. For further information please visit the [https://www.railML.org official project website] or {{wikipedia|railML|the wikipedia {{rml}} article}}.


RailML® is not the finished development of a central group. Instead, railML grows through the joint work of the partners and is steadily being extended. We invite you to participate on this future-oriented project and to take advantage of these standardized interfaces. Our [http://forum.railml.org Forum] is meant to help coordinate the joint work of the development partners and provides an open discussion platform.
This wiki is dedicated to all versions of {{rml|2}}. A separate wiki for {{rml|3}} is available {{wiki3|2=here}}. This wiki should support you in the development of {{rml}} interfaces and inform you about the basic elements and modelling concepts of the {{rml}} schema.


This wiki should supporting the development of railML-schemes. It allows users to create new content and edit existing articles, and setup a comprehensive knowledge database to the railML standard.
This wiki is being kept in English. Some information is provided additionally also in {{Deu|German}}. You are invited to contribute to this wiki and to the development of the {{rml}} schema. Please, see our guideline "''[[dev:How_to_join,_edit_and_create_the_railML_wiki#How_to_join_the_Wiki|How to join the railML wiki]]''" to get to know the standards of railML's wiki and the procedure for getting a writer's account. You can find further guidelines on {{rml}} in section [[#Users_and_Developers_Guides]].


All articles must be created in English. Additional German comments are welcomed. The language of the user interface can be changed after login.
|style="width:*" | {{Deu|{{rml}} ('''rail'''way '''M'''arkup '''L'''anguage) ist ein offenes, XML-basiertes Datenaustauschformat zur gegenseitigen Benützbarkeit der Daten von Anwendungen im Eisenbahnbereich. Für weitere Informationen besuchen Sie bitte die [https://www.railML.org offizielle Projektwebsite] oder {{wikipedia|railML|den Wikipedia-Artikel über {{rml}}|de}}.}}


In order to ensure a corporate layout, please use the [[CO:Special_Wiki_Markup| railML markup templates]] in your edits. Please refer to the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide user manual] (external link to a different wiki - not railML) for help to edit the wiki.
{{Deu|Dieses Wiki ist sämtlichen Versionen von {{rml|2}} gewidmet. Ein separates wiki für {{rml|3}} finden Sie {{wiki3|hier}}. Ziel dieses Wikis ist, Sie bei der Entwicklung von {{rml}}-Schnittstellen zu unterstützen und Sie über die grundlegenden Elemente und Modellierungskonzepte des {{rml}}-Schemas zu informieren.}}


{{Deu|
{{Deu|Dieses Wiki wird auf}} Englisch {{Deu|geführt. Einzelne Informationen stellen wir außerdem auf Deutsch zur Verfügung. Sie sind herzlich eingeladen, sich an der Entwicklung dieses Wikis sowie des {{rml}}-Schemas zu beteiligen. Lesen Sie dazu bitte unseren Leitfaden ''„[[dev:How_to_join,_edit_and_create_the_railML_wiki#How_to_join_the_Wiki|How to join the {{rml}} wiki]]“'', um sich mit den Standards des {{rml}}-Wikis vertraut zu machen und die Vorgangsweise zur Erteilung eines Autorenaccounts kennenzulernen. Weitere Leitfäden, die {{rml}} betreffen, finden Sie im Abschnitt [[#Users_and_Developers_Guides]].}}
RailML® lebt von der Mitarbeit der Nutzer des Standards. Sie können an der Entwicklung teilhaben und Ihre Bedürfnisse und Erfahrungen in zukünftige railML-Teilschemen einbringen. Unser [http://forum.railml.org Diskussionsforum] steht Ihnen für allgemeine Fragen zum Projekt oder zu den einzelnen Teilschemen zur Verfügung.<br>
|}
Mit Hilfe dieses [http://de.wikipedia.org/wiki/Wiki Wikis] soll der Einstieg in die Entwicklung der railML-Teilschemen erleichtert werden. Es ermöglicht den Benutzern neue Inhalte zu schaffen, sowie vorhandene Beiträge zu bearbeiten und damit eine umfassende Wissensdatenbank zum railML-Standard aufzubauen.<br>
Alle Einträge des Wikis sind in Englisch zu verfassen und gern mit deutschen Hinweisen zu ergänzen. Die Sprache der Benutzeroberfläche lässt sich nach dem Login anpassen.<br>
Um ein einheitliches Layout zu erreichen, nutzen Sie bitte die [[CO:Special_Wiki_Markup| railML Auszeichnungsvorlagen]]. Hilfe zum Bearbeiten des Wikis finden Sie im [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide Benutzerhandbuch] (externer Link zu einem anderen Wiki - nicht railML).
}}


=== How to join the Wiki ===
== Current {{rml|2}} subschemas ==


Joining the Wiki is very easy and only a matter of seconds.
There are three subschemas for productive use: Infrastructure (IS), Timetable and Rostering (TT) and Rollingstock (RS). Elements that are needed by all subschemas or do not fit into this structure are subsumed in the class Common (CO). Please contact the coordinator of the respective schema (see {{site|https://www.railML.org/en/user/subschemes.html}}) for questions and enquiries. Additional subschemas will be developed only in the {{rml|3}} domain. Please, frame the regarding suggestions and contributions to this end.


#''Go to the login page''
#*In the upper right corner of this page, you find a link to [http://wiki.railml.org/index.php?title=Spezial:Userlogin sign in] to this Wiki. If you currently use the German layout of this Wiki, the link is called "Anmelden".
#*Follow that link to get to the login page.
# ''Choose a user name and a password''
#*The first two text fields of the login page ask you to enter a user name and a password. The username can be arbitrary, but should be the first letter of your first name followed by a dot and your complete last name (like [[Benutzer:V.Knollmann | V.Knollmann]] for example).
#*Since you are new to Wiki, you must re-enter you password, enter your email address and your real name. That what the lower three text fields are for.
#*Now you can request a new account ("Neues Nutzerkonto anlegen") and are instantly able to work with the Wiki!
#''Confirm your mail address''
#*Immediately after creating a new account, an email is sent to you which contains a link. Click that link to confirm that the mail address you've entered above is really yours.
#''That's it!''
#*You are ready to contribute to the Wiki!
#*If you like to, you can enter some information about you on your personal page. Your personal page's name is Benutzer:Username (like [[Benutzer:V.Knollmann | Benutzer:V.Knollmann]]).


=== How to contribute ===
==== Edit element documentation sites ====
In most cases the [[:Category:RailML_Documentation | element documentation sites]] are already defined. If not, have a look at the [[Dev:Wiki_Documentation_Guidelines#Start_a_new_railML_Wiki_page_for_a_new_railML_element | Developers Guide for new element documentation sites]].
In the case you want to change or extend some content on a certain [[:Category:RailML_Documentation | element documentation site]], do the following:
<ol>
<li>Go to the certain wiki site</li>
<li>Choose "Edit" or {{Deu | Bearbeiten}}!</li>
<li>Extend or change the content by deploying the [[CO:Special_Wiki_Markup| railML markup templates]].
Please respect others work and publish changements prior to the edit in the appropriate [http://forum.railml.org Forum].
Please be careful (especially with brackets), there are parameters to fill. Sometimes some surprise occurs after a preview.</li>
<li>Do the "preview" cycle. All fine?</li>
<li>Describe your changes with "Summary" or {{Deu|Zusammenfassung}}</li>
<li>Submit your changes with "Save" or {{Deu|Speichern}}</li>
<li>Done. Thank you for your contribution.</li>
</ol>
==== Edit or create FAQ sites ====
Sometimes more general topics should be summarized covering a bunch of elements. That's a good point to start a FAQ page in the appropriate sub-schema.
<ol>
<li>Define the wiki page name in the browser URL:
<pre>http://www.wiki.railml.org/index.php?title=<sub-schema-prefix>:<page-name-with-underscores></pre>
example: <code><nowiki>http://www.wiki.railml.org/index.php?title=Dev:Wiki_Documentation_Guidelines</nowiki></code> results in http://www.wiki.railml.org/index.php?title=Dev:Wiki_Documentation_Guidelines</li>
<li>You get a blank page with the possibility to "Edit".<br>
Choose "Edit" or {{Deu | Bearbeiten}}!</li>
<li>Insert the content you may contribute by deploying the  [[CO:Special_Wiki_Markup| railML markup templates]]</li>
<li>Do the "preview" cycle. All fine?</li>
<li>Describe your changes with "Summary" or {{Deu|Zusammenfassung}}</li>
<li>Submit your changes with "Save" or {{Deu|Speichern}}</li>
<li>Done. Thank you for your contribution.</li>
</ol>
== Current railML subschema ==


=== Infrastructure (IS) ===
=== Infrastructure (IS) ===
 
{{main|Infrastructure}}
==== General Information ====
The {{rml}} [[Infrastructure|Infrastructure subschema]] is focused on the description of the railway network infrastructure including all its various facets that are needed by the data exchange applications. In particular, the {{rml}} infrastructure schema contains the following information:
 
* Topology. The track network is described as a topological node edge model.
The Infrastructure subschema contains a data structure for the storage of
* Coordinates. All railway infrastructure elements can be located in an arbitrary 2- or 3-dimensional coordinate system, e.g. the WGS84 that is widely used by today's navigation software.
 
* Geometry. The track geometry can be described in terms of radius and gradient.
* tracks, switches and the topology of a line
* Railway infrastructure elements enclose a variety of railway relevant assets that can be found on, under, over or next to the railway track, e.g. balises, platform edges, and level crossings.
* various operations and control elements (e. g. signals along the track)
* Further located elements encompass elements that are closely linked with the railway infrastructure, but that "cannot be touched", e.g. speed profiles and track conditions.
* tunnels, bridges
* any kind of "border" (owner change, gauge change, axle load change, electrification, ...)
* visualization data for displaying a net
 
Please visit the [http://www.railml.org railML-Website] for more detailed information about the Infrastructure subschema or send an [mailto:coord@infrastructure.railml.org email] to the coordinator of the subschema.
 
There is also a "historic" collection of new [[IS_IntendedFeatures | features]] for the Infrastructer subschema. It was developed in the preparation works of railML version 1.1. Some of the suggestions are already implemented in the stable railML 2.0 release. Other extensions wait for users with strong needs for them.
 
==== Documentation ====
 
The following lists provide links to Infrastructure Documentation sites:
 
* [[:Category:Infrastructure_Elements | Infrastructure Elements]]
* Infrastructure Examples
 
==== FAQ ====
 
Some general questions about infrastructure related aspects in railML files are summarized on the following wiki-sites:
 
* [[IS:TrackConnections|Connection between tracks]]
 
=== Timetable and Rostering (TT) ===
 
==== General Information ====
 
The timetable subschema is part of the complete [http://www.railml.org railML] schema providing a data structure in XML language for the exchange of railway specific data.
 
The timetable schema provides container for all data about any kind of timetables for operational or conceptional purposes. A flexible description of operating periods, which are important elements while dealing with timetables, is also included in the schema.
 
The root element is always {{CO:Tag|railml}}, thus it is even possible to combine data of timetable with those of other RailML schemas within one file. The main element for this schema is {{TT:Tag|timetable}}, which is the root for data about any timetable.
 
With the new branch of {{TT:Tag|rosterings}} it is intended to use this data schema as well for conceptional rolling stock schedules.
 
Please visit the [http://www.railml.org railML-Website] for more detailed information about the Timetable subschema or send an [mailto:coord@timetable.railml.org email] to the coordinator of the subschema.
 
==== Documentation ====
 
The following lists provide links to Timetable Documentation sites:
 
* [[:Category:Timetable_Elements | Timetable Elements]]
* [[TT:attributes | Timetable Attributes]]
* [http://www.irfp.de/download/railml_doku_beispiele.pdf Timetable Examples] A selection of mainly special cases relating to TT and IS sub-schemes (external link)
 
==== FAQ ====
 
Some general questions about timetable related aspects in railML files are summarized on the following wiki-sites:
 
* [[TT:Train_Coupling_And_Sharing | Train coupling and sharing]]
* [[TT:How_To_Reference_Infrastructure | How to reference infrastructure]]
* [[TT:Reversing_trains_and_formations | About reversing trains and formations]]
* [[TT:categoryUsage‎ | How to find out whether a train or train part is for passengers or freight? (Train types, categories, products, and passenger usage)]]


=== Rollingstock (RS) ===
=== Rollingstock (RS) ===
{{main|Rollingstock}}
The [[rollingstock|rollingstock subschema]] is part of the complete [https://www.railML.org {{rml}}] schema providing a data structure in XML language for the exchange of railway specific data.


==== General Information ====
The rollingstock schema provides a container for all data about any kind of railway vehicle including locomotives, multiple units, passenger and freight wagons. The second part of the schema enables the combination of single vehicles to formations as a fixed composition within a train or an entire train. It is intended to use this data schema for vehicle management as well as for detailed run-time calculations.
 
The rollingstock subschema is part of the complete [http://www.railml.org railML] schema providing a data structure in XML language for the exchange of railway specific data.
 
The rollingstock schema provides container for all data about any kind of rail vehicles including locomotives, multiple units, passenger and freight wagons. The second part of the schema enables the combination of single vehicles to formations as a fixed composition within a train or an entire train. The root element is always {{CO:Tag|railml}}, thus it is even possible to combine data of rolling stock with those of other RailML schemes within one file. The main element for this schema is {{RS:Tag|rollingstock}}, which is the root for data about any rolling stock.
 
It is intended to use this data schema for vehicle management as well as for detailed run-time calculations. Depending on the purpose only the {{RS:Tag|vehicles}} branch of the data tree may be populated or the {{RS:Tag|formations}} branch appears or both of them. The {{RS:Tag|vehicles}} branch contains all data related to single vehicles. However, there are data, which are mainly used in relation to a composition of vehicles. Therefore the {{RS:Tag|formations}} branch is used to reflect the characteristics an entire train or a composition of vehicles within a train.


The Rollingstock schema comprises the following features:
The Rollingstock schema comprises the following features:
Line 164: Line 42:
* possible specification of vehicle families and individual vehicles using the common features of the family
* possible specification of vehicle families and individual vehicles using the common features of the family
* different level of detail for data
* different level of detail for data
:# vehicle as black box (with respect to dynamic characteristics) with only mean values
:# vehicles as black boxes (with respect to dynamic characteristics) with only mean values
:# vehicle as black box (with respect to dynamic characteristics) with curves for particular values being variable within the operating range
:# vehicles as black boxes (with respect to dynamic characteristics) with curves for particular values being variable within the operating range
:# vehicle as white box with details about the internal propulsion system
:# vehicles as white boxes with details about the internal propulsion system
* vehicles with motive power, for passenger or freight use
* vehicles with motive power, for passenger or freight use
* combination of vehicles to formations, i.e. train parts or complete trains
* combination of vehicles to formations, i.e. train parts or complete trains


Please visit the [http://www.railml.org railML-Website] for more detailed information about the Rollingstock subschema or send an [mailto:coord@rollingstock.railml.org email] to the coordinator of the subschema.
=== Timetable and Rostering (TT) ===
 
{{main|Timetable|Timetable and Rostering}}
==== Documentation ====
The [[timetable|timetable subschema]] is part of the complete [https://www.railML.org {{rml}}] schema providing a data structure in XML for the exchange of railway specific data. It is the subschema that is most widely used.
 
The following lists provide links to Timetable Documentation sites:


* [[:Category:Rollingstock_Elements|Rollingstock Elements]]
The timetable subschema is used for all data necessary to exchange any kind of timetable for operational or conceptional purposes including the following information:
* [[RS:attributes|Rollingstock Attributes]]
* Operating Periods: The operating days for train services or rostering.
* Train Parts: The basic parts of a train with the same characteristics such as formation and operating period. The train part includes the actual information regarding the path of the train as a sequence of operation or control points together with the corresponding schedule information.
* Trains: One or more train parts make up a train and represent either the operational or the commercial view of the train run.
* Connections: The relevant connections/associations between trains at a particular operation or control point.
* Rostering: Train parts can be linked to form the circulations necessary for rostering (rolling stock schedules).


=== Common (CO) ===
=== Common (CO) ===
{{main|Common}}
The [[Common]] class shall cover all topics, which affect all other {{rml}} schemas alike.


==== General Information ====
The currently planned tasks and enhancements can be found {{site|https://development.railml.org/railml/version2/-/issues|in the {{rml|2}} ticketing system}}.


This subschema shall cover all topics, which affect all other railML-schemas alike.
== Codelists ==
{{main|dev:codelists|Codelists}}
Certain attributes require a choice from a vast, highly standardized but shifting set of values. For instance, there are many regional {{external|https://en.wikipedia.org/wiki/Loading_gauge|clearance gauge standards}}. As to facilitate the usage and update of the sets, this Information is outsourced into [[dev:codelist|codelists]] outside the {{rml}} schema.


The actual planned tasks and enhancements can be found at [http://trac2.assembla.com/railML/report Trac-Tickets] of the railML development space.
The codelists are identically available for {{rml|2}} and {{rml|3}}.


There is also a "historic" collection of proposed [[CommonDataTypes | Data Types]] for the Common subschema. It was developed in the preparation works of railML version 1.1. Some of the suggestions are already implemented in the stable railML 2.0 release. Other extensions wait for users with strong needs for them.
==Versions==
The current {{rml}}2 version is {{current}}. For more details see {{site|https://www.railml.org/en/developer/version-timeline.html|our version timeline}}. An overview of the regarding licenses can be found under {{site|https://www.railml.org/en/user/licence.html}}. To learn about the version history and the changes between the respective versions see [[Dev:changes]].


==== Documentation ====
== Users and Developers Guides ==
{{main|Dev:Guides}}
===Using and developing {{rml}}===
* complete {{rml|2}} trees with links to the corresponding wiki pages:
**[[Dev:XMLtree|The  {{rml|2.5}} tree]] (current)
**[[Dev:XMLtree/2.4|The  {{rml|2.4}} tree]]
**[[Dev:XMLtree/2.3|The  {{rml|2.3}} tree]]
* [[:category:concept|Basic {{rml}} Concepts]]
* [[Dev:example|{{rml}} example files]]
* [[Dev:Downloading and using railML®|Downloading and using {{rml}}]]
* [[Dev:Syntactic_Guidelines | Syntactic guidelines for a corporate code base]]
* [[Dev:Coding_XML_Components | Coding styles for XML components in {{rml}} schemas]]
* [[Dev:Guideline for participating in the development process|Guideline for participating in the development process]]
* [[Dev:Creating_instructions|Creating instructions for new {{rml}} elements]]
* [[Dev:Use_cases|Guideline on Use cases]] — what is a use case, where to find them and how to contribute to them.
* {{site|https://www.railml.org/en/developer/certification.html|Certification guideline|inlang=silent}}
* [[Dev:Semantic Constraints|How to deal with Semantic Constraints]]


The following lists provide links to Common Documentation sites:
===Improving the Wiki===
* [[:Category:Common_Elements | Common railML elements]]
* [[CO:attributes | Common railML Attributes]]
 
==== FAQ ====
 
Some general questions about handling railML files are summerized on the following wiki-sites:
 
* [[CO:identities | Handling identities]] ({{Attr|id}} values)
* [[CO:catalog | Local versus web-based validation]] (XML catalogs and XML namespaces)
* [[CO:versions | Versioning policy]] (version numbers, versioned XML namespaces)
* [[CO:versioning | Officially released versus developer version]] (Homepage, Subversion)
* [[CO:tickets | Discussed versus agreed features]] (Newsgroup, Trac Tickets)
* [[CO:xmlSyntax | XML Syntax issues]] (Attribute delimiters, Character references)
* [[CO:usingAny | Using "xs:any" elements, "anyAttribute"s and "other:anything" enumeration values]] for enhancing the railML files with your special needs
* [[CO:outsourcing | Using content libraries]] and fully validating without any error or warning messages
* [[CO:changes | Changes]] sorted by released versions
 
==== Developers Guides ====
 
* [[Dev:Syntactic_Guidelines | Syntactic guidelines for a corporate code base]]
* [[Dev:Coding_XML_Components | Coding styles for XML components in railML schemas]]
* [[Dev:Wiki_Documentation_Guidelines | Guidelines to enhance the wiki documentation]]
* [[Dev:Wiki_Documentation_Guidelines | Guidelines to enhance the wiki documentation]]
* [[Dev:Subversion_Guidelines | Guidelines handle the Subversion repository]]
* [[dev:How_to_join,_edit_and_create_the_railML_wiki#How_to_join_the_Wiki|How to join the {{rml}} wiki]]
* [[:category:template|Wiki-Templates]]
* [[Special:PopularPages|Access statistics]]


== Proposed railML subschema ==
==Contact==
Feel free to direct any comments, questions or remarks to the coordinators of {{rml}}.


=== Interlocking (IXL) ===
For our contact information see ''[[wiki.railML.org:Contact|Contact]]''
 
<hr>
==== Purpose ====
Enjoy the Wiki!
 
Two use cases have been identified at present:
* Engineering an electronic interlocking.
Interlocking industry typically translates paper plans and lists into configuration data. These data customise a generic interlocking into an interlocking that is specific to a station. If the railway company provides validated RailML to an interlocking manufacturor instead of paper, a high degree of automation turns possible. Automation reduces error rate and validation costs.
Presently, the overwhelming majority of data are taken from (paper) plans. Data exchange between IM and supplier takes the shape of graphical plans, tables or plain language requirement documents. These plans often are a print-out from suppliers proprietary tools. The manual conversion of the data from paper into the supplier’s tool chain is costly and likely to introduce errors that must be found and corrected by costly testing. Automated exchange and conversion of RailML data of the data that is currently taken from paper plans, into the suppliers tool chain will reduce cost. Better still, if the input data are known to be correct, validation costs will fall dramatically. The latter should be the principal reason to adopt a common exchange format.
[[Datei:IL_engineering_workflow.jpg]]
 
* Modelling.
Simulation models of a network need to know about the behaviour of an interlocking. E.g. the IL may exlude particular deviation routes; flank protection disallows use of tracksections; only one train at a time is allowed into a tunnel.
Train service providers simulate traffic on increasingly realistic models of their networks. Such models are useful to design and test timetables and plan capacity. Alternative route-setting is essential to model behaviour in case of obstructions. Simulation includes realistic interlocking routesetting behaviour. Simulation models include time-to-set and time-to-release parameters, restrictions due to flank protection, number of blocks reserved by trains due to the nature of the signalling system, alternative routes, mutually exclusive routes, etc.
 
Further uses may be identified.
 
==== General Information ====
 
This subschema shall store information about typical interlocking data like:
 
* train and shunting routes
* dependencies between signals, signal aspects, blocks, level crossings, and routes
* flank protection, e.g. switches and derailers affected by a route
* overlappings
 
The Interlocking subschema doesn't exist yet but is currently being developed. The discussion related to the development is held in the [news://news.railml.org/railML.infrastructure infrastructure forum] (or click [http://www.railml.org/forum/ro/?group=1 here] for access via HTTP).
 
A new phase has started for the development of a railML interlocking subschema.  The [http://www.railml.org/index.php/previous-events-2012.html railML events homepage] hosts the presentations of the participants of workgroup meetings. A first XML schema is drafted.
 
==== interlocking form and function ====
 
An interlocking is a system for safely setting routes in a station. In order to do that, it needs to know the answer to two fundamental questions:
* what does the station look like, i.e. what are the relative positions of signals, TVD, points, etc ?
* what are the rules for setting routes ?
 
The first question is a matter of '''topology'''. The interlocking needs information about the relative position of the various track elements. Tailoring an interlocking to a specific station is referred to as '''engineering''' (German: Projektierung).
 
The second question is a matter of '''rules and regulations'''. The rules and regulations for setting signals differ per country, or more correctly, railway administration. Capturing these operational rules is called '''logic design''' (German Betriebsordnung).
 
One may loosely compare this to Object Oriented programming where the objects (stations) are instances of (national) classes. Functions are is caught in class-methods that the object inherits. Form is caught in attributes that are specific to the instance.
 
Therefore, logic design is a one-off activity per country; "one size fits all". Engineering obviously is specific to a station.
 
Since most effort is spent on engineering, ''the RailML IL schema will not be concerned with logic but will focus on the engineering aspects''. Engineering is where most benefit is to be found ! RailML is not suited for formalising rules and regulations.
 
==== Geographic meets tabular interlocking ====
 
History has given us two interlocking families, the geographical (German: Spurplan) and the tabular (German: Verschlußplan) interlocking.
 
In a nutshell, the geographical interlocking is a neural network in which a train is literally routed through the network. The dispatcher requests a route from start to end and the interlocking seeks the points, signals and sections that need to be set or cleared.
 
The geographical interlocking is theoretically capable, very much like an internet router, to find a way from one signal to the next, whilst avoiding collissions.
 
The tabular interlocking keeps a table of conditions that points, signals and sections must meet before start signals may show proceed.
 
Both geographical and tabular interlockings produce safe routes.
 
''Both approaches obviously have common ground.''
 
The input for interlockings is basically twofold:
* Track plan
* Signal/speed plan
 
The track plan shows tracks, signalling related equipment and topology. The informed reader will immediately see that the the RailML Infrastructure schema captures the track plan. The track plan is a static plan.
 
RailML IS excels at modelling the network though we should point out that some relations currently are missing from the schema. For instance, there’s no straightforward way to capture relations between level crossings and track sections that activate the crossing. Such a relation says that the interlocking should close the level crossing when a train occupies a section. The same holds for flank-protection relations; the IL obviously needs to know which points must provide flank protection for a given route.
 
Modelling such relations is fairly easily added to the IL schema.
 
The signal plan is fundamental to routes. The signal plan typically shows links between consecutive signals and their aspects. 
This information tells the interlocking which aspects to set to signal a given route. Obviously, if a signal plan can capture this information, there is a way of capturing it in terms of RailML.
 
Next, the interlocking has to be told the conditions for setting safe routes.
 
The tabular interlocking is given the conditions in the shape of a table. Each record of that table represents a route from one signal to the next and each entry in the record is a condition. E.g. route A->B: section X clear, section Y clear, point P1 straight, point P2 deviating, signal Z red.
 
The geographical interlocking doesn't use tables. If an element is part of route, the interlocking knows the state


==== Documentation ====
{{interwiki}}
 
The first attempt for documentation is provided at the [[IXL_Data_Dictionary | railML IXL glossary]].
 
An [[IL_IntendedFeatures | intended features list]] is stored in the Wiki.
 
All topics, that are covered by the current developments, will be removed from this [[IL_IntendedFeatures | features list]] and described at the [[IXL_Data_Dictionary | glossary]] instead. Later on, the typical railML documentation with wiki sites for each element will be provided.
 
=== Shift planning ===
 
Additional to (vehicle) rosterings, there are ideas for implementing (personnel) shift planning.
 
It should be discussed in the [news://news.railml.org/railML.timetable timetable forum] (or click [http://www.railml.org/forum/ro/?group=2 here] for access via HTTP).
 
----
 
Feel free to direct any comments, questions or remarks via [mailto:webmaster@railml.org email] to the webmaster of railML.
 
Enjoy the Wiki!

Latest revision as of 12:29, 22 February 2024

RailML Trademark RGB V2.png
XML Railway exchange format
https://railML.org
Latest release: 2.5
(September 1st, 2021)
 
Main Menu
 
Subschemas
XML tree
UML diagrams
Use cases
Versions & Changes

Welcome to the railML® wiki / Willkommen im railML®-Wiki

railML® (railway Markup Language) is an open, XML based data exchange format for data interoperability of railway applications. For further information please visit the official project website or the wikipedia railML® article (Wiki banner.png).

This wiki is dedicated to all versions of railML® 2. A separate wiki for railML® 3 is available here. This wiki should support you in the development of railML® interfaces and inform you about the basic elements and modelling concepts of the railML® schema.

This wiki is being kept in English. Some information is provided additionally also in German. You are invited to contribute to this wiki and to the development of the railML® schema. Please, see our guideline "How to join the railML wiki" to get to know the standards of railML's wiki and the procedure for getting a writer's account. You can find further guidelines on railML® in section #Users_and_Developers_Guides.

railML® (railway Markup Language) ist ein offenes, XML-basiertes Datenaustauschformat zur gegenseitigen Benützbarkeit der Daten von Anwendungen im Eisenbahnbereich. Für weitere Informationen besuchen Sie bitte die offizielle Projektwebsite oder den Wikipedia-Artikel über railML® (Wiki banner.png 🇩🇪).

Dieses Wiki ist sämtlichen Versionen von railML® 2 gewidmet. Ein separates wiki für railML® 3 finden Sie hier. Ziel dieses Wikis ist, Sie bei der Entwicklung von railML®-Schnittstellen zu unterstützen und Sie über die grundlegenden Elemente und Modellierungskonzepte des railML®-Schemas zu informieren.

Dieses Wiki wird auf Englisch geführt. Einzelne Informationen stellen wir außerdem auf Deutsch zur Verfügung. Sie sind herzlich eingeladen, sich an der Entwicklung dieses Wikis sowie des railML®-Schemas zu beteiligen. Lesen Sie dazu bitte unseren Leitfaden How to join the railML® wiki, um sich mit den Standards des railML®-Wikis vertraut zu machen und die Vorgangsweise zur Erteilung eines Autorenaccounts kennenzulernen. Weitere Leitfäden, die railML® betreffen, finden Sie im Abschnitt #Users_and_Developers_Guides.

Current railML® 2 subschemas

There are three subschemas for productive use: Infrastructure (IS), Timetable and Rostering (TT) and Rollingstock (RS). Elements that are needed by all subschemas or do not fit into this structure are subsumed in the class Common (CO). Please contact the coordinator of the respective schema (see https://www.railML.org/en/user/subschemes.html (link to the railML® website)) for questions and enquiries. Additional subschemas will be developed only in the railML® 3 domain. Please, frame the regarding suggestions and contributions to this end.


Infrastructure (IS)

→Main Article: Infrastructure

The railML® Infrastructure subschema is focused on the description of the railway network infrastructure including all its various facets that are needed by the data exchange applications. In particular, the railML® infrastructure schema contains the following information:

  • Topology. The track network is described as a topological node edge model.
  • Coordinates. All railway infrastructure elements can be located in an arbitrary 2- or 3-dimensional coordinate system, e.g. the WGS84 that is widely used by today's navigation software.
  • Geometry. The track geometry can be described in terms of radius and gradient.
  • Railway infrastructure elements enclose a variety of railway relevant assets that can be found on, under, over or next to the railway track, e.g. balises, platform edges, and level crossings.
  • Further located elements encompass elements that are closely linked with the railway infrastructure, but that "cannot be touched", e.g. speed profiles and track conditions.

Rollingstock (RS)

→Main Article: Rollingstock

The rollingstock subschema is part of the complete railML® schema providing a data structure in XML language for the exchange of railway specific data.

The rollingstock schema provides a container for all data about any kind of railway vehicle including locomotives, multiple units, passenger and freight wagons. The second part of the schema enables the combination of single vehicles to formations as a fixed composition within a train or an entire train. It is intended to use this data schema for vehicle management as well as for detailed run-time calculations.

The Rollingstock schema comprises the following features:

  • separate parts for vehicles and for train parts or complete trains
  • possible specification of vehicle families and individual vehicles using the common features of the family
  • different level of detail for data
  1. vehicles as black boxes (with respect to dynamic characteristics) with only mean values
  2. vehicles as black boxes (with respect to dynamic characteristics) with curves for particular values being variable within the operating range
  3. vehicles as white boxes with details about the internal propulsion system
  • vehicles with motive power, for passenger or freight use
  • combination of vehicles to formations, i.e. train parts or complete trains

Timetable and Rostering (TT)

→Main Article: Timetable and Rostering

The timetable subschema is part of the complete railML® schema providing a data structure in XML for the exchange of railway specific data. It is the subschema that is most widely used.

The timetable subschema is used for all data necessary to exchange any kind of timetable for operational or conceptional purposes including the following information:

  • Operating Periods: The operating days for train services or rostering.
  • Train Parts: The basic parts of a train with the same characteristics such as formation and operating period. The train part includes the actual information regarding the path of the train as a sequence of operation or control points together with the corresponding schedule information.
  • Trains: One or more train parts make up a train and represent either the operational or the commercial view of the train run.
  • Connections: The relevant connections/associations between trains at a particular operation or control point.
  • Rostering: Train parts can be linked to form the circulations necessary for rostering (rolling stock schedules).

Common (CO)

→Main Article: Common

The Common class shall cover all topics, which affect all other railML® schemas alike.

The currently planned tasks and enhancements can be found in the railML® 2 ticketing system (link to the railML® website).

Codelists

→Main Article: Codelists

Certain attributes require a choice from a vast, highly standardized but shifting set of values. For instance, there are many regional clearance gauge standards (external link). As to facilitate the usage and update of the sets, this Information is outsourced into codelists outside the railML® schema.

The codelists are identically available for railML® 2 and railML® 3.

Versions

The current railML®2 version is 2.5. For more details see our version timeline (link to the railML® website). An overview of the regarding licenses can be found under https://www.railml.org/en/user/licence.html (link to the railML® website). To learn about the version history and the changes between the respective versions see Dev:changes.

Users and Developers Guides

→Main Article: Dev:Guides

Using and developing railML®

Improving the Wiki

Contact

Feel free to direct any comments, questions or remarks to the coordinators of railML®.

For our contact information see Contact


Enjoy the Wiki!