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

Siri formation in full in OJP 2.0 #328

Merged
merged 8 commits into from
May 24, 2023
Merged

Siri formation in full in OJP 2.0 #328

merged 8 commits into from
May 24, 2023

Conversation

ue71603
Copy link
Contributor

@ue71603 ue71603 commented Mar 3, 2023

Technically simple, the explanation of the usage more difficult. We need a chapter on VehicleFeatureRef in OJP.

  • Includes VehicleFeatureREf
  • Includes Formation on journey level
  • Includes Formation on arrival and departure

Another problem that would need to be addressed is that the Quay information in OJP is only textual. Perhaps we should switch this too. (separate PR then).
A lot of explanation in the documentation is needed, to not do overkill. The reason to use SIRI:
I had today a discussion with Adrian. We believe that the SIRI 2.1 formation should be used. We may in the documentation show, how to use it in a simplified form (only some elements to be filled in). However:

It is the format for Transmodel
For accessibility complex things might be necessary.
GTFS RT formation extension is no better in the end.
When this is agreed, I will copy things from the CEN SIRI European profile draft (information from Adrian).

For non-train SIRI proposes the usage of VehicleFeatureRef. We don't have that neither in OJP.

Continues the discussion from: #269

It does not validate until we have SIRI 2.1 referenced in our project.

@ue71603 ue71603 added this to the v2.0 milestone Mar 3, 2023
@ue71603
Copy link
Contributor Author

ue71603 commented Mar 10, 2023

We need parameters in the request. Trigger what happens. Only in Trip Refinement and not Trip.
Only TripRefinement and TripInformation.

Malte: Subpart better. At least in specification.
Christophe: Info from rail. Avoid having it here, but use SIRI. The reality is complex not the structure.

@ue71603
Copy link
Contributor Author

ue71603 commented Mar 10, 2023

Norman: Checking consistency might be a problem.

@ue71603
Copy link
Contributor Author

ue71603 commented Mar 10, 2023

Only TripInformation.

@ue71603
Copy link
Contributor Author

ue71603 commented Mar 14, 2023

Examples will be taken from the Swiss realisation guide v 0.9

@ue71603
Copy link
Contributor Author

ue71603 commented Mar 16, 2023

Added formation now in fully. I know that we wanted it only on TripInformation and there the filter is. However: As it is part of the regular structure, it would be possible to add formation also on Trips and StopEvent
image
image
image

It would be a big pain to take it out (splitting the whole DatedVehicleJourney structure). Would you agree we tell people. You may do it here, but you should not. Do it only in TripInformation?

@ue71603
Copy link
Contributor Author

ue71603 commented Mar 16, 2023

@herlitze @normanoffel @Aurige @sgrossberndt @skinkie : Heavy weight stuff ready for your consideration....

@ue71603
Copy link
Contributor Author

ue71603 commented Mar 16, 2023

description in spec in 5.3.4, 5.4.6, 7 (some sections and very briefly), 8.8.1

@herlitze
Copy link
Contributor

description in spec in 5.3.4, 5.4.6, 7 (some sections and very briefly), 8.8.1

The description added is hinting in the right direction, but there is no restriction to a less complex part of the SIRI model. You write that the full model is needed for accessibility, are you sure about that? Would it be possible to only allow a list of TrainElements instead of the JourneyFormationGroup including Trains and CompoundTrains as well?

@ue71603
Copy link
Contributor Author

ue71603 commented Mar 22, 2023

@herlitze We could mention that one should stick to the SIRI European profile? Technically: How should I restrict it? Or is a textual limitation enough?

@herlitze
Copy link
Contributor

@ue71603 Instead of using siri:JourneyFormationGroup we could use the Type of TrainElements.

@ue71603
Copy link
Contributor Author

ue71603 commented Mar 23, 2023

@ue71603 Instead of using siri:JourneyFormationGroup we could use the Type of TrainElements.

Can't follow you. Perhaps more than a single sentence is needed to explain what you mean.

@herlitze
Copy link
Contributor

In the last of your 3 screenshots you added the element <xs:group ref="siri:JourneyFormationGroup"> to DatedJourneyStructure. Instead of this we could add only TrainElementStructure (the subelement of JourneyFormationGroup) directly:

