RailML – a standard interface for railway data
Posted: 3 November 2005 | | No comments yet
As the number of different railway simulation and operation programmes increase, developing and maintaining individual interfaces will become impractical. Therefore, RailML has been developed using the XML (eXtensible Markup Language) to simplify data transfer through the use of a common data structure – a simple and efficient way to transfer data between applications.
As the number of different railway simulation and operation programmes increase, developing and maintaining individual interfaces will become impractical. Therefore, RailML has been developed using the XML (eXtensible Markup Language) to simplify data transfer through the use of a common data structure – a simple and efficient way to transfer data between applications.
As the number of different railway simulation and operation programmes increase, developing and maintaining individual interfaces will become impractical. Therefore, RailML has been developed using the XML (eXtensible Markup Language) to simplify data transfer through the use of a common data structure – a simple and efficient way to transfer data between applications.
Problem and Solution
RailML is an open source data structure that has been developed to simplify the transfer of data between various railway simulation and operation computer programmes. This chapter describes the RailML programme and the problem it has been developed for.
Railway data exchange problem
Today, the computer has become a standard tool in the planning and operation of all businesses, and railways are no exception. In the last few years, the number of specialised computer programmes designed to address all aspects of the railway business from timetable construction to staff assignment and infrastructure planning has mushroomed. In most cases, these programmes have different data structures and protocols. As the number of programmes and applications grow, the variety of different data structures becomes more and more unwieldy.
In order to efficiently use several different applications for planning improvements and railway operations, data must be exported from one programme and imported into another for further processing. This can be done by copying data between applications (a long and tedious process for programmes with any significant amount of data) or by using an automatic data transfer programme (transparent for the user). Several specialised interfaces between programmes currently exist, but as the number of railway applications grows this solution becomes less efficient.
Transferring data between two particular programmes requires that two different interfaces are developed (one for each direction of transfer). As the number of programmes increases the number of possible data transfers increases significantly. For example, assuming there are five programmes, in theory twenty specialised interfaces need to be developed for full data exchange between all programmes. In general terms, if the number of programmes, n, increases linearly, the number of interfaces [n * (n-1)] may increase quadradically.
As the number of new technical solutions, such as Tracking & Tracing, real time estimates, and adjustments increases, so will the number of railway programmes. Clearly, the number of new interfaces to be developed for these new applications represents a great challenge to the railway industry.
Standard formats for efficient data exchange
The situation in the railway industry is not unusual, as computers become more ubiquitous in society – there is a growing need for efficient data exchange. Today these types of data incompatibility problems are being addressed using ‘open and universally usable data formats’. Such formats are generally developed using the XML as a basis (e.g. MathML for mathematical expressions and GML for geographical data).
XML was developed by the World Wide Web consortium for use in WWW applications (the most well-known mark-up language is XHTML). XML is not an application language, but rather a set of rules that can be used to define other ‘mark-up’ languages and therefore functions as a Meta language. The major advantage of XML based documents is that they describe both data as well as the data’s structure. Therefore, XML was an ideal solution for transfer and storage of railway data.
The data transfer problem created as the number of applications increases, can be solved by means of EAI (Enterprise Application Integration). EAI enables the collaboration of different programmes by creating standard interfaces, which are independent of any given application, but focus on the objects to be exchanged. The corresponding object descriptions are based on XML syntax.
Effective data exchange between two applications requires that each programme include a function for generating XML data (export) and a function for reading in and interpreting XML files (import). Due to both the widespread use of XML and the standardisation caused by the World Wide Web, most computer application development platforms include pre-defined libraries and functions for the processing of XML based data, which substantially reduces the time needed to develop import and export functions for creating specialised applications such as for railways.
Development of the RailML Consortium
In 2001, a group of railway application developers formed a free partnership with the objective of developing an open source XML-based language for railway applications that would be called RailML. The partnership was originally organised by researchers from the German Fraunhofer Institute for Transpor¬tation Systems and Infrastructure in Dresden, Germany and the Swiss Federal Institute of Technology’s Institute for Transportation Planning and Systems.
The partnership is organised under the name RailML Consortium (www.railml.org) and has expanded to include researchers from several universities, railway operating companies, infrastructure operators, private research institutes, and consulting firms.
The RailML standard is not the product of central bodies. Instead, it is an evolutionary, ‘open-source’ project. Work with a variety of project partners is steadily extending the standard’s scope. The RailML.org offices in Dresden and Zurich, administrates and coordinates the large railML.org consortium, which is still open to new members.
As a partnership, the development of RailML is based on suggestions, comments, and criticism of the partners. Individual application developers work together in a coordinated fashion to complete the actual work of developing elements of RailML. These developers form groups (open to all interested partners) based on individual interests and then communicate through moderated on-line user forums, newsgroups, and at regular meetings. As groups finish work on RailML elements, consortium members serving as technical coordinators finalise them and publish the standards (similar to the RFC for the Internet). A Wiki will be available soon on the RailML-website to make the process of development more transparent for new RailML users.
In summary, RailML standards are developed in the context of technical discussions that are open to everyone interested in developing applications for the railway industry.
The Principle of RailML
RailML schemes
RailML is a generic language that can be used to describe railway-related data. The language has been divided into sub-formats (or schemes) for particular types of railway data. RailML consortium partners are currently developing data structures for the three main types of data files used in railway simulation: timetable (schedule), infrastructure (with subsets for lines and stations), and rolling stock. Figure 1 illustrates the RailML schemes.
At present, the RailML timetable structure is most developed and has already been incorporated into several applications (e.g. OpenTrack, FBS, Viriato and OpenTimeTable [1]). A significant amount of work has been completed on both the infrastructure and rolling stock schemes, but these have not yet been finalised. Several additional schemes have been suggested.
As a web-based development partnership, each scheme has its own newsgroup open for discussion. The newsgroups’ purpose is two-fold: firstly, newsgroup partners exchange information and secondly, knowledge and processing of definitions is discussed and archived. RailML.org also supports a newsgroup for general exchange and discussions that are not scheme-related.
RailML structure
RailML is an XML-based language; this means that data files include both data and descriptions of the data that they contain. All XML derived languages use a very simple and flexible ASCII title format for their documents. In all cases the documents are hierarchical, they form a ‘tree’ layout, i.e. each document has a clear root element, from which navigation can start using the general document structure (common to all RailML documents) as a guide.
The RailML document’s root element is called . The sub-schemes (infrastructure, rolling stock, and timetable), which contain the relevant data, are then derived from this root structure. Using this flexible approach, each individual RailML compatible application determines which particular type of data should be used.
The data in XML documents are organised and administered by means of elements and attributes. A RailML element begins with a start tag ‘< railml >’,and ends with an ending tag ‘’. An element can have attributes for more detailed description and may also contain additional elements.
Figure 4 illustrates an example RailML document, which contains timetable data. Under the element ‘< timetable >’ are listed the individual courses in the element ‘< train >’. The most important attribute of a course, the course number (trainID), is required; other attributes are optional.
Every train running (course) contains as many timetable entries as desired ‘< entry >’, which are arranged listed under the element of ‘< timetableentries >’. The individual timetable entries contain attributes such as station abbreviation (pos ID), arrival time (arrival), departure time (departure), or minimum station stopping time (min stop time).
As Figure 2 illustrates, the RailML language is very similar to other XML-based languages and therefore relatively easy to understand and use.
Data transfer with RailML
RailML is a simple and efficient way to transfer data between computer programmes used to model different aspects of railway operations. Programmes using the RailML language produce export files with the RailML structure; these files can then be used directly by other programmes. The receiving programme passes the incoming file to obtain only the data it needs, which allows many different programmes to use the same data file.
RailML provides two ways for data exchange. The first consists of running applications separately and having them produce output files that are then used as inputs for other applications. The second approach, currently under development, consists of transferring data between two applications directly by means of interprocess communication (e.g. Web services via TCP/IP) to expenditure-exchange, i.e. without the detour of a file. Figure 3 illustrates the two forms of data transfer process.
RailML in Daily Use
RailML Consortium
As outlined above, RailML is being developed as an open source data format by a group of railway application developers who have joined together to form the RailML Consortium. Programme development is being led by the RailML Coordinators and now includes many partners from academia and industry. As a partnership, all development is based on suggestions, comments, and criticism of the partners.
Partners have two main responsibilities; firstly, to help develop RailML; and secondly to encourage the wide dissemination and application of RailML. New partners are welcome to join the consortium at any time.
There are two types of partners: Supportive Partners and Development Partners. Supportive Partners receive the copyright for XML schemes (according to the licensing terms and conditions) and are listed on the RailML web site with a link to their respective homepage. Development Partners take an active part in developing schemes by providing suggestions, comments, and recommendations. Each scheme has its own set of development partners.
Today the use of the RailML-schemes by all partners is free, as the formats and the copyright of railML.org are respected. Since autumn 2003, RailML is a registered trademark.
Every application, which is able to read or write RailML data by a RailML scheme, may apply to use the following RailML logo:
Partners and projects
Today, RailML is in daily use – although some of the schemes are unfinished. This is a main advantage of the flexible RailML format. RailML schemes are in operation for the HSL Zuid – the new high speed line from Amsterdam/Den Haag to Bruxelles, for energy calculations in Chinese railway projects, or for timetable exchange of private railways in Austria. Also a lot of studies for future railway projects and many research projects are driven by RailML. Last but not least, big railway operators like SBB (Switzerland) demand in their official tenders for new software the availability of a RailML interface.
Conclusions – benefits for simulation and timetabling
The RailML project objective is to simplify data transfer between the growing number of computerised rail simulation programmes through the use of a common data structure. This is extremely beneficial in that it allows railway planners and operators to easily use different types of computer applications, using each to do what it does best. In the past, specialised interface programmes were developed to transfer data between applications, but this is an inefficient and time-consuming process. Furthermore, as the number of applications increases, developing and maintaining these individual interfaces is becoming impractical.