WEBVTT

00:00.000 --> 00:09.000
These students could create them a different path, but I don't have any problems in my district.

00:09.000 --> 00:16.000
and Siri, but more deep dive in the technical stuff.

00:16.000 --> 00:18.000
Thank you all for coming.

00:18.000 --> 00:22.000
Hello, everybody.

00:22.000 --> 00:24.000
I'm not sure.

00:24.000 --> 00:27.000
Hello, everybody.

00:27.000 --> 00:31.000
All right.

00:31.000 --> 00:35.000
We are going to talk about netx and Siri.

00:35.000 --> 00:42.000
Not the perspective, the code, how to read, how to write, how to convert.

00:42.000 --> 00:50.000
I don't know, netx and Siri, in real life, in real life, maybe a developer.

00:50.000 --> 00:52.000
But we will see.

00:52.000 --> 00:55.000
Netx is a five format for static data.

00:55.000 --> 00:59.000
Siri is a API for real-time data.

00:59.000 --> 01:04.000
It's okay for most of the people in the room.

01:04.000 --> 01:08.000
Netx and Siri have a bad reputation.

01:08.000 --> 01:10.000
It's XML.

01:10.000 --> 01:11.000
It's verbose.

01:11.000 --> 01:14.000
It's old blah, blah, blah.

01:14.000 --> 01:19.000
And we will see that with a little piece of code.

01:19.000 --> 01:22.000
It can be funny.

01:22.000 --> 01:25.000
I'm Alban Penier.

01:25.000 --> 01:29.000
I work in French company on route.

01:29.000 --> 01:34.000
We are working for the main time on two, three software.

01:34.000 --> 01:39.000
Shwed is managed static data.

01:39.000 --> 01:41.000
So netx and GTFS.

01:41.000 --> 01:44.000
And Ara is managing real-time data.

01:44.000 --> 01:49.000
So it's a fast platform, but it's open source.

01:49.000 --> 01:56.000
And to work for Shwed, for example, we need to read netx from everywhere.

01:56.000 --> 02:02.000
So it takes fewer, fewer, but we find solution.

02:02.000 --> 02:05.000
And this is a solution.

02:05.000 --> 02:06.000
What's the plan?

02:06.000 --> 02:09.000
We will see, or to read the netx file.

02:09.000 --> 02:14.000
Simply, we will see, or to invoke a Siri API.

02:14.000 --> 02:18.000
A new Siri API in the world.

02:18.000 --> 02:23.000
Write the netx file and create a Siri server.

02:23.000 --> 02:30.000
And as my VPN works, we may have the demo.

02:30.000 --> 02:34.000
And we will see what is missing for a netx and Siri.

02:34.000 --> 02:38.000
And why is this kind of conferences needed.

02:38.000 --> 02:47.000
But I need to know something about that to be clear and adjust the talk.

02:47.000 --> 02:50.000
We already use GTFS.

02:51.000 --> 02:53.000
Who?

02:53.000 --> 02:56.000
We'll ever see the netx file.

02:56.000 --> 02:58.000
See.

02:58.000 --> 03:01.000
Unless.

03:01.000 --> 03:04.000
We'll make Scott to read a netx file.

03:04.000 --> 03:07.000
Three, two, five, six.

03:07.000 --> 03:09.000
Okay.

03:09.000 --> 03:10.000
Yeah.

03:10.000 --> 03:14.000
We make Scott to create a netx file.

03:14.000 --> 03:17.000
Oh, the same.

03:17.000 --> 03:21.000
We already invoke a Siri API somewhere in Europe.

03:21.000 --> 03:24.000
Ah, same, six, five.

03:24.000 --> 03:25.000
Okay.

03:25.000 --> 03:29.000
I hope we will be much more next year.

03:29.000 --> 03:31.000
This is what we did in the netx file.

03:31.000 --> 03:36.000
Any netx file in the world can be read by this piece of code.

03:36.000 --> 03:42.000
You open, give a file and the code will process maybe a long time,

03:42.000 --> 03:46.000
but you will have what you need in the netx file.

03:47.000 --> 03:51.000
If you have already seen a netx file, it's not obvious.

03:51.000 --> 03:58.000
There is some steps to go down at this level.

03:58.000 --> 04:03.000
We are working our customer or using netx file from everywhere in Europe.

