These students could create them a different path, but I don't have any problems in my district.
and Siri, but more deep dive in the technical stuff.
Thank you all for coming.
Hello, everybody.
I'm not sure.
Hello, everybody.
All right.
We are going to talk about netx and Siri.
Not the perspective, the code, how to read, how to write, how to convert.
I don't know, netx and Siri, in real life, in real life, maybe a developer.
But we will see.
Netx is a five format for static data.
Siri is a API for real-time data.
It's okay for most of the people in the room.
Netx and Siri have a bad reputation.
It's XML.
It's verbose.
It's old blah, blah, blah.
And we will see that with a little piece of code.
It can be funny.
I'm Alban Penier.
I work in French company on route.
We are working for the main time on two, three software.
Shwed is managed static data.
So netx and GTFS.
And Ara is managing real-time data.
So it's a fast platform, but it's open source.
And to work for Shwed, for example, we need to read netx from everywhere.
So it takes fewer, fewer, but we find solution.
And this is a solution.
What's the plan?
We will see, or to read the netx file.
Simply, we will see, or to invoke a Siri API.
A new Siri API in the world.
Write the netx file and create a Siri server.
And as my VPN works, we may have the demo.
And we will see what is missing for a netx and Siri.
And why is this kind of conferences needed.
But I need to know something about that to be clear and adjust the talk.
We already use GTFS.
Who?
We'll ever see the netx file.
See.
Unless.
We'll make Scott to read a netx file.
Three, two, five, six.
Okay.
Yeah.
We make Scott to create a netx file.
Oh, the same.
We already invoke a Siri API somewhere in Europe.
Ah, same, six, five.
Okay.
I hope we will be much more next year.
This is what we did in the netx file.
Any netx file in the world can be read by this piece of code.
You open, give a file and the code will process maybe a long time,
but you will have what you need in the netx file.
If you have already seen a netx file, it's not obvious.
There is some steps to go down at this level.
We are working our customer or using netx file from everywhere in Europe.
So we have to find solution to read any netx file.
Okay.
Open a ticket and next week or two week.
So this piece of code will work in its Ruby,
that it will work on every file in the world.
A netx file can be an XML.
Can be a zip-wezig XML.
There is profile in netx.
Something that's a developer can understand.
But each country, each region can make its own adaptation of netx.
It's netx, but it's not like the renewable.
So it can work on the simple XML file or of two line.
But it can work on the 10 digit byte file,
because in prediction we are managing very big file.
And it can even work on totally invalid file.
Something that it's XML, but it's not netx.
The developer will be able to read the file and make as much as possible to read the data.
In fact, it's as easy in GTFS,
but there is more code to, it's not CSV and it's more complex.
But netx has an advantage for developer in that.
It's XML, it's a buzz.
But you have a lot of data.
You can store a lot of detail.
You can store lots of concepts.
That you can't store in GTFS, so most of GTFS world using a normalize file.
And a lot of specific file around.
And when you are developer, GTFS is fund the first two weeks.
And after is specific file around GTFS.
With netx, and a lot of code, a piece of code,
you will be able to manage all that complexity and rich part of the file format.
Because you will be able to provide a lot of feature with the in-seagull file.
There's a sound.
Okay.
But things in the live are not as easy as in the code, as you know.
So there is a lot of netx value, because netx alone is value.
Netx is a big spec of seven.
Yes, something like that.
Don't read it, but quickly.
But in each country, in each region, everybody adapts netx.
Netx is like, for a developer, netx is a framework.
You have a lot of attributes.
And you choose what part is really useful for you.
But for a developer, code doesn't look like a variety.
Somebody will say, okay, my style is like, maybe the 25, maybe it's not a big file, but it's not like this.
Most of users are for user or creating file, which is a great example.
And the support has to answer to question about the code we will read the file.
So if you really read the next file, don't choose static approach.
You can't choose static approach, you can't choose an express.
That code is a code, it looks like that.
Indeed.
In production, most of the netx file are zip file.
And this is the first funny part.
Any netx file used in all organizations.
The French organizations, and all the connections, the Swiss organizations.
And you have a lot of file with a French name, with English name and so on.
And each file contains its own kind of resources.
And you want to find the resources.
It can be a large unique XML file.
I think Swiss, for example, waspublishing a big, very big XML file.
And it's profile, asked to bread and to watch this profile.
Each country, each region, creates its own nice PDF to say, OK, mine file.
Mine is the place or in V-sweine.
In fact, the netx resources are never as the same place.
And when you open an XML file, you are that.
Because it doesn't start with simply the first data.
You start with some things that netx is called framed and netx guys love framed.
There is a lot of frames, there is a lot of war.
And when you need to read the v-sweine, you don't need this separate file.
You don't need v-sweine.
You want to read useful things in to the file.
And useful things are, where is the K, where is the stop plates, where is the line?
What is the journey of this data, where the point of interest is somewhere.
And if you create the correct library, you can read directly the business model in the file.
And in fact, if you need to make a user a rough example, you will be able to say, OK,
twice in the small file on the left.
But in fact, the tool is able to read anything.
Anything with contain a piece of XML, which is netx XML.
So for example, our user are able to import netx like that.
So they can take not bad and say, OK, I have 10 stop plates.
This is my stop plates.
It's something like XML netx.
And they can import that, because the library is able to read that.
And say, OK, there is no frame that was no per.
There is, it was the easy part, because it's easy for to make code, which does not read the file on the file.
It needs to be controlled by the file.
But in fact, if we read the spec of netx, there is a token of attributes.
And in the Nordic profile, for example, they are using a way to define a position of stop plates.
And in the phrase profile, they are using, and I think it's a good one.
Very small example.
Most of the model files are using this one, but French file, for example, use this one.
And if you are a developer, it doesn't work.
So the tools, the Ruby library, is able to post-process resources as you expect.
So you can add something, it's called simply a transformer.
Each resources will be processed by it.
And if you code like this form, you will have an object with latitude and longitude.
If you code like this form, you can match at zero position.
There is more complex things like managing stop plates and so on.
But we are not in the room to read netx every day to talk about that.
After netx, and after static data, let's talk about real-time data.
This is a piece of code, which will make a business case very strange.
We are asking all the line of the network.
We are picking up a random line, and we are asking all the next journey of the line.
This code will perform all the stuff for you.
It will create requests to see repas, see requests for you, and provide you a normal object.
The same thing for Siri.
If you don't know Siri, Siri is not like GTFSRLT.
GTFSLT is a binary file.
You don't know it, and you do what you want with it.
But you need to read three eight piece of code, which is able to extract your data.
Siri is not a project, it's an API.
You can ask the question to Siri and say, I need the next visit on this stop.
I need all your data.
I need vehicle data.
And you can filter, you can make things simple.
And the business code will do a random thing that if we ask on a stop place somewhere in the city,
or in the country, and ask the next visit, and you will have another answer.
Whatever the Siri implementation or server there.
Because Siri, like netx, is not well defined for a different, in fact, specification.
Siri, as a lot of PDF page, but there are three kind of set up implementation.
You can make XML, you can make XML soup when you have an old thing.
And in this case, you're using a big toast request and response.
And you can use gison and resubi API.
But in fact, it's the same thing.
It's the same PDF page.
That's the first server, or using this technology.
The new server, using this technology.
And if you want to use gison, for example, the gison is XML conversion.
So it's a bad gison, in fact.
It's a music smell is the same thing.
The library we are working on, which is available.
Use the three kind of payload, because it's mostly a program of creating the real message and passing the real message.
And Siri has another nice feature.
It's a real-time API.
So instead of pulling a big file every minutes, you can receive notification.
And there is a push mode, a subscription mode, in Siri.
So you can subscribe and receive notification.
So you can subscribe for one stop-place.
You can subscribe for the whole country.
You can subscribe for one line.
It's always present at very tricky.
Our user, when they ask to the other provider or software provider to set up this kind of thing.
And I think the results are, we need two years.
This is, in two slides.
The subscription.
You say, okay, I want to, I want all your vehicle.
I want to see all your vehicle in real-time.
This piece of Scott will create the subscription.
And you send it to the server.
And you need to be a server, because it's a webbuck.
It's nothing more complex than that.
You need a server, which will receive a notification.
And this is a small piece of code, which is nothing very useful.
But you will have a nice emoji with the description of the notification.
With that, you can, it was yesterday, because I was not sure to have a VPN.
And you have, in real-time, the data from an NGO in France yesterday evening.
And you will be able to have data in production all the day.
And you can receive a series, very useful.
For example, a field display, because you can subscribe.
Each display, because you can subscribe one stop place.
The stop place where the display is in the state.
And you will have a summary of each, next visit.
In next of visit, via notification.
A series is more easy to map and to adapt for a single code.
But a series is older than netx.
And there is a small precision into the spec.
And between all the usage in the Europe country,
there is small advantage to pick, or point to be resolved,
because of some choice about subscription or to authentication or something like that.
But in production, we are talking with several series,
and most of the countries in the Europe is difficult.
But there is some points to be improving the series' spec in the future.
Way to find a netx that affects, for people who have never seen a netx file.
Each country should have a national access point.
And there are pay to manage netx, so normally.
It's easy for entry.
But there is also a country.
Your national access point should collect netx file in your country.
And there is a European data portal,
which we try to probe, open data,
and open data, and you can find netx data sets on that.
It's a good spot to find better source in Europe.
How to find series API?
There is a U-Bell agent, but series complex, blah, blah.
And so most of the people we have real-time data,
think it's too complex, too expensive to have real-time data,
free open-ons of web.
Hopefully there is a two.
We see the API.
If you enter it by data in France,
the French app recommends public server with a static,
and well known, recursively,
so you can make it in the demo as a user.
Using this kind of API,
and our user are able to, in two clicks, to define a public API.
If you see our API.org.mov,
you can ask them to open the partner.
But what's if there is something missing?
And there is a lot of missing netx file is in Europe.
You can create that.
You have the same library,
is it all to create for you a netx file.
So you can not once replace maybe a bit, maybe more.
You can use the same library,
the open-sits, and create a netx file.
Simply like that.
And it will create in this kind of default netx file.
But there is profile.
So you can say, okay, this is my definition on my profile.
For me, it will be the example where to French profile.
And I say to the library, okay, I send you the resources,
and do your job and create the fucking file.
So it will create the zip file.
If you need the zip file, it will organize the resources.
And you can use Nordic profile, for example.
If you need to create your own profile, for a developer,
a profile is not a big PDF file.
It's something like that.
It's switching resources to say, okay, my stop.
Go to stop to external.
My line go to this kind of document.
And you have to define sometimes frames,
because they like frames.
And you can say, okay, in these frames,
the tables, I saw, for example, stop, please.
Something like that.
And we are managing several 10, maybe,
profile in prediction.
And they are 100 line of code.
Most of the times, in so only a routing problem.
Sometimes there is more tricky problem,
but we are able to transform the resources
because of the profile and we can manage more complex solution.
And if you want to create a series error,
we see that before, because to receive an notification,
you have to create a series error.
This kind of code will create a server,
which is able to respond to the basic first message,
which is a check status I'm alive.
And if you want to create,
to respond to the first useful request,
you can create an estimated timetable response
with this kind of code.
You will send the next journey of,
so if you have a GTFSFG, for example,
you can really, GTFSFG,
and transform it into a server enhancement.
If you want to see the code,
our repository are here,
netx and accessibility data are something
like that are using prediction.
We are using serial production in Go,
and we are working to extract the serial path
for the moment, because it's,
we've been inside the record for the rest.
And in fact, the sample I show in this talk
was a Ruby, an experimental Ruby version for the moment
that it works fine.
And it's the prototype for the Go site.
And if you need to manage netx file,
we have tools to validate.
For example, file, because all I show is netx file,
okay, but this is my file is valid.
We have tools.
And there is a lot we will make a lot of work to convert file.
Okay, I have another file, but I only,
only able to read the frames file.
So you can convert in fact,
a netx to netx is something strange,
but you can swap a profile, for example,
to read a profile A and write a profile B.
What's missing?
Developer.
Serene netx need developer.
Is a serial netx on open community.
There is, in your country,
there is a works group.
We deal with the national profile.
They need developer.
There is a guy we are able to work well in burden,
but they need developer.
We can say, no, no, don't make this choice.
It's too complicated to really talk with you to write.
Let's do like, not decrofile,
let's do like the other one, and it will be simpler.
So please developer, go to your work groups,
and say, the facial group is open to that.
We are working it.
And they need to fit back from the real life,
in fact.
That's all from me.
Thank you.
Yes.
Thank you very much.
Requestion.
Yes.
The question is about the validation, the confession tools.
The validation, we have two tools.
One is access to validation,
and it's available as a Ruby library.
And we have an engine with the custom rules
to check if rules or respect back resources.
It's open-source, but it's a good evaluation for the moment.
We are working, the French pan is deploying these tools.
So it's, we are working every day on it.
In humans, we will have the engine,
the French engine available in a process.
We are working on it.
And the convert tools is available.
You can convert GTFS to netx, netx to netx,
Neptune for French guys, in GTFS, something like that.
But you could be extended to manage, for example, netx to GTFS.
Yes, but.
From a tool, we also have a validator for netx.
Library that can be used by everyone, open source, fully.
They've blocked pretty recent.
And those are tools that I can run it,
but then you have to use it.
That's the answer.
But then you have to use some,
develop skills to adapt to your needs.
Yeah.
In human.
We are working on rules on gene.
You define the rules, in fact.
So you have a gene file with rules.
You load the rules and you inspect a netx file.
We use your own business, or something like that.
That's the question.
Last question.
We heard earlier that there's work being done on creating a rule of being unified.
The netx profile.
Yes.
What do you think about benefits of food that we already have tonight?
Do you want to work with the chaos of netx and netx?
Whatever.
There is, because we are working on the French profile for a tenure.
There is a European profile.
For the moment, we were profiting this focus on shared filing in Europe,
but everybody has its own specific needs on the country.
But our point of view is that nothing,
we are able to manage any profile.
So if there is one profile, we can remove code.
But we don't have to wait.
That there is only a solution from netx.
We need a cut solution.
So we made the cut solution.
The biggest amount of interest is the code of data.
That you can.