# RailML

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.

## Motivatie

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, ${\frac {n\cdot (n-1)}{2}}$ 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
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 | 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 | Juni 30, 2021 | beperkte CC BY-NC-ND 3.0 | Compatibel met V2.1-V2.0 |
| 2.3 | Maart 10, 2016 | 30 juni 2024 | beperkte CC BY-NC-ND 3.0 | Gedeeltelijk compatibel met V2.2-V2.0 |
| 2.4 | October 7, 2018 | November 30, 2026 | beperkte CC BY-NC-ND 3.0 | Gedeeltelijk compatibel met V2.3-V2.0 |
| 2.5 | September 1, 2021 | Augustus 2028 | beperkte CC BY-NC-ND 3.0 | Gedeeltelijk compatibel met V2.4-V2.0 |
| 3.0 | October 31, 2017 | Februari 19, 2019 | Geen (alleen voor intern gebruik) | gebaseerd op UIC-RailTopoModel V1.1 |
| 3.1 | Februari 19, 2019 | Januari, 2026 | beperkte CC BY-NC-ND 4.0 | gebaseerd op RailTopoModel V1.2 |
| 3.2 | April 26, 2022 | Maart 2029 | beperkte CC BY-NC-ND 4.0 | gebaseerd op RailTopoModel V1.4 |
| 3.3 | November 5, 2024 | | beperkte CC BY-NC-ND 4.0 | gebaseerd op RailTopoModel V1.5 |
| Oude versie  –  Oude versie met support  –  Actuele versie  –  Gepland |||||

## 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:
* 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.

## railML.org-Initiatief

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.

### Leden

Leden van railML.org zijn momenteel:
* Spoorwegen zoals ÖBB, BLS, SNCF, DB, NMBS en de Zwitserse federale spoorwegen
* Software ontwikkelaars zoals Hacon (Hannover), iRFP (Dresden), PTV (Karlsruhe), SMA (Zürich), Trapeze Group (Hamburg), Siemens (Brunswijk/Erlangen) en Thales Groep (Berlijn)
* Autoriteiten Bayerische Eisenbahngesellschaft (München), BMVI (Berlijn), High Speed 2 (Londen), Jernbanedirektoratet (Oslo)
* Universiteiten en onderzoeksinsituten zoals de Tsjechische Technische Universiteit, de Technische Universiteit Dresden, het DLR, de ETH Zürich en de Universiteit van Birmingham
Een volledige en bijgewerkte lijst is gepubliceerd onder railML.org.

### Juridische entiteit

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

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. Ook werkt railML.org met EUROCONTROL en EUAR.

## Externe link

* railML homepage
* Dit artikel of een eerdere versie ervan is een (gedeeltelijke) vertaling van het artikel RailML op de Engelstalige Wikipedia, dat onder de licentie Creative Commons Naamsvermelding/Gelijk delen valt. Zie de bewerkingsgeschiedenis aldaar.
* 1 2 3 4 railML – a standard data interface for railway applications. Gearchiveerd op 4 oktober 2022. Geraadpleegd op 13 maart 2019.
* 1 2 3 RailTopoModel and railML®. uic.org. Gearchiveerd op 28 maart 2016. Geraadpleegd op 26 januari 2016.
* 1 2 3 4 Daten für PSItraffic: Standardisiertes Datenmanagement mit railML® und dem UIC RailTopoModel (pdf). psitrans.de. Gearchiveerd op 6 maart 2016. Geraadpleegd op 13 maart 2019.
* 1 2 Nash, Andrew, Huerlimann, Daniel, Schuette, Joerg, Kolmorgen (Krauss), Vasco Paul (2004). RailML – A standard data interface for railroad applications. Proc. of the 9th International Conference on Computer in Railways (Comprail IX), WIT Press, Southampton, United Kingdom, Dresden. Gearchiveerd op 5 mei 2022.
* ↑ railML – a standard data interface for railway applications 5. Gearchiveerd op 31 maart 2019. Geraadpleegd op 13 maart 2019.
* ↑ 5th UIC RailTopoModel and railML® Conference. railML (1 februari 2016). Gearchiveerd op 4 oktober 2022. Geraadpleegd op 20 november 2019.
* ↑ railML – a standard data interface for railway applications 6. Geraadpleegd op 13 maart 2019.
* ↑ Costs. railML.org (29 mei 2017). Gearchiveerd op 23 maart 2019. Geraadpleegd op 20 november 2019.
* 1 2 3 4 5 Licence - railML.org (EN). railml.org. Gearchiveerd op 5 februari 2016. Geraadpleegd op 26 januari 2016.
* ↑ Timetable - railML.org (EN). railml.org. Gearchiveerd op 5 februari 2016. Geraadpleegd op 26 januari 2016.
* ↑ Infrastructure - railML.org (EN). railml.org. Gearchiveerd op 5 februari 2016. Geraadpleegd op 26 januari 2016.
* ↑ Rollingstock - railML.org (EN). railml.org. Gearchiveerd op 5 februari 2016. Geraadpleegd op 26 januari 2016.
* ↑ (en) Susanne Wunsch, Vasco Paul Kolmorgen, News of railML common parts on 24th railML.org meeting (PDF). The railML.org initiative. railML.org e.V.; Dresden/Germany (18 september 2013). Gearchiveerd op 19 februari 2019. Geraadpleegd op 21 May 2017.
* 1 2 3 4 5 6 7 8 9 "railML Version Timeline", railML.org Website. Gearchiveerd op 14 juni 2021. Geraadpleegd op 16 april 2021.
* ↑ Augele, Vivian, "Public Presentation of railML 3.1 during 32nd railML Conference", railML.org News, 15 november 2017. Gearchiveerd op 1 december 2017. Geraadpleegd op 25 november 2017.
* ↑ OpenTrack Railway Technology - Eisenbahnsimulation. opentrack.ch. Gearchiveerd op 27 december 2015. Geraadpleegd op 20 oktober 2015.
* ↑ (de) railML Schnittstelle - Institut für Regional- und Fernverkehrsplanung. iRFP e.K.; Dresden/Germany (15 september 2016). Gearchiveerd op 19 februari 2019. Geraadpleegd op 21 May 2017.
* ↑ Software für die Eisenbahn. sma-partner.ch. Gearchiveerd op 6 mei 2015. Geraadpleegd op 13 maart 2019.
* ↑ OpenTimeTable. via-con.de. Gearchiveerd op 23 september 2020. Geraadpleegd op 20 november 2019.
* ↑ (de) VIS-All® 3D- der einfache Weg in die 3D-Welt!. Software-Service John. Geraadpleegd op May 21, 2017.
* ↑ GPSinfradat. Gearchiveerd op 7 augustus 2020. Geraadpleegd op 20 november 2019.
* ↑ railVIVID - railML.org (EN). railml.org. Gearchiveerd op 27 januari 2016. Geraadpleegd op 26 januari 2016.
* ↑ SNCF Réseau and TU Dresden, 4th UIC RailTopoModel and railML Conference: Achievements (28 april 2015). Gearchiveerd op 20 januari 2022.
* ↑ (en) Certification - railML.org (EN). www.railml.org. Geraadpleegd op 20 november 2019.
* ↑ Partners - railML.org (EN). railml.org. Gearchiveerd op 5 februari 2016. Geraadpleegd op 26 januari 2016.
* ↑ UIC e-news 362: The foundation for a Universal Infrastructure Data Exchange Format (30 november 2014).