railML (railway Markup Language, Engels voor "opmaaktaal voor spoorwegen") is een open, op XML gebaseerd bestandsformaat, dat bedoeld is om de interoperabiliteit van applicaties met betrekking tot het spoorsysteem te ondersteunen. Motivatie thumb|Zonder railML/Met railMLVoordeel 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. De uitwisseling van gegevens voor bedieningsconcepten, slotsbeheer, simulatie of infrastructuurplanning, enzovoorts was alleen mogelijk met de hand of met meerdere speciaal ontwikkelde interfaces, die verlies van tijd en een verhoging van kosten voor spoorwegmaatschappijen veroorzaakten. 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.
Dit probleem kan worden verminderd door middel van enterprise application integration 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. 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.
Overzicht Geschiedenis 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. railML wordt continu veranderd en aangepast aan de behoeftes van spoorwegbeheerders (IM's) en spoorwegexploitanten (RU's). De eerste stabiele versie 1.0 is in 2005 uitgebracht voor productief gebruik. 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. 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 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.
Licenties en prijzen 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.
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.
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.
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.
railML schema’s 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 ontwikkeld. Potentiële toekomstige subschema’s zijn stationsfaciliteiten of personeelsplanning.
Timetable Dit subschema dient voor de uitwisseling van gedetailleerde tijdschema's. In het bijzonder is het schema ontworpen voor de volgende informatie: 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 De focus van dit deelschema is de infrastructuur van spoorwegnetwerken. 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 Terwijl het subschema Infrastructure gericht is op immobiele activa, beschrijft het rollend materieel de activa die in het netwerk circuleren Voertuigen Formaties: de combinatie van voertuigen als een trein(deel)
Voorbeeldcode Voorbeeld voor een tijdschema geformuleerd in railML <?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 Versie Publicatiedatum Support tot Licentie Commentaarstyle="background-color: #FDB3AB; " title="Old version, no longer supported" data-sort-value=0.x0.x2002-2005December 2005Geen (alleen voor intern gebruik)beta versie timetablestyle="background-color: #FDB3AB; " title="Old version, no longer supported" data-sort-value=1.01.0December 2005Juni 2013proprietairEerste praktische ervaringenstyle="background-color: #FDB3AB; " title="Old version, no longer supported" data-sort-value=1.11.1November 2007Juni 2013proprietairstyle="background-color: #FDB3AB; " title="Old version, no longer supported" data-sort-value=2.02.0November 2009Maart 2017beperkte CC BY-ND 2.0style="background-color: #FDB3AB; " title="Old version, no longer supported" data-sort-value=2.12.1Juli 2011Maart 2017beperkte CC BY-ND 2.0Compatibel met V2.0style="background-color: #FDB3AB; " title="Old version, no longer supported" data-sort-value=2.22.2Juni 11, 2013Juni 30, 2021beperkte CC BY-NC-ND 3.0Compatibel met V2.1-V2.0class="templateVersion co" style="background-color: #FDB3AB; " title="Older version, yet still supported" data-sort-value=2.32.3Maart 10, 201630 juni 2024beperkte CC BY-NC-ND 3.0Gedeeltelijk compatibel met V2.2-V2.0class="templateVersion co" style="background-color: #FEF8C6; " title="Older version, yet still supported" data-sort-value=2.42.4October 7, 2018November 30, 2026beperkte CC BY-NC-ND 3.0Gedeeltelijk compatibel met V2.3-V2.0class="templateVersion c" style="background-color: #FEF8C6; " title="Older version, yet still supported" data-sort-value=2.52.5September 1, 2021Augustus 2028beperkte CC BY-NC-ND 3.0Gedeeltelijk compatibel met V2.4-V2.0style="background-color: #FDB3AB; " title="Old version, no longer supported" data-sort-value=3.03.0October 31, 2017Februari 19, 2019Geen (alleen voor intern gebruik)gebaseerd op UIC-RailTopoModel V1.1class="templateVersion co" style="background-color: #FEF8C6; " title="Older version, yet still supported" data-sort-value=3.13.1Februari 19, 2019Januari, 2026beperkte CC BY-NC-ND 4.0gebaseerd op RailTopoModel V1.2class="templateVersion c" style="background-color: #FEF8C6; " title="Older version, yet still supported" data-sort-value=3.23.2April 26, 2022Maart 2029beperkte CC BY-NC-ND 4.0gebaseerd op RailTopoModel V1.4class="templateVersion p" style="background-color: #D4F4B4; " title="Current stable version" data-sort-value=3.33.3November 5, 2024beperkte CC BY-NC-ND 4.0gebaseerd op RailTopoModel V1.5 style="background-color: #FDB3AB; " title="Old version, no longer supported" data-sort-value=Oude versieOude versie – class="templateVersion co" style="background-color: #FEF8C6; " title="Older version, yet still supported" data-sort-value=Oude versie met supportOude versie met support – class="templateVersion c" style="background-color: #D4F4B4; " title="Current stable version" data-sort-value=Actuele versieActuele versie – class="templateVersion p" style="background-color: #C1E6F5; " title="Future release" data-sort-value=GeplandGepland
Gebruik van railML-data De meest gebruikte railML-gegevens zijn tijdregeldata/tijdschema‘s voor passagiersinformatie, dienstplanning voor conducteurs resp. chauffeurs en simulaties van de dienstregeling.
Computerprogramma’s Toepassingen die gebruik maken van railML omvatten veelal programma's die gerelateerd zijn aan de dienstregeling, zoals OpenTrack (interactieve spoorwegsimulator), FBS (planningssoftware voor spoorwegactiviteiten), Viriato (planningssysteem) en OpenTimeTable (realtime analyse van netwerkwerkbedrijfsdata) evenals met BIM verband houdende infrastructuurplanningssoftware zoals VIS All 3D of spoorweg-observeringssystemen zoals GPSinfradat.
Een complete lijst met programma's met (gecertificeerde) interfaces is beschikbaar op de railML.org-pagina van of compatible applicaties.
railVIVID 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: