railML

Open, op XML gebaseerde beschrijvingstaal voor de uitwisseling van spoorweggegevens.


railML (railway Markup Language, Engels voor "spoorwegen-opmaaktaal") is een open, XML-gebaseerd bestandsformaat, dat bedoeld is om de interoperabiliteit van applicaties met betrekking tot het spoorsysteem te ondersteunen.[1]

railML
(Railway Markup Language)
RailML
Bestandsextensie .railml, .railmlx
Ontwikkeld door railML.org-Initiatief
Verschijningsdatum 22 december 2005
Portaal  Portaalicoon   Informatica

Motivatie

bewerken
 
Zonder railML/Met railML
Voordeel van een universeel uitwisselingsformaat

Een groeiend aantal computerapplicaties die meerdere aspecten van spoorwegactiviteiten modelleren, veroorzaakten een chronisch probleem bij het verbinden van verschillende spoorweg-IT-toepassingen, omdat exploitanten vaak afzonderlijke oplossingen ontwikkelden die parallel liepen.[1] De uitwisseling van gegevens voor bedieningsconcepten, slotsbeheer, simulatie of infrastructuurplanning, enzovoorts was alleen mogelijk met de hand of met meerdere speciaal ontwikkelde interfaces, welke verlies van tijd en een verhoging van kosten voor spoorwegmaatschappijen veroorzaakten.[2] Als er n applicaties zijn die gegevens zouden moeten uitwisselen, met een speciale interface voor respectievelijk ieder paar van programma's,   interfaces zijn vereist - slechts één, als n = 2, maar tien, als n = 5 - waardoor de complexiteit zich verhoogt tot bovengemiddeld.[1]

Dit probleem kan worden verminderd door middel van enterprise application integration[1] met een eenmalig, universeel uitwisselingsformaat dat door alle toepassingen wordt ondersteund en voldoet aan de behoeften van alle soorten gegevensuitwisseling op het gebied van spoorwegexploitatie: het aantal vereiste interfaces neemt af naar n – één interface naar het uitwisselingsformaat voor elke toepassing. railML probeert een open, gratis, eenvoudig, handig en zelf beschrijvend formaat ter beschikking te stellen, dat dicht bij de bestaande normen ligt.[2] Het paradigma is om aan de eisen van de gegevensuitwisselingsprocessen van spoorwegen, industrie en autoriteiten te voldoen, in plaats van het complete spoorwegsysteem te beschrijven.[3]

Overzicht

bewerken

Geschiedenis

bewerken

De ontwikkeling van railML werd begin 2002 geïnitieerd door Fraunhofer-IVI (Dresden, Duitsland) en de ETH Zürich - IVT (Zürich, Zwitserland) tegen de achtergrond van een chronische moeilijkheid om verschillende spoorwegautomatiseringstoepassingen met elkaar te verbinden.[4] railML wordt continu veranderd en aangepast aan de behoeftes van spoorwegbeheerders (IM's) en spoorwegexploitanten (RU's).[2][5] De eerste stabiele versie 1.0 is in 2005 uitgebracht voor productief gebruik.[3] Tegen eind 2019 werden de versies 1.0; 1.1; 2.0 tot 2.4 vrijgegeven voor download en productief gebruik. railML versie 3 (met een nieuw topologiemodel en andere evoluties) werd in het voorjaar van 2019 na 3 jaar ontwikkeling gepubliceerd.[6] In 2015 werd een validator (= een software die de syntactische correctheid van een document controleert) voor railML-schema's met de naam railVIVID uitgebracht.

Werkprincipes

bewerken

