VDVde / OJP

Open API for distributed journey planning. CEN/TS 17118:2017.
https://www.vdv.de/open-journey-planner.aspx
22 stars 12 forks source link

implementing MODES OF OPERATION from FU 44 #379

Closed ue71603 closed 10 months ago

ue71603 commented 1 year ago

image

image

Additionally, The association from NAVIGATION PATH to ACCESS MODE should be removed and replaced with an association between NAVIGATION PATH and PERSONAL MODE.

Maybe: NAVIGATION PATH --> traversable by --> PERSONAL MODE PERSONAL MODE --> suitable for --> NAVIGATION PATH image

Current state of affairs

MODE OJP

List in Transmodel dynamicCarPooling longDistanceCarPooling stationlessVehicleSharing peerToPeerCarSharing taxicab sharedTaxi commercialCarSharing carSharingClub cycleSharing chauffeuredCar taxi

netex_modeOfOperation_support

Modes of Operation: scheduled flexible alternative vehicleRental vehicleSharing vehiclePooling personal other

Enums of SubModesOfOperation:

flexible

        <xsd:enumeration value="flexibleArea"/>
        <xsd:enumeration value="demandResponsive"/>

rental:

        <xsd:enumeration value="vehicleLease"/>

sharing:

        <xsd:enumeration value="peerToPeerCarSharing"/>
        <xsd:enumeration value="vehicleSharing"/>

pooling

        <xsd:enumeration value="appBookedTaxi"/>
        <xsd:enumeration value="sharedTaxi"/>
        <xsd:enumeration value="prebookedTaxi"/>
        <xsd:enumeration value="chaffeuredVehicle"/>
        <xsd:enumeration value="dynamicCarPooling"/>
        <xsd:enumeration value="longDistanceCarPooling"/>

personal

        <xsd:enumeration value="ownCar"/>
        <xsd:enumeration value="privateLift"/>

scheduled

        <xsd:enumeration value="eventBasedService"/>
ue71603 commented 1 year ago

Things we don't want to do are now in: https://github.com/VDVde/OJP/issues/380

ue71603 commented 11 months ago

@trurlurl @herlitze @normanoffel @Aurige : What we need to do next week:

ue71603 commented 11 months ago

MODE_OF_OPERATION.xlsx @skinkie @herlitze @normanoffel @Aurige @sgrossberndt @trurlurl I tried to map MODE OF OPERATION, MODE and all the rest into one consistent picture:

Can you pls check quickly and give me your input on that part?

trurlurl commented 11 months ago

Can you pls check quickly and give me your input on that part?

The plan sounds good to me, as far as I understand it:

ue71603 commented 11 months ago

Can you pls check quickly and give me your input on that part?

The plan sounds good to me, as far as I understand it:

  • TimedLeg would have no xxxModes. From TimedModes, flexibleArea would move to ContinuousModes, I think.
  • TransferLeg would have TransferModes, perhaps complemented with items from ContinuousModes (would car or motorcycle make sense, or would such a motorised transfer be modelled as ContinuousLeg?)
  • ContinuousLeg would have ContinuousModes that includes flexibleArea and items from IndividualModes. And an additional ContinuousModeOfOperation or similar.

Yes, that's about it.

ue71603 commented 11 months ago

@skinkie @Aurige ready to have a look at it from the TM perspective

OJP will implement the following MODE OF OPERATION. The hierarchy is not explicitly modeled. However, always the most specialised MODE OF OPERATION is to be used.

Conventional (ConventionalModesOfOperationEnumeration in TimedLeg)

Personal (PersonalModesOfOperationEnumeration in ContinuousLeg)

Alternative (AlternativeModesOfOperation in ContinuousLeg)

OJP currently uses TransferModesEnumeration. However, given the values and the reason that MODE and TYPE are convoluted. We will use TransferType and

Values:

and I had to create an

IndividalModeEnumeration image

ue71603 commented 11 months ago

MODE_OF_OPERATION.xlsx

ue71603 commented 11 months ago

Updated the Excel. One column was misleading. MODE_OF_OPERATION.xlsx

Aurige commented 11 months ago

@skinkie @Aurige ready to have a look at it from the TM perspective

