railML
Filename extension |
.railml, .railmlx |
---|---|
Developed by | railML.org |
Initial release | 22 December 2005 |
Latest release |
2.3 (10 March 2016 ) |
Type of format | Railway exchange format |
Extended from | XML |
Standard | Industry standard |
Open format? | Yes, CC BY-NC-ND |
Website | www.railml.org |
railML (Railway Markup Language) is an open, XML based data exchange format for data interoperability of railway applications.[1]
Motivation
The growing number of computer applications modeling different aspects of railway operations, with different operators developing separate solutions parallelly, bore a chronic difficulty of connecting different railway IT applications.[1] The exchange of data for operation concepts, slot management, simulation or infrastructure planning, etc. was possible either by hand or with a lot of special developed interfaces with loss of time and cost problems for railway companies.[2] If there are n applications that are supposed to exchange data, with a special interface for each pair of programs respectively, interfaces are required — only one, if n=2, but 10, if n=5 — increasing the complexity above average.[1]
This problem can be mitigated by means of Enterprise application integration[1] with a single, universal exchange format that is supported by all applications and meets the needs of all kinds of data exchange in the field of railway operation: The number of required interfaces decreases to n — one interface to the exchange format for each application respectively. railML tries to place at disposal an open and free, easy and handy, self-describing format close to existing standards.[2] The paradigm is to meet the demands of the data exchange processes of railways, industry and authorities rather than describing the complete railway system.[3]
Outline
History
The development of railML was initiated in early 2001 by the Fraunhofer-IVI (Dresden, Germany) and the ETH Zürich - IVT (Zurich, Switzerland).[4] railML is changed and adapted to the needs of railway infrastructure managers (IM's) and railway undertakings (RU's) within discussions.[2][5] The first stable version 1.0 was released in 2005 for productive usage.[3] Up to now the versions 1.0; 1.1; 2.0; 2.1 and 2.2 were released for download and productive use. As of 2014, railML's version 3 (new topology model and other evolutions) is currently under development.[6] In 2015 a validator for railML schemas named railVIVID was released.
Working Principle
railML (railway mark-up language) is a common exchange format, which employs the systematic of XML for the description of rail-specific data. railML enables the exchange of railway data between internal and external railway applications. railML is developed within the so-called “railML consortium” from railML.org. It is an open source exchange format; the modelling language of railML is English. A free registration on railML is mandatory for the usage and download of railML schemes.
Applications can exchange data via railML either via exporting respectively importing railML files, or as a direct Inter-process communication via TCP/IP.[7]
Licenses
Currently, railML is licensed parallelly with proprietary and free licenses.
Versions 0.x and 1.x were licensed under a proprietary license, where version 0.x was intended only for internal use und shared within the consortium.[8]
Version 2.0 to 2.2 used to be licensed with the Creative Commons licence CC-BY-ND until 2013. Since 2013 all versions from 2.0 onward were offered parallelly either with a commercial licence or with a restricted CC-BY-NC-ND licence. The restrictions serve quality measures, e.g. by requiring applications to be certified to grant for smooth interoperability.[8]
The Logo and the word railML are a registered as trademarks by the railML consortium at the OHIM.[8]
railML schemes
railML is based on XML and sub-areas use other existing XML-schemes such as MathML and GML. It is composed of sub-schemes. Through version 2.2, three sub-schemes are in productive use:
- infrastructure for the (priority topological) description of tracks and signalling equipment
- rolling stock for the description of vehicles
- timetable for the description of timetables
Additional sub-schemes are station facilities (on hold, currently no requirements from users), crew rostering (data is being gathered and railML.org working group being established) and interlocking (in development by active railML.org working group).
Timetable
This sub-schema serves the exchange of detailed timetables. Particularly, the schema is designed for the following Information:[9]
- Operating Periods: the days on which a train is operated
- Train Parts: scheduling and routing information for trains, e.g. the Orient Express on the traject from Budapest to Beograd on Mondays.
- Trains: a collection of train parts, adding up to the colloqual perspective, e.g. the Orient Express.
- Rostering: Circulation plans for rolling stock, linked with Train Parts.
Infrastructure
The focus of this sub-schema is the infrastructure of railway networks.[10] Important aspects are:
- Network Topology
- Coordinates
- Geometry: track geometry (gradient, curve radius)
- Railway infrastructure elements: inventory like balises and signals
- Further located elements: abstract things that cannot be touched but located, like speed limits and track condition
Rolling stock
While the Infrastructure sub-schema is focused on immobile assets, Rolling stock describes assets circulating in the network.[11]
- Vehicles
- Formations: the combination of vehicles as a train
Code Example
Example for a time table formulated in railML[3]
1 <?xml version="1.0" encoding="UTF-8"?>
2 <railml xmlns:xsi=http://www.w3.org/2000/10/XMLSchema-instance xsi:noNamespaceSchemaLocation="timetable.xsd">
3 <timetable version=“1.1”>
4 <train trainID="RX 100.2" type="planned" source="opentrack">
5 <timetableentries>
6 <entry posID="ZU" departure="06:08:00" type="begin“/>
7 <entry posID="ZWI" departure="06:10:30" type="pass“/>
8 <entry posID="ZOER" arrival="06:16:00“ departure="06:17:00"
9 minStopTime="9" type="stop“/>
10 <entry posID="WS" departure="06:21:00" type="pass“/>
11 <entry posID="DUE" departure="06:23:00" type="pass“/>
12 <entry posID="SCW" departure="06:27:00" type="pass“/>
13 <entry posID="NAE" departure="06:29:00" type="pass“/>
14 <entry posID="UST" arrival="06:34:30" type="stop“/>
15 </timetableentries>
16 </train>
17 </timetable>
18 </railml>
Line 3 expresses that the employed railML-version is 1.1.
Line 4 bears the train code.
Lines 5 and 15 frame the itinerary with, in this case, 8 itinerary entries.
The itinerary entries in line 6 to 14 have arguments like position ID (e.g. a station), time of departure or arrival, and in line 9 an obligation to stop.
Versions
Version | Release date[3] | Supported until[8] | Licence[8] | Comment | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0.x | 2002-2005 | December 2005 | No (internal usage only) | beta version timetable | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1.0 | December 2005 | June 2013 | proprietary | First practical experience | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1.1 | November 2005 | June 2013 | proprietary | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.0 | November 2009 | restricted CC-BY-ND 2.0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.1 | July 2011 | restricted CC-BY-ND 2.0 | Downwardly compatible with V2.0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.2 | June 2013 | restricted CC-BY-NC-ND 3.0 | Downwardly compatible with V2.1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.3 | March 10th, 2016 | restricted CC-BY-NC-ND 3.0 | Partly downward compatible with V2.2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3.x | expected in 2016 | not decided | based on UIC's RailTopoModel | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Old version Older version, still supported Latest version Latest preview version Future release |
Usage of railML data
The most employed usage of railML data is timetable data[4] for passenger information, duty planning for conductors and drivers and timetable simulation.
Computer programmes
Applications using railML include OpenTrack (interactive railway simulator[12]), FBS (planning software for railway operation[13]), Viriato (scheduling system[14]) and OpenTimeTable (real time analysis of network operation data[15]). A complete list of programmes with (certified) interfaces is available at railML's website of compatible applications.
railVIVID
railVIVID is an open source freeware tool provided by UIC and railML.org to validate railML files of version 2.x or higher and to show the content of railML files in some special views. This shall give also non-IT-experts an easy and handy access to railML data. Therefore, some sights of railway data can be shown, copied and printed with railVIVID:[16]
- Graphic viewer for Timetable data
- Tabular viewer for Timetable data with spreadsheet export
- Rolling Stock data viewer
- Topologic viewer for Infrastructure data
- Geographic viewer for Infrastructure data
- Schema validator for railML
railVIVID is available via railML's website, the source code will be published in Autumn 2015. There are binary versions for MS Windows and Java.[17]
railML.org Initiative
The development of railML is driven by the railML.org – Initiative, a development partnership of independent companies and organizations and European railways. The participation on the development and semi-annual conferences to exchange experience and discuss basics is open. The continuous development work is mainly internet-based (German and English forums). The organisation of the discussions is managed by so-called railML Coordinators. The (free) membership of the railML.org Consortium is mandatory for the download and usage of railML schemes.
Members
Members of railML.org are currently:[18]
- Railways like French Railways, Swiss Federal Railways, German State Railway, Infrabel, BLS, Austrian Federal Railways ...
- Software manufacturers like SMA (Zurich/Switzerland), iRFP (Dresden/Germany), ...
- Authorities like Bavarian Passenger Transport Authority, ...
- Universities and Research institutes like Dresden University, ...
Cooperations
railML.org works in the ERIM (abbreviation for European Rail Infrastructure Modelling) project of the International Union of Railways (UIC) for the development of a common standard for data exchange in the railway sector.[19] Also railML.org cooperates with Eurocontrol and European Railway Agency.
References
- 1 2 3 4 , p. PA4, at Google Books
- 1 2 3 "RailTopoModel and railML®" (PDF). uic.org. Retrieved 2016-01-26.
- 1 2 3 4 "Daten für PSItraffic: Standardisiertes Datenmanagement mit railML® und dem UIC RailTopoModel" (PDF). psitrans.de. Retrieved 2015-10-20.
- 1 2 Nash, Andrew; Huerlimann, Daniel; Schuette, Joerg; Kolmorgen (Krauss), Vasco Paul (2004). RailML – A standard data interface for railroad applications (PDF). Dresden: Proc. of the Ninth International Conference on Computer in Railways (Comprail IX), WIT Press, Southampton, United Kingdom.
- ↑ , p. PA5, at Google Books
- ↑ "5th UIC RailTopoModel and railML® Conference" (PDF). railML. 2016-02-01. p. 29.
- ↑ , p. PA6, at Google Books
- 1 2 3 4 5 "Licence - railML.org (EN)". railml.org. Retrieved 2016-01-26.
- ↑ "Timetable - railML.org (EN)". railml.org. Retrieved 2016-01-26.
- ↑ "Infrastructure - railML.org (EN)". railml.org. Retrieved 2016-01-26.
- ↑ "Rollingstock - railML.org (EN)". railml.org. Retrieved 2016-01-26.
- ↑ "OpenTrack Railway Technology - Eisenbahnsimulation". opentrack.ch. Retrieved 2015-10-20.
- ↑ "iRFP-FBS". irfp.de. Retrieved 2015-10-20.
- ↑ "Software für die Eisenbahn". sma-partner.ch. Retrieved 2015-10-20.
- ↑ "OpenTimeTable". via-con.de. Retrieved 2015-10-20.
- ↑ "railVIVID - railML.org (EN)". railml.org. Retrieved 2016-01-26.
- ↑ SNCF Réseau and TU Dresden (April 28, 2015). "4th UIC RailTopoModel and railML Conference: Achievements" (PDF).
- ↑ "Partners - railML.org (EN)". railml.org. Retrieved 2016-01-26.
- ↑ "UIC e-news 362: The foundation for a Universal Infrastructure Data Exchange Format". November 30, 2014.