railML (spoorweg mark-up taal) is een gemeenschappelijk uitwisselingsformaat, dat gebruik maakt van de systematiek van XML voor de beschrijving van spoor-specifieke gegevens. railML maakt de uitwisseling van spoorweggegevens tussen interne en externe spoorwegtoepassingen mogelijk. railML is ontwikkeld binnen het zogenaamde railML-consortium van railML.org. Het is een open source uitwisselingsformaat onder creative commons license (een gratis registratie op railML is verplicht voor het gebruik en downloaden van railML-schema's). De modeltaal van railML is UML en de documentatietaal is Engels.

Applicaties kunnen via railML gegevens uitwisselen, via het exporteren en/of importeren van railML-bestanden, of als een interprocescommunicatie tussen processen via TCP/IP.[7]

Licenties en prijzen

bewerken

Het gebruik van railML is voor de gebruikers kosteloos mogelijk, alleen advies en certificering voor professioneel gebruik kunnen leiden tot kosten voor het betalen van de softwareontwikkelaar.[8]

Versies 0.x en 1.x kregen een eigen licentie, waarbij versie 0.x alleen bedoeld was voor intern gebruik en werd gedeeld binnen het consortium.[9]

Versie 2.0 tot 2.2 werden tot 2013 met de Creative-Commons-licentie CC BY-NC-SA gedeeld. Sinds 2013 werden alle versies vanaf 2.0 parallel aangeboden met een commerciële licentie of met een beperkte CC BY-NC-ND-licentie. De beperkingen dienen kwaliteitsmaatregelen, b.v. door te eisen dat de aanvragen worden gecertificeerd, om een soepele interoperabiliteit te verlenen.[9]

De licentievoorwaarden voor versie 3.x zijn niet vastgesteld, maar een doorlopend gebruik van de Creative-Commons-licentie is aangekondigd.

Het Logo en het woord railML zijn geregistreerde handelsmerken van het railML-consortium bij het EUIPO.[9]

railML schema’s

bewerken

railML is gebaseerd op XML en subgebieden gebruiken andere bestaande XML-schema's zoals MathML en GML. Het is samengesteld uit subschema’s. Via versie 2.3 zijn drie subschema’s in productief gebruik:

  • infrastructure (infrastructuur) voor de topologische beschrijving van sporen en signaleringsapparatuur
  • rolling stock (rollend materieel) voor de beschrijving van voertuigen
  • timetable (dienstregeling) voor de beschrijving van tijdroosters

Een subschema interlocking (rijwegvergrendeling) voor de beschrijving van signaleringsroutes wordt tegenwoordig[(sinds) wanneer?] ontwikkeld. Potentiële toekomstige subschema’s zijn stationsfaciliteiten of personeelsplanning.

Timetable

bewerken

Dit subschema dient voor de uitwisseling van gedetailleerde tijdschema's. In het bijzonder is het schema ontworpen voor de volgende informatie:[10]

  • Bedrijfsperiodes: de dagen waarop een trein operationeel in gebruik is
  • Treindelen: informatie over de planning en routes van treinen, bijvoorbeeld de Orient Express op het traject van Boedapest naar Belgrado op maandag
  • Treinen: een verzameling van rollend materieel (wagons), complimenterend aan het informele perspectief, bijvoorbeeld de Oriënt Express
  • Dienstregeling: circulatieplanning voor rollend materieel, gekoppeld aan treindelen

Infrastructuur

bewerken

De focus van dit deelschema is de infrastructuur van spoorwegnetwerken.[11] Belangrijke aspecten zijn:

  • Netwerktopologie
  • Coördinaten
  • Spoorgeometrie (helling, boogradius)
  • Spoorweginfrastructuurelementen: inventaris zoals bakens (balises) en signalen
  • Andere belangrijke elementen: abstracte dingen die niet kunnen worden aangeraakt, maar zich wel degelijk op het spoorwegtraject bevinden, zoals snelheidsbeperkingen, de kwaliteit en de conditie van het spoor.

Rollend materieel

bewerken

Terwijl het subschema Infrastructure gericht is op immobiele activa, beschrijft het rollend materieel de activa die in het netwerk circuleren[12]

  • Voertuigen
  • Formaties: de combinatie van voertuigen als een trein(deel)

Voorbeeldcode

bewerken

Voorbeeld voor een tijdschema geformuleerd in railML[3]

<?xml version="1.0" encoding="UTF-8"?>
<railml xmlns:xsi=http://www.w3.org/2000/10/XMLSchema-instance xsi:noNamespaceSchemaLocation="timetable.xsd">
	<timetable version=“1.1”>
		<train trainID="RX 100.2" type="planned"  source="opentrack">
			<timetableentries>
				<entry posID="ZU" departure="06:08:00" type="begin"/>
				<entry posID="ZWI" departure="06:10:30" type="pass"/>
				<entry posID="ZOER" arrival="06:16:00" departure="06:17:00"
							minStopTime="9" type="stop"/>
				<entry posID="WS" departure="06:21:00" type="pass"/>
				<entry posID="DUE" departure="06:23:00" type="pass"/>
				<entry posID="SCW" departure="06:27:00" type="pass"/>
				<entry posID="NAE" departure="06:29:00" type="pass"/>
				<entry posID="UST" arrival="06:34:30" type="stop"/>
			</timetableentries>
		</train>
	</timetable>
</railml>

Regel 3 geeft aan dat de gebruikte railML-versie 1.1 is.

Regel 4 bevat de trein-code

Regel 5 en 15 omlijsten de route, met in dit geval, 8 reisboekingen

De reisroute-items in regel 6 tot 14 bevat verschillende thema’s, zoals positie-ID (bijvoorbeeld een station), tijdstip van vertrek of aankomst en in regel 9 een verplichting om te stoppen.

Versies

bewerken
Versie Publicatiedatum[3] Support tot[9] Licentie[9] Commentaar
0.x 2002-2005 December 2005 Geen (alleen voor intern gebruik) beta versie timetable
1.0 December 2005 Juni 2013 proprietair Eerste praktische ervaringen
1.1 November 2007 Juni 2013 proprietair
2.0 November 2009 Maart 2017 beperkte CC BY-ND 2.0
2.1 Juli 2011 Maart 2017 beperkte CC BY-ND 2.0 Compatibel met V2.0
2.2 Juni 11, 2013[13] Juni 30, 2021 beperkte CC BY-NC-ND 3.0 Compatibel met V2.1-V2.0
2.3 Maart 10, 2016 beperkte CC BY-NC-ND 3.0 Gedeeltelijk compatibel met V2.2-V2.0
2.4 October 7, 2018 beperkte CC BY-NC-ND 3.0 Gedeeltelijk compatibel met V2.3-V2.0
2.5 September 1, 2021[14] beperkte CC BY-NC-ND 3.0 Gedeeltelijk compatibel met V2.4-V2.0
3.0 October 31, 2017[15] Februari 19, 2019[14] Geen (alleen voor intern gebruik) gebaseerd op UIC-RailTopoModel V1.1
3.1 Februari 19, 2019[14] beperkte CC BY-NC-ND 4.0 gebaseerd op RailTopoModel V1.2
3.2 April 26, 2022[14] beperkte CC BY-NC-ND 4.0 gebaseerd op RailTopoModel V1.4
3.3 ≥ 2023[14] beperkte CC BY-NC-ND 4.0
  Oude versie  –  Oude versie met support  –  Actuele versie  –  Gepland

Gebruik van railML-data

bewerken

De meest gebruikte railML-gegevens zijn tijdregeldata/tijdschema‘s[4] voor passagiersinformatie, dienstplanning voor conducteurs resp. chauffeurs en simulaties van de dienstregeling.

Computerprogramma’s

bewerken

Toepassingen die gebruik maken van railML omvatten veelal programma's die gerelateerd zijn aan de dienstregeling, zoals OpenTrack (interactieve spoorwegsimulator)[16], FBS (planningssoftware voor spoorwegactiviteiten),[17] Viriato (planningssysteem)[18] en OpenTimeTable (realtime analyse van netwerkwerkbedrijfsdata)[19] evenals met BIM verband houdende infrastructuurplanningssoftware zoals VIS All 3D[20] of spoorweg-observeringssystemen zoals GPSinfradat.[21]

Een complete lijst met programma's met (gecertificeerde) interfaces is beschikbaar op de railML.org-pagina van of compatible applicaties.

railVIVID

bewerken

railVIVID is een open source freeware-tool die wordt aangeboden door UIC en railML.org om railML-bestanden van versie 2.x of hoger te valideren en om de inhoud van railML-bestanden in verschillende weergaven te tonen. Dit geeft ook niet-IT-experts een gemakkelijke en handige toegang tot railML-gegevens. Dus kunnen er sommige weergaven van spoorweggegevens getoond, gekopieerd en afgedrukt worden met railVIVID:[22]

  • graphische weergave van dienstregelingsdata
  • tabellarische weergave van dienstregelingsdata
  • visualisering van rollend materieel
  • topologische weergave van infrastructuur
  • geographische weergave van infrastructuur
  • schema validator voor railML

railVIVID is beschikbaar via de website van railML. Er zijn binaire versies voor MS Windows en Java, ook de broncode werd in de herfst van 2015 gepubliceerd onder de EUPL-licentie.[23]

railML.org-Initiatief

bewerken

De ontwikkeling van railML wordt gestimuleerd door het railML.org-initiatief, een ontwikkelingspartnerschap van onafhankelijke bedrijven, organisaties en Europese spoorwegen. De deelname aan de ontwikkelingsconferenties en halfjaarlijkse stakeholderconferenties staat open voor iedere belanghebbende. Het voortdurende ontwikkelingswerk is voornamelijk internet-gebaseerd (Duitse en Engelse fora). De organisatie van de discussies wordt beheerd door de zogenaamde coördinatoren. Het (gratis) lidmaatschap van het railML.org Consortium is verplicht voor het downloaden en gebruiken van railML-schema's. Het verkrijgen van een commerciële certificering is vereist, voordat commercieel of productief gebruik wordt gemaakt van software-interfaces voor het formaat.[24]

Leden van railML.org zijn momenteel:[25]

Een volledige en bijgewerkte lijst is gepubliceerd onder railML.org.

Juridische entiteit

bewerken

Juridische entiteit voor het railML-consortium is sinds 23 april 2012 de railML.org e.V., een geregistreerde non-profit-vereniging naar Duits recht (registratienummer VR 5750 bij de plaatselijke rechtbank Dresden / Duitsland).

Samenwerkingsverbanden

bewerken

railML.org werkt in het ERIM (afkorting voor European Rail Infrastructure Modelling) project van de UIC voor de ontwikkeling van RailTopoModel, een algemeen data model voor spoorinfrastructuur.[26] Ook werkt railML.org met EUROCONTROL en EUAR.

bewerken