Looks ok for me (I didn't went through a detailed review of all XSD changes, but it looks fine).

herlitze commented 11 months ago

Updated the Excel. One column was misleading. MODE_OF_OPERATION.xlsx

The table shows the mapping of Transmodel to OJP, correct? I think a table mapping the current OJP modes to the new ones would be helpful. E. g. we added ride-pool-car, car-sharing, cycle-sharing, scooter-sharing, park-ride-car to the individualModes. These are now modelled as ContinuosLeg with Service.IndividualMode=car/cycle/scooter and Service.AlternativeModeOfOperation=sharing/pooling

trurlurl commented 11 months ago

Where is the former distinction between self-drive car, others-drive, park-and-ride made - at least as far as it is necessary to know whether a parking space is needed or not?

ue71603 commented 11 months ago

Where is the former distinction between self-drive car, others-drive, park-and-ride made - at least as far as it is necessary to know whether a parking space is needed or not?

@trurlurl This is in

trurlurl commented 11 months ago

Where is the former distinction between self-drive car, others-drive, park-and-ride made - at least as far as it is necessary to know whether a parking space is needed or not?

@trurlurl This is in

* the xxxModeOfOperation for self-drive others-drive in Service  PersonalModeOfOperation / AlternativeModeOfOperation

* indicating park-and-ride  is in the TransferTypeEnumeration and so it is part of the TransferLeg

* We are currently lacking ParkingFacility in StopServiceStatusGroup/Attribute (part of [Added Attributes to LegBoard, LegAligt und LegIntermediate #406](https://github.com/VDVde/OJP/pull/406) ). II will add it there.

@ue71603 Do you mean by that that self-drive and others-drive are in PersonalModeOfOperation? There is "self" (=self-drive), but otherwise only "own", "other-owned", etc. (nothing indicating a pick-up or drop-off scenario). (BTW: are the ownership relations needed?)

And I don't understand why parkAndRide is on the TransferLeg. I would expect parkAndRide vs. pick-up/drop-off to be labelled on a ContinuousLeg (in PersonalModeOfOperation).

ue71603 commented 11 months ago

@trurlurl

Do you mean by that that self-drive and others-drive are in PersonalModeOfOperation? There is "self" (=self-drive), but otherwise only "own", "other-owned", etc. (nothing indicating a pick-up or drop-off scenario). (BTW: are the ownership relations needed?)

No: other drive etc is always an AlternativeModeOfOperation. PersonalModeOfOperation is always yourself in your vehicle.

And I don't understand why parkAndRide is on the TransferLeg. I would expect parkAndRide vs. pick-up/drop-off to be labelled on a ContinuousLeg (in PersonalModeOfOperation).

The park and ride happens in my opinion:

Other opinions to model this?

herlitze commented 11 months ago

@ue71603 I have the following remarks:

ue71603 commented 11 months ago

@ue71603 I have the following remarks:

  • To what extent must the change also be taken into account for the PtModeFilter in the TripRequest?
  • To what extent does this apply to the ITModeToCover? For example, how is a sharing ride requested?
  • TransferType is not clear to me yet, parkandRide/bikeandRide are for me e.g. no means of transport I can use when transferring
  1. ptModeFilter. You are right. We need an update there as well. Is fixed in this commit here: https://github.com/VDVde/OJP/pull/379/commits/5d4251968a914bb364fbc6aa04f002f67f38c757
  2. ITModeToCover: This includes all PersonalMode currently. So sharing could not be requested. I rebuild ItModeToCover with a Mode/ModeOfOperation combination, then it should work. See commit: https://github.com/VDVde/OJP/pull/379/commits/820156513eb6caa988d38f3cbe5a566df17b313f (examples had to be fixed afterwards, too)
  3. Even when TransferType was not fully added that way by me, I expand now the definitions. Pls check, if this makes sense @herlitze @Aurige @trurlurl Done in this commit: https://github.com/VDVde/OJP/pull/379/commits/b0a669c1c55df3a57f6e148ae878a85db2b7f8df
ue71603 commented 11 months ago

André noted (and I think that Malte also goes in this direction). How do I specify, that I need park and ride. This now can be done `

car
                    <MaxDistance>240</MaxDistance>
                    <MaxDuration>PT20M</MaxDuration>
                    <MinDistance>100</MinDistance>
                    <MinDuration>PT1M</MinDuration>
                    <Speed>150</Speed>
                    <AdditionalTime>PT3M</AdditionalTime>
                </IndividualTransportOptions>

` makes sure that the first leg is car and P&R should be considered. It is not forced as on street parking might be possible. Do you want an additional boolean to force P&R. We could do this by adding an additional value to either personal mode or something else like that.

In the destination `

car
                        <AlternativeModeOfOperation>parkAndRideSharing</AlternativeModeOfOperation>
                    </ItModeAndModeOfOperation>`

would do the trick.

But for what André wanted in the first example `

foot
                </IndividualTransportOptions>
                <IndividualTransportOptions>
                    <ItModeAndModeOfOperation>
                        <PersonalMode>car</PersonalMode>
                        <AlternativeModeOfOperation>taxi</AlternativeModeOfOperation>
                    </ItModeAndModeOfOperation>
                </IndividualTransportOptions>   `

commit: https://github.com/VDVde/OJP/pull/379/commits/1f59c57b4c94b9153fde75b5e68a7ea9a5906e8b

ue71603 commented 11 months ago

The second example André wanted was

ue71603 commented 10 months ago

Mapping OJP 1.0 modes to OJP 2.0 MODE_mapping.xlsx

ue71603 commented 10 months ago

@Aurige privateLift seems ok to the native English speakers. They also want it in AlternativeMode. What do you think? Move it back there? And then it is usage of a different driver that is the main criterion to have something in Alternative and not in Personal.