04:03.000 --> 04:08.000
So we have to find solution to read any netx file.

04:08.000 --> 04:09.000
Okay.

04:09.000 --> 04:14.000
Open a ticket and next week or two week.

04:14.000 --> 04:17.000
So this piece of code will work in its Ruby,

04:17.000 --> 04:20.000
that it will work on every file in the world.

04:20.000 --> 04:22.000
A netx file can be an XML.

04:22.000 --> 04:25.000
Can be a zip-wezig XML.

04:25.000 --> 04:27.000
There is profile in netx.

04:27.000 --> 04:30.000
Something that's a developer can understand.

04:30.000 --> 04:37.000
But each country, each region can make its own adaptation of netx.

04:37.000 --> 04:42.000
It's netx, but it's not like the renewable.

04:42.000 --> 04:49.000
So it can work on the simple XML file or of two line.

04:49.000 --> 04:52.000
But it can work on the 10 digit byte file,

04:52.000 --> 04:56.000
because in prediction we are managing very big file.

04:56.000 --> 04:59.000
And it can even work on totally invalid file.

04:59.000 --> 05:03.000
Something that it's XML, but it's not netx.

05:03.000 --> 05:11.000
The developer will be able to read the file and make as much as possible to read the data.

05:11.000 --> 05:16.000
In fact, it's as easy in GTFS,

05:16.000 --> 05:21.000
but there is more code to, it's not CSV and it's more complex.

05:21.000 --> 05:27.000
But netx has an advantage for developer in that.

05:27.000 --> 05:30.000
It's XML, it's a buzz.

05:30.000 --> 05:32.000
But you have a lot of data.

05:32.000 --> 05:35.000
You can store a lot of detail.

05:35.000 --> 05:37.000
You can store lots of concepts.

05:37.000 --> 05:44.000
That you can't store in GTFS, so most of GTFS world using a normalize file.

05:44.000 --> 05:48.000
And a lot of specific file around.

05:48.000 --> 05:53.000
And when you are developer, GTFS is fund the first two weeks.

05:53.000 --> 05:57.000
And after is specific file around GTFS.

05:57.000 --> 06:03.000
With netx, and a lot of code, a piece of code,

06:03.000 --> 06:13.000
you will be able to manage all that complexity and rich part of the file format.

06:13.000 --> 06:23.000
Because you will be able to provide a lot of feature with the in-seagull file.

06:23.000 --> 06:26.000
There's a sound.

06:26.000 --> 06:28.000
Okay.

06:28.000 --> 06:34.000
But things in the live are not as easy as in the code, as you know.

06:34.000 --> 06:40.000
So there is a lot of netx value, because netx alone is value.

06:40.000 --> 06:45.000
Netx is a big spec of seven.

06:45.000 --> 06:47.000
Yes, something like that.

06:47.000 --> 06:50.000
Don't read it, but quickly.

06:50.000 --> 06:55.000
But in each country, in each region, everybody adapts netx.

06:55.000 --> 06:58.000
Netx is like, for a developer, netx is a framework.

06:58.000 --> 07:00.000
You have a lot of attributes.

07:00.000 --> 07:06.000
And you choose what part is really useful for you.

07:06.000 --> 07:11.000
But for a developer, code doesn't look like a variety.

07:12.000 --> 07:21.000
Somebody will say, okay, my style is like, maybe the 25, maybe it's not a big file, but it's not like this.

07:21.000 --> 07:26.000
Most of users are for user or creating file, which is a great example.

07:26.000 --> 07:32.000
And the support has to answer to question about the code we will read the file.

07:32.000 --> 07:37.000
So if you really read the next file, don't choose static approach.

07:37.000 --> 07:40.000
You can't choose static approach, you can't choose an express.

07:40.000 --> 07:44.000
That code is a code, it looks like that.

07:44.000 --> 07:46.000
Indeed.

07:46.000 --> 07:51.000
In production, most of the netx file are zip file.

07:51.000 --> 07:55.000
And this is the first funny part.

07:55.000 --> 07:59.000
Any netx file used in all organizations.

07:59.000 --> 08:04.000
The French organizations, and all the connections, the Swiss organizations.

08:04.000 --> 08:10.000
And you have a lot of file with a French name, with English name and so on.

