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

Routing for accessibility, without Scores #273

Closed
wants to merge 12 commits into from

Conversation

trurlurl
Copy link
Contributor

This is an alternative proposal to #254, keeping BaseTripMobilityFilterGroup (almost) unchanged but nevertheless allowing for specifying low level accessibility needs and preferences.

  • AccessibilityPreferences have been introduced to allow for minimizing obstacles like stairs even when there is no route with zero stairs (i.e., when NoStairs=true does not find any result).
  • It is possible to do a search for a user with both visual and mobility impairment.

</xs:enumeration>
<xs:enumeration value="earliestArrival">
<xs:annotation>
<xs:documentation>Earliest arrival time respecting the time constraints.</xs:documentation>
Copy link
Contributor

@skinkie skinkie Dec 15, 2022

Choose a reason for hiding this comment

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

Earliest possible departure time, with the earliest arrival time.

OJP/OJP_Trips.xsd Outdated Show resolved Hide resolved
OJP/OJP_Trips.xsd Outdated Show resolved Hide resolved
OJP/OJP_Trips.xsd Outdated Show resolved Hide resolved
OJP/OJP_Trips.xsd Outdated Show resolved Hide resolved
OJP/OJP_Trips.xsd Outdated Show resolved Hide resolved
OJP/OJP_JourneySupport.xsd Outdated Show resolved Hide resolved
@ue71603
Copy link
Contributor

ue71603 commented Dec 15, 2022

  • Jona: is the router allowed to reduce the product category
  • Additional optimisationMethods ok, but probably not implemented.
  • Restrictions stay.

OJP/OJP_Trips.xsd Outdated Show resolved Hide resolved
OJP/OJP_Trips.xsd Outdated Show resolved Hide resolved
OJP/OJP_Trips.xsd Outdated Show resolved Hide resolved
OJP/OJP_Trips.xsd Outdated Show resolved Hide resolved
@@ -210,6 +258,22 @@
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="AccessibilityPreferenceEnumeration">
<xs:annotation>
<xs:documentation>Allowed values for a AccessibilityPreference.</xs:documentation>
Copy link
Contributor

Choose a reason for hiding this comment

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

only when routing relevant

Copy link
Contributor

Choose a reason for hiding this comment

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

AccessibilityRoutingPreferenceEnumeration

Copy link
Contributor

Choose a reason for hiding this comment

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

Modular interface construction should be mentioned in the documentation in general

Copy link
Contributor

Choose a reason for hiding this comment

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

check if the RepresentationGroup if the other switches are there.
Extend the xs:documentaiton

Copy link
Contributor

Choose a reason for hiding this comment

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

Jona: standard interfaces with non-standard behaviour. The expectation of the backend must be in good detail in the documentation.

Copy link

Choose a reason for hiding this comment

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

I think this is the most crucial point: "The expectation of the backend must be in good detail in the documentation."

Co-authored-by: Stefan de Konink <[email protected]>
@@ -210,6 +258,22 @@
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="AccessibilityPreferenceEnumeration">
<xs:annotation>
<xs:documentation>Allowed values for a AccessibilityPreference.</xs:documentation>
Copy link
Contributor

Choose a reason for hiding this comment

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

AccessibilityRoutingPreferenceEnumeration

@@ -210,6 +258,22 @@
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="AccessibilityPreferenceEnumeration">
<xs:annotation>
<xs:documentation>Allowed values for a AccessibilityPreference.</xs:documentation>
Copy link
Contributor

Choose a reason for hiding this comment

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

Modular interface construction should be mentioned in the documentation in general

@@ -210,6 +258,22 @@
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="AccessibilityPreferenceEnumeration">
<xs:annotation>
<xs:documentation>Allowed values for a AccessibilityPreference.</xs:documentation>
Copy link
Contributor

Choose a reason for hiding this comment

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

check if the RepresentationGroup if the other switches are there.
Extend the xs:documentaiton

@@ -210,6 +258,22 @@
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="AccessibilityPreferenceEnumeration">
<xs:annotation>
<xs:documentation>Allowed values for a AccessibilityPreference.</xs:documentation>
Copy link
Contributor

Choose a reason for hiding this comment

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

Jona: standard interfaces with non-standard behaviour. The expectation of the backend must be in good detail in the documentation.

OJP/OJP_Trips.xsd Outdated Show resolved Hide resolved
OJP/OJP_Trips.xsd Outdated Show resolved Hide resolved
AccessibilityRoutingPreferences for a single comprehenisve OptimisationMethod for accessibility
@trurlurl
Copy link
Contributor Author

AccessibilityRoutingPreferences are now intended to be used by a single OptimisationMethod, bestAccessibility, and allow for optimizing for mobility and other impairments.

I played through a few scenarios, and the current solution now seems satisfactory (to me). Here an example of a complexer scenario:

Example of a visually + mobility impaired passenger
Strongly reduced vision, uses can, taking stairs is tedious but possible

Do a search for bestAccessibility
- noStairs prio 1
- tactileGuidance prio 2
- noSingleSteps prio 3
- noRamp prio 4 -(in order to favor elevator) -> connections may be missed

Do 2nd search for bestAccessiblity - w/o prio 4 / noRamp (to get the routes previously discarded due to the missed connections)

Do a search for fastest

For each route found for fastest, refine (RefinementRequest) each TransferLeg for bestAccessibility
- noStairs prio 1
- tactileGuidance prio 2
- noSingleStep prio 3
- noRamp prio 4

Do a search for leastWalking

For each route found for leastWalking, refine (RefinementRequest) each TransferLeg for bestAccessibility
- noStairs prio 1
- tactileGuidance prio 2
- noSingleStep prio 3
- noRamp prio 4

Quite a number of searches (one might also want to add minChanges) - but it seems possible to get a really useful collection of routes relevant for a particular impairment profile.

@trurlurl
Copy link
Contributor Author

Remark about the serialization of the priorities

The question was raised whether the order in which the priorities are listed is guaranteed to be preserved when serializing the xml. Doing an internet search, I didn't find this to be a known problem. Surprisingly, sequence seems to be more disputed, but should work as well:
https://stackoverflow.com/questions/2911919/is-there-a-way-to-enforce-preserve-order-of-xml-elements-in-an-xml-schema?noredirect=1&lq=1

@trurlurl
Copy link
Contributor Author

trurlurl commented Jan 6, 2023

Failing check is due to the fact that the branch is on my separate cloned repository. I'm going to change that for future pull requests in order to avoid that problem (and others). For this PR we can leave it like that, I guess - ?

@trurlurl trurlurl added the enhancement New feature or request label Jan 6, 2023
@trurlurl trurlurl added this to the v2.0 milestone Jan 6, 2023
@sgrossberndt
Copy link
Contributor

No, this is not possible, otherwise we get ci/lint changes in the changes_for_v1.1 branch. Please create a new branch [accessibility_routing](https://github.com/VDVde/OJP/tree/accessibility_routing) in https://github.com/VDVde/OJP/ and push your branch to it.

@trurlurl
Copy link
Contributor Author

trurlurl commented Jan 8, 2023

Removed documentation label, documentation will be done for the follow-up PR.

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

Successfully merging this pull request may close these issues.

5 participants