Transport data roaming
When I’m writing code I’m quite regularly distracted by what-ifs… For instance: what if I’m on a train towards Spain and I boarded in Belgium. As I have a smartphone with an application installed (let’s call it BeTrains for iRail) which gives me real-time information on my trajectory, I don’t want BeTrains to be useless once I cross the border. BeTrains should automatically switch to the trainsystem of that country.
This seems like a pretty good and easy-done concept. However we want to do it the right way: we don’t want other application developers to deal with the same hassle of implementing each country for which it wants to work for. We don’t even want to think about that. Every country should have the same standard for bringing its data to the public. To do this for the EU is a nice start since in Europe transport data is open by law.
We (the iRail team) are however not the right people to make this standard. Our momentum is too small for Europe. Who in Croatia is ever going to think they should be conform to the Belgian system? We need a European open standard for real-time public transport data. We can create a consortium that sets these standards as today everyone is opening its data in their own random way (standards should exist for all open data, whether it’s weather information or geolocation data).
Situation today for standardisation of public transport data
Talking about open data today is more and more accepted. For instance I came across this video about a presentation by the Massachusetts Department of Transportation:
This is an interesting evolution but if we look at their API response itself it looks something like this:
Clearly this kind of XML would not do the trick for real-time public transport data in Europe. We have some other companies who release their data like this as well, each company in another format, and slightly different information.
To make this «transport data roaming» work, we need someone to tell us what to implement. Just for now we’re telling people that we need this and we hope someone will come up with something we can implement. As at this moment we have an API we’re using this non-standard one we specified ourselves.