08:10.000 --> 08:14.000
And each file contains its own kind of resources.

08:14.000 --> 08:18.000
And you want to find the resources.

08:18.000 --> 08:21.000
It can be a large unique XML file.

08:21.000 --> 08:27.000
I think Swiss, for example, waspublishing a big, very big XML file.

08:27.000 --> 08:33.000
And it's profile, asked to bread and to watch this profile.

08:33.000 --> 08:38.000
Each country, each region, creates its own nice PDF to say, OK, mine file.

08:38.000 --> 08:41.000
Mine is the place or in V-sweine.

08:41.000 --> 08:47.000
In fact, the netx resources are never as the same place.

08:47.000 --> 08:51.000
And when you open an XML file, you are that.

08:51.000 --> 08:55.000
Because it doesn't start with simply the first data.

08:55.000 --> 09:01.000
You start with some things that netx is called framed and netx guys love framed.

09:01.000 --> 09:05.000
There is a lot of frames, there is a lot of war.

09:05.000 --> 09:14.000
And when you need to read the v-sweine, you don't need this separate file.

09:14.000 --> 09:16.000
You don't need v-sweine.

09:16.000 --> 09:19.000
You want to read useful things in to the file.

09:19.000 --> 09:26.000
And useful things are, where is the K, where is the stop plates, where is the line?

09:26.000 --> 09:31.000
What is the journey of this data, where the point of interest is somewhere.

09:31.000 --> 09:41.000
And if you create the correct library, you can read directly the business model in the file.

09:41.000 --> 09:50.000
And in fact, if you need to make a user a rough example, you will be able to say, OK,

09:50.000 --> 09:54.000
twice in the small file on the left.

09:54.000 --> 09:58.000
But in fact, the tool is able to read anything.

09:58.000 --> 10:03.000
Anything with contain a piece of XML, which is netx XML.

10:03.000 --> 10:09.000
So for example, our user are able to import netx like that.

10:09.000 --> 10:14.000
So they can take not bad and say, OK, I have 10 stop plates.

10:14.000 --> 10:16.000
This is my stop plates.

10:16.000 --> 10:19.000
It's something like XML netx.

10:19.000 --> 10:23.000
And they can import that, because the library is able to read that.

10:23.000 --> 10:31.000
And say, OK, there is no frame that was no per.

10:31.000 --> 10:44.000
There is, it was the easy part, because it's easy for to make code, which does not read the file on the file.

10:44.000 --> 10:48.000
It needs to be controlled by the file.

10:48.000 --> 10:55.000
But in fact, if we read the spec of netx, there is a token of attributes.

10:55.000 --> 11:03.000
And in the Nordic profile, for example, they are using a way to define a position of stop plates.

11:03.000 --> 11:07.000
And in the phrase profile, they are using, and I think it's a good one.

11:07.000 --> 11:10.000
Very small example.

11:10.000 --> 11:17.000
Most of the model files are using this one, but French file, for example, use this one.

11:17.000 --> 11:22.000
And if you are a developer, it doesn't work.

11:22.000 --> 11:30.000
So the tools, the Ruby library, is able to post-process resources as you expect.

11:30.000 --> 11:34.000
So you can add something, it's called simply a transformer.

11:34.000 --> 11:37.000
Each resources will be processed by it.

11:37.000 --> 11:43.000
And if you code like this form, you will have an object with latitude and longitude.

11:43.000 --> 11:49.000
If you code like this form, you can match at zero position.

11:49.000 --> 11:55.000
There is more complex things like managing stop plates and so on.

11:55.000 --> 12:03.000
But we are not in the room to read netx every day to talk about that.

12:03.000 --> 12:13.000
After netx, and after static data, let's talk about real-time data.

12:13.000 --> 12:20.000
This is a piece of code, which will make a business case very strange.

12:20.000 --> 12:24.000
We are asking all the line of the network.

12:24.000 --> 12:33.000
We are picking up a random line, and we are asking all the next journey of the line.

12:33.000 --> 12:38.000
This code will perform all the stuff for you.

12:38.000 --> 12:46.000
It will create requests to see repas, see requests for you, and provide you a normal object.

12:46.000 --> 12:52.000
The same thing for Siri.

12:52.000 --> 12:56.000
If you don't know Siri, Siri is not like GTFSRLT.

12:56.000 --> 12:58.000
GTFSLT is a binary file.

12:58.000 --> 13:01.000
You don't know it, and you do what you want with it.

13:01.000 --> 13:06.000
But you need to read three eight piece of code, which is able to extract your data.

13:06.000 --> 13:09.000
Siri is not a project, it's an API.

13:09.000 --> 13:16.000
You can ask the question to Siri and say, I need the next visit on this stop.

13:16.000 --> 13:19.000
I need all your data.

13:19.000 --> 13:21.000
I need vehicle data.

13:21.000 --> 13:26.000
And you can filter, you can make things simple.

13:27.000 --> 13:35.000
And the business code will do a random thing that if we ask on a stop place somewhere in the city,

13:35.000 --> 13:40.000
or in the country, and ask the next visit, and you will have another answer.

13:40.000 --> 13:44.000
Whatever the Siri implementation or server there.

13:44.000 --> 13:55.000
Because Siri, like netx, is not well defined for a different, in fact, specification.

13:55.000 --> 14:03.000
Siri, as a lot of PDF page, but there are three kind of set up implementation.

14:03.000 --> 14:11.000
You can make XML, you can make XML soup when you have an old thing.

14:11.000 --> 14:17.000
And in this case, you're using a big toast request and response.

14:17.000 --> 14:20.000
And you can use gison and resubi API.

14:20.000 --> 14:22.000
But in fact, it's the same thing.

14:22.000 --> 14:26.000
It's the same PDF page.

14:26.000 --> 14:30.000
That's the first server, or using this technology.

14:30.000 --> 14:33.000
The new server, using this technology.

14:33.000 --> 14:40.000
And if you want to use gison, for example, the gison is XML conversion.

14:40.000 --> 14:43.000
So it's a bad gison, in fact.

14:43.000 --> 14:48.000
It's a music smell is the same thing.

14:49.000 --> 14:56.000
The library we are working on, which is available.

14:56.000 --> 15:11.000
Use the three kind of payload, because it's mostly a program of creating the real message and passing the real message.

15:12.000 --> 15:15.000
And Siri has another nice feature.

15:15.000 --> 15:18.000
It's a real-time API.

15:18.000 --> 15:27.000
So instead of pulling a big file every minutes, you can receive notification.

15:27.000 --> 15:32.000
And there is a push mode, a subscription mode, in Siri.

15:32.000 --> 15:37.000
So you can subscribe and receive notification.

15:37.000 --> 15:39.000
So you can subscribe for one stop-place.

15:39.000 --> 15:42.000
You can subscribe for the whole country.

15:42.000 --> 15:48.000
You can subscribe for one line.

15:48.000 --> 15:52.000
It's always present at very tricky.

15:52.000 --> 16:01.000
Our user, when they ask to the other provider or software provider to set up this kind of thing.

16:01.000 --> 16:05.000
And I think the results are, we need two years.

16:05.000 --> 16:10.000
This is, in two slides.

16:10.000 --> 16:11.000
The subscription.

16:11.000 --> 16:15.000
You say, okay, I want to, I want all your vehicle.

16:15.000 --> 16:19.000
I want to see all your vehicle in real-time.

16:19.000 --> 16:22.000
This piece of Scott will create the subscription.

16:22.000 --> 16:24.000
And you send it to the server.

16:24.000 --> 16:28.000
And you need to be a server, because it's a webbuck.

16:28.000 --> 16:30.000
It's nothing more complex than that.

16:30.000 --> 16:35.000
You need a server, which will receive a notification.

16:35.000 --> 16:40.000
And this is a small piece of code, which is nothing very useful.

16:40.000 --> 16:49.000
But you will have a nice emoji with the description of the notification.

16:50.000 --> 17:00.000
With that, you can, it was yesterday, because I was not sure to have a VPN.

17:00.000 --> 17:08.000
And you have, in real-time, the data from an NGO in France yesterday evening.

17:08.000 --> 17:18.000
And you will be able to have data in production all the day.

17:18.000 --> 17:24.000
And you can receive a series, very useful.

17:24.000 --> 17:28.000
For example, a field display, because you can subscribe.

17:28.000 --> 17:32.000
Each display, because you can subscribe one stop place.

17:32.000 --> 17:35.000
The stop place where the display is in the state.