image

image

@ue71603
Copy link
Contributor Author

ue71603 commented Mar 31, 2023

  • Search for use cases.
  • UC1: present the train as it is (like it is in thedocumentation)
  • UC2: Accessibility vehicle
  • UC3: Accessibility vehicle-stop interaction
    Either we find something that makes it necessary or skip.

@ue71603
Copy link
Contributor Author

ue71603 commented Apr 4, 2023

@herlitze @normanoffel @haeckerbaer @Aurige
We only can remove Trains and TrainElements from the JourneyFormationGroup, when we have the physical TrainElements and Trains always in CompundTrains. However, not all Trains are CompoundTrains.
We could certainly agree that TrainElements and Trains can only be directly added to the JourneyFormationGroup and are always referenced. TrainElements alone are not expressive enough, Especially the order of the carriages is in Trains (as TrainComponents that contain a TrainElement) and not in TrainElements.

The restrictions that you want we could do by refering to the European profile for SIRI, that hopefully puts some restrictions on the way formations are modeled.

Examples: For this we need (in my opinion, pls @haeckerbaer correct me, if necessary) Trains, TrainComponents and TrainElements:
image

Here too:
image

For this we probably would need CompoundTrains:
image
(to express that one can't move from one Train to the other)

@ue71603 ue71603 changed the title first draft of the inclusion of formations Siri formation in full in OJP 2.0 Apr 4, 2023
@herlitze
Copy link
Contributor

@ue71603 you are right, TrainElements only is not enough. Would Traincomponents be sufficient?

image

@herlitze
Copy link
Contributor

@ue71603 I did not find the information of the sectors:
image
Can you give me a hint where to find them?

@ue71603
Copy link
Contributor Author

ue71603 commented Apr 11, 2023

@herlitze I think you need all. See what the structure means.
image

@ue71603
Copy link
Contributor Author

ue71603 commented Apr 11, 2023

@herlitze
DatedJourneyGroup contains JourneyFormationGroup. There all relevant information is stored.

The assignment occurs in the ServiceDeaprtureStructure / where the DepartureFormationAssignment exists. We were a bit lazy there, because we also could use a ArrivalFormationAssignment, but we skipped that for now. So I tried to minimize...

The relevant information about the sectors is part of the DepartureFormationAssignment.
image

And this brought about one mistake. I need an unbounded amount of DepartureFormationAssignments (for each relevant part of the CompoundTrain/Train/TrainElement)

@ue71603
Copy link
Contributor Author

ue71603 commented Apr 14, 2023

A TrainComponent can contain only one TrainElement.
Split in Ham IC from Berlin (has two ServiceJourney at the beginning).
Norman: Could be on ServiceSection to save data?
Matthias: There may cases where the formation changes but no ServiceSection change (e.g. direct carriage).

@trurlurl trurlurl mentioned this pull request Apr 25, 2023
herlitze
herlitze previously approved these changes May 2, 2023
normanoffel
normanoffel previously approved these changes May 12, 2023
skinkie
skinkie previously approved these changes May 24, 2023
@ue71603 ue71603 dismissed stale reviews from skinkie, normanoffel, and herlitze via 84e5b3e May 24, 2023 08:03
@skinkie skinkie merged commit 6f4323d into changes_for_v1.1 May 24, 2023
@skinkie skinkie deleted the formation branch May 24, 2023 09:05
@@ -357,6 +367,9 @@
</xs:annotation>
<xs:sequence>
<xs:group ref="ServiceTimeGroup"/>
<xs:element ref="siri:ArrivalFormationAssignment" minOccurs="0"/>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the cardinality correct? DepartureFormationAssignment needs maxOccurs="unbounded".

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes.. there might be more than one.

@@ -357,6 +367,9 @@
</xs:annotation>
<xs:sequence>
<xs:group ref="ServiceTimeGroup"/>
<xs:element ref="siri:ArrivalFormationAssignment" minOccurs="0"/>
<!-- comes with SIRI 2.1 -->
<!-- TODO the quays should be moved here, too -->
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this comment needed/useful?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think for following up (when updating to SIRI 2.1 it is)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok

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

Successfully merging this pull request may close these issues.

5 participants