Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce OJP resources #19

Open
andaryjo opened this issue Jun 12, 2022 · 3 comments
Open

Introduce OJP resources #19

andaryjo opened this issue Jun 12, 2022 · 3 comments

Comments

@andaryjo
Copy link

andaryjo commented Jun 12, 2022

Since we mentioned OJP in public-transport/transport-apis#43, I thought it would be good to have a new issue similar to #18 to collect useful resources for anyone not familar with it (it was my first time hearing it as well, even though it's already a few years old).

OJP stands for "Open Journey Planner" and it is called the Open API for distributed journey planning. While being an extension of the German TRIAS, it apparently has been developed in cooperation with some european countries and has been approved as a Technical Specification by the the European Commitee for Standardization (CEN). As far as I understand, this does not make it legally binding to use it, but the CEN recommds its usage to local, regional and national travel information service providers.

What does this mean for TRIAS?

I think this is a step in the right direction. The TRIAS specification was always somewhat limited to German public transport providers, simply because it's a German development, but this did not stop providers from other countries to use it (for example SBB and VSTG).

It's unclear to me what this means for TRIAS and providers currently implementing TRIAS. So far, the TRIAS specification has not been deprecated and - as far as I can tell - no providers except for SBB have any ambitions to change to the new standard.

What is the difference in the specification?

I did not have a detailed look into the specification yet, but it seems like the request and response XML structures are largely the same. You just would need to replace TRIAS tags with OJP tags and it should work. See here for examples by SBB.

One new feature apparently are chained requests, where you can include multiple OJP requests in just one HTTP call with a AbstractFunctionalServiceRequest. That sounds cool.

Where can I see the specification?

You can find the OJP XML schemas on GitHub: https://github.com/VDVde/OJP

But there does not seem to be any freely available documentation on the standard. You could buy it for around 140€ here. The SSB even states that the documentation has been copyrighted and cannot be published. While this seems to be normal procedure for CEN standards (as read in their FAQs), it baffles me how they are aiming to introduce a new standard and at the same time copyright the standard's documentation.

What providers support OJP?

For now I was only able to find the SBB.

What now?

  • I'd like to look further into the OJP XML schemas and look what's different to TRIAS and to document the new features and changes.
  • Ask providers directly whether they are planning to support OJP.
  • Update trias-client to support OJP.

I'd be interested to hear your thoughts on this.

@derhuerst
Copy link
Member

@ue71603 @skinkie Do you know if there's a freely available, or even freely (as in freedom of speech) licensed, version of the documentation?

@ue71603
Copy link

ue71603 commented Jun 16, 2022

@derhuerst OJP is a CEN standard, so the main document needs to be ordered from the national standardisation body for a fee as mentioned. CEN and ISO standards always are that way. The XSD however is GPL, so you can use it. We try to pack the crucial implementation information into the XSD. We also provide the cookbook and expand on it, if this is desired : https://opentransportdata.swiss/en/cookbook/open-journey-planner-ojp/

Our demonstrator contains an SDK and shows how things can be done: https://opentdatach.github.io/ojp-demo-app/ . It is also open source. It allows you to inspect requests and responses.

We also have an API explorer in the cookbook for that: https://opentransportdata.swiss/en/cookbook/open-journey-planner-ojp/#API-Explorer

Code generation from the XSD we will expand on that in github in near furutre @skinkie is working on that.

The Swiss service is available and working and less than 50 requests per minute are free (you need to get youself an API key https://opentransportdata.swiss/en/cookbook/open-journey-planner-ojp/#Access_to_the_API

For some EU projects "Profiles" will be compiled, that are probably also published.

If we can do anything else, please say, what you need.

@derhuerst
Copy link
Member

derhuerst commented Jan 25, 2023

a work-in-progress OJP SDK: https://github.com/openTdataCH/ojp-js
a demo ojp client: https://github.com/openTdataCH/ojp-demo-app

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

3 participants