17:35.000 --> 17:40.000
And you will have a summary of each, next visit.

17:40.000 --> 17:44.000
In next of visit, via notification.

17:44.000 --> 17:56.000
A series is more easy to map and to adapt for a single code.

17:56.000 --> 17:59.000
But a series is older than netx.

17:59.000 --> 18:05.000
And there is a small precision into the spec.

18:05.000 --> 18:12.000
And between all the usage in the Europe country,

18:12.000 --> 18:22.000
there is small advantage to pick, or point to be resolved,

18:22.000 --> 18:28.000
because of some choice about subscription or to authentication or something like that.

18:28.000 --> 18:33.000
But in production, we are talking with several series,

18:33.000 --> 18:41.000
and most of the countries in the Europe is difficult.

18:41.000 --> 18:49.000
But there is some points to be improving the series' spec in the future.

18:49.000 --> 18:57.000
Way to find a netx that affects, for people who have never seen a netx file.

18:57.000 --> 19:01.000
Each country should have a national access point.

19:01.000 --> 19:07.000
And there are pay to manage netx, so normally.

19:07.000 --> 19:10.000
It's easy for entry.

19:10.000 --> 19:13.000
But there is also a country.

19:13.000 --> 19:21.000
Your national access point should collect netx file in your country.

19:21.000 --> 19:24.000
And there is a European data portal,

19:24.000 --> 19:31.000
which we try to probe, open data,

19:31.000 --> 19:37.000
and open data, and you can find netx data sets on that.

19:37.000 --> 19:45.000
It's a good spot to find better source in Europe.

19:45.000 --> 19:48.000
How to find series API?

19:48.000 --> 19:53.000
There is a U-Bell agent, but series complex, blah, blah.

19:53.000 --> 20:00.000
And so most of the people we have real-time data,

20:00.000 --> 20:05.000
think it's too complex, too expensive to have real-time data,

20:05.000 --> 20:07.000
free open-ons of web.

20:07.000 --> 20:09.000
Hopefully there is a two.

20:09.000 --> 20:11.000
We see the API.

20:11.000 --> 20:15.000
If you enter it by data in France,

20:15.000 --> 20:19.000
the French app recommends public server with a static,

20:19.000 --> 20:22.000
and well known, recursively,

20:22.000 --> 20:26.000
so you can make it in the demo as a user.

20:26.000 --> 20:28.000
Using this kind of API,

20:28.000 --> 20:33.000
and our user are able to, in two clicks, to define a public API.

20:33.000 --> 20:36.000
If you see our API.org.mov,

20:36.000 --> 20:41.000
you can ask them to open the partner.

20:41.000 --> 20:44.000
But what's if there is something missing?

20:44.000 --> 20:49.000
And there is a lot of missing netx file is in Europe.

20:49.000 --> 20:51.000
You can create that.

20:51.000 --> 20:53.000
You have the same library,

20:53.000 --> 20:56.000
is it all to create for you a netx file.

20:56.000 --> 21:00.000
So you can not once replace maybe a bit, maybe more.

21:00.000 --> 21:02.000
You can use the same library,

21:02.000 --> 21:05.000
the open-sits, and create a netx file.

21:05.000 --> 21:07.000
Simply like that.

21:07.000 --> 21:11.000
And it will create in this kind of default netx file.

21:11.000 --> 21:13.000
But there is profile.

21:13.000 --> 21:17.000
So you can say, okay, this is my definition on my profile.

21:17.000 --> 21:20.000
For me, it will be the example where to French profile.

21:20.000 --> 21:24.000
And I say to the library, okay, I send you the resources,

21:24.000 --> 21:27.000
and do your job and create the fucking file.

21:27.000 --> 21:29.000
So it will create the zip file.

21:29.000 --> 21:33.000
If you need the zip file, it will organize the resources.

21:33.000 --> 21:37.000
And you can use Nordic profile, for example.

21:37.000 --> 21:42.000
If you need to create your own profile, for a developer,

21:42.000 --> 21:45.000
a profile is not a big PDF file.

21:45.000 --> 21:47.000
It's something like that.

21:47.000 --> 21:49.000
It's switching resources to say, okay, my stop.

21:49.000 --> 21:51.000
Go to stop to external.

21:51.000 --> 21:55.000
My line go to this kind of document.

21:55.000 --> 22:01.000
And you have to define sometimes frames,

22:01.000 --> 22:03.000
because they like frames.

22:03.000 --> 22:05.000
And you can say, okay, in these frames,

22:05.000 --> 22:09.000
the tables, I saw, for example, stop, please.

22:09.000 --> 22:13.000
Something like that.

22:13.000 --> 22:17.000
And we are managing several 10, maybe,

22:17.000 --> 22:19.000
profile in prediction.

22:19.000 --> 22:23.000
And they are 100 line of code.

22:23.000 --> 22:27.000
Most of the times, in so only a routing problem.

22:27.000 --> 22:31.000
Sometimes there is more tricky problem,

22:31.000 --> 22:33.000
but we are able to transform the resources

22:33.000 --> 22:37.000
because of the profile and we can manage more complex solution.

22:37.000 --> 22:41.000
And if you want to create a series error,

22:41.000 --> 22:45.000
we see that before, because to receive an notification,

22:45.000 --> 22:47.000
you have to create a series error.

22:47.000 --> 22:50.000
This kind of code will create a server,

22:50.000 --> 22:54.000
which is able to respond to the basic first message,

22:54.000 --> 22:58.000
which is a check status I'm alive.

22:58.000 --> 23:02.000
And if you want to create,

23:02.000 --> 23:08.000
to respond to the first useful request,

23:08.000 --> 23:12.000
you can create an estimated timetable response

23:12.000 --> 23:14.000
with this kind of code.

23:14.000 --> 23:18.000
You will send the next journey of,

23:18.000 --> 23:22.000
so if you have a GTFSFG, for example,

23:22.000 --> 23:24.000
you can really, GTFSFG,

23:24.000 --> 23:28.000
and transform it into a server enhancement.

23:28.000 --> 23:32.000
If you want to see the code,

23:32.000 --> 23:36.000
our repository are here,

23:36.000 --> 23:40.000
netx and accessibility data are something

23:40.000 --> 23:42.000
like that are using prediction.

23:42.000 --> 23:44.000
We are using serial production in Go,

23:44.000 --> 23:47.000
and we are working to extract the serial path

23:47.000 --> 23:51.000
for the moment, because it's,

23:51.000 --> 23:55.000
we've been inside the record for the rest.

23:55.000 --> 24:01.000
And in fact, the sample I show in this talk

24:01.000 --> 24:05.000
was a Ruby, an experimental Ruby version for the moment

24:05.000 --> 24:07.000
that it works fine.

24:07.000 --> 24:13.000
And it's the prototype for the Go site.

24:13.000 --> 24:21.000
And if you need to manage netx file,

24:21.000 --> 24:23.000
we have tools to validate.

24:23.000 --> 24:27.000
For example, file, because all I show is netx file,

24:27.000 --> 24:29.000
okay, but this is my file is valid.

24:29.000 --> 24:31.000
We have tools.

24:31.000 --> 24:35.000
And there is a lot we will make a lot of work to convert file.

24:35.000 --> 24:37.000
Okay, I have another file, but I only,

24:37.000 --> 24:39.000
only able to read the frames file.

24:39.000 --> 24:41.000
So you can convert in fact,

24:41.000 --> 24:44.000
a netx to netx is something strange,

24:44.000 --> 24:47.000
but you can swap a profile, for example,

24:47.000 --> 24:51.000
to read a profile A and write a profile B.

24:51.000 --> 24:53.000
What's missing?

24:53.000 --> 24:55.000
Developer.

24:55.000 --> 24:57.000
Serene netx need developer.

24:57.000 --> 25:01.000
Is a serial netx on open community.

25:01.000 --> 25:03.000
There is, in your country,

25:03.000 --> 25:04.000
there is a works group.

25:04.000 --> 25:08.000
We deal with the national profile.

25:09.000 --> 25:11.000
They need developer.

25:11.000 --> 25:16.000
There is a guy we are able to work well in burden,

25:16.000 --> 25:18.000
but they need developer.

25:18.000 --> 25:21.000
We can say, no, no, don't make this choice.

25:21.000 --> 25:25.000
It's too complicated to really talk with you to write.

25:25.000 --> 25:28.000
Let's do like, not decrofile,

25:28.000 --> 25:31.000
let's do like the other one, and it will be simpler.

25:31.000 --> 25:34.000
So please developer, go to your work groups,

25:34.000 --> 25:38.000
and say, the facial group is open to that.

25:38.000 --> 25:40.000
We are working it.

25:40.000 --> 25:45.000
And they need to fit back from the real life,

25:45.000 --> 25:46.000
in fact.

25:46.000 --> 25:48.000
That's all from me.

25:48.000 --> 25:50.000
Thank you.

25:56.000 --> 25:57.000
Yes.

25:57.000 --> 25:58.000
Thank you very much.

25:58.000 --> 26:00.000
Requestion.

26:00.000 --> 26:01.000
Yes.

26:01.000 --> 26:13.000
The question is about the validation, the confession tools.

26:13.000 --> 26:17.000
The validation, we have two tools.

26:17.000 --> 26:21.000
One is access to validation,

26:21.000 --> 26:25.000
and it's available as a Ruby library.

26:26.000 --> 26:32.000
And we have an engine with the custom rules

26:32.000 --> 26:37.000
to check if rules or respect back resources.

26:37.000 --> 26:42.000
It's open-source, but it's a good evaluation for the moment.

26:42.000 --> 26:47.000
We are working, the French pan is deploying these tools.

26:47.000 --> 26:51.000
So it's, we are working every day on it.

26:51.000 --> 26:55.000
In humans, we will have the engine,

26:55.000 --> 26:59.000
the French engine available in a process.

26:59.000 --> 27:01.000
We are working on it.

27:01.000 --> 27:03.000
And the convert tools is available.

27:03.000 --> 27:07.000
You can convert GTFS to netx, netx to netx,

27:07.000 --> 27:12.000
Neptune for French guys, in GTFS, something like that.

27:12.000 --> 27:18.000
But you could be extended to manage, for example, netx to GTFS.

27:18.000 --> 27:19.000
Yes, but.

27:22.000 --> 27:30.000
From a tool, we also have a validator for netx.

27:30.000 --> 27:35.000
Library that can be used by everyone, open source, fully.

27:35.000 --> 27:38.000
They've blocked pretty recent.

27:38.000 --> 27:40.000
And those are tools that I can run it,

27:40.000 --> 27:44.000
but then you have to use it.

27:44.000 --> 27:47.000
That's the answer.

27:47.000 --> 27:50.000
But then you have to use some,

27:50.000 --> 27:53.000
develop skills to adapt to your needs.

27:53.000 --> 27:55.000
Yeah.

27:55.000 --> 27:57.000
In human.

27:57.000 --> 28:02.000
We are working on rules on gene.

28:02.000 --> 28:04.000
You define the rules, in fact.

28:04.000 --> 28:07.000
So you have a gene file with rules.

28:07.000 --> 28:10.000
You load the rules and you inspect a netx file.

28:10.000 --> 28:15.000
We use your own business, or something like that.

28:15.000 --> 28:17.000
That's the question.

28:17.000 --> 28:18.000
Last question.

28:18.000 --> 28:23.000
We heard earlier that there's work being done on creating a rule of being unified.

28:23.000 --> 28:24.000
The netx profile.

28:24.000 --> 28:25.000
Yes.

28:25.000 --> 28:29.000
What do you think about benefits of food that we already have tonight?

28:29.000 --> 28:33.000
Do you want to work with the chaos of netx and netx?

28:33.000 --> 28:36.000
Whatever.

28:36.000 --> 28:42.000
There is, because we are working on the French profile for a tenure.

28:42.000 --> 28:45.000
There is a European profile.

28:45.000 --> 28:49.000
For the moment, we were profiting this focus on shared filing in Europe,

28:49.000 --> 28:54.000
but everybody has its own specific needs on the country.

28:54.000 --> 28:58.000
But our point of view is that nothing,

28:58.000 --> 29:01.000
we are able to manage any profile.

29:01.000 --> 29:05.000
So if there is one profile, we can remove code.

29:05.000 --> 29:08.000
But we don't have to wait.

29:08.000 --> 29:11.000
That there is only a solution from netx.

29:11.000 --> 29:13.000
We need a cut solution.

29:13.000 --> 29:15.000
So we made the cut solution.

29:15.000 --> 29:20.000
The biggest amount of interest is the code of data.

29:20.000 --> 29:21.000
That you can.

