Skip to content

Routing for accessibility, without Scores #273

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

Closed
wants to merge 12 commits into from
9 changes: 2 additions & 7 deletions OJP/OJP_JourneySupport.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -540,7 +540,7 @@
<xs:sequence>
<xs:element name="NoSingleStep" type="xs:boolean" default="false" minOccurs="0">
<xs:annotation>
<xs:documentation>The user is not able to climb one step.</xs:documentation>
<xs:documentation>The user is not able to pass over a single step.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="NoStairs" type="xs:boolean" default="false" minOccurs="0">
Expand All @@ -560,12 +560,7 @@
</xs:element>
<xs:element name="NoRamp" type="xs:boolean" default="false" minOccurs="0">
<xs:annotation>
<xs:documentation>The user is not able to use an ramp.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="NoSight" type="xs:boolean" default="false" minOccurs="0">
<xs:annotation>
<xs:documentation>The user is not able to see.</xs:documentation>
<xs:documentation>The user is not able to use a ramp.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
Expand Down
88 changes: 76 additions & 12 deletions OJP/OJP_Trips.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -119,9 +119,14 @@
</xs:annotation>
<xs:sequence>
<xs:group ref="BaseTripMobilityFilterGroup"/>
<xs:element name="LevelEntrance" type="xs:boolean" default="false" minOccurs="0">
<xs:element name="LevelEntranceOrBoardingAid" type="xs:boolean" default="false" minOccurs="0">
<xs:annotation>
<xs:documentation>The user needs vehicles with level entrance between platform and vehicle, f.e. for wheelchair access.</xs:documentation>
<xs:documentation>The user needs vehicles with level entrance between platform and vehicle, an appropriate ramp, or assistance for boarding or unboarding (for assisted and unassisted wheelchairs, or similar constraints).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="AccessibilityPreference" type="AccessibilityPreferenceEnumeration" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>The user may specify access features to be avoided. The routing algorithm tries to minimise the occurrences of the listed access features, the order of priority is given by the sequence in which they are listed. Unless bestIfMobilityImpaired is chosen as OptimisationMethod, the minimisation is restricted to optimising walking paths in TransferLegs and ContinuousLegs. If bestIfMobilityImpaired is chosen as OptimisationMethod, the algorithm tries to minimise the obstacles by also considering substantially longer Trips.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="BikeTransport" type="xs:boolean" default="false" minOccurs="0">
Expand Down Expand Up @@ -174,23 +179,66 @@
<xs:documentation>the types of algorithm that can be used for planning a journey (fastest, least walking, etc). If multiple optimisation methods are needed, then several requests should be performed in parallel.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="fastest"/>
<xs:enumeration value="minChanges"/>
<xs:enumeration value="leastWalking"/>
<xs:enumeration value="leastCost"/>
<xs:enumeration value="fastest">
<xs:annotation>
<xs:documentation>Shortest duration.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="minChanges">
<xs:annotation>
<xs:documentation>Minimal number of interchanges.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="leastWalking">
<xs:annotation>
<xs:documentation>Shortest walking distance in meters, summed over all legs.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="leastCost">
<xs:annotation>
<xs:documentation>Cheapest fare, taking into account the applicable reductions.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="leastDistance">
<xs:annotation>
<xs:documentation>Least distance in meter. Mostly used for ALTERNATIVE MODE OF OPERATION</xs:documentation>
<xs:documentation>Least distance in meters. Mostly used for ALTERNATIVE MODE OF OPERATION</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="earliestArrival">
<xs:annotation>
<xs:documentation>Earliest possible arrival time respecting the time constraints. (forward search)</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="latestDeparture">
<xs:annotation>
<xs:documentation>Latest departure time for a given arrival time. (backward search)</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="earliestArrivalAndLatestDeparture">
<xs:annotation>
<xs:documentation>Combines earliestArrival and latestDeparture, allowing to compress the departure time. (forward-backward-forward search)</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="bestIfVisuallyImpaired">
<xs:annotation>
<xs:documentation>Optimised for the visually impaired (tactileGuidingStrips, tactileOrAuditorySigns, etc.).</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="bestIfMobilityImpaired">
<xs:annotation>
<xs:documentation>Minimal occurences of obstacles as given by AccessibilityPreferences.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="bestIfAuditorilyImpaired">
<xs:annotation>
<xs:documentation>Optimised for the hearing impaired (visualSigns, visualDisplays, etc.).</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="earliestArrival"/>
<xs:enumeration value="latestDeparture"/>
<xs:enumeration value="earliestArrivalAndLatestDeparture"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="NotViaStructure">
<xs:annotation>
<xs:documentation>NNot-via restrictions for a TRIP, i.e. SCHEDULED STOP POINTs or STOP PLACEs that the TRIP is not allowed to pass through</xs:documentation>
<xs:documentation>Not-via restrictions for a TRIP, i.e. SCHEDULED STOP POINTs or STOP PLACEs that the TRIP is not allowed to pass through</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:choice>
Expand All @@ -201,7 +249,7 @@
</xs:complexType>
<xs:complexType name="NoChangeAtStructure">
<xs:annotation>
<xs:documentation>no-change-at restrictions for a TRIP, i.e. SCHEDULED STOP POINTs or STOP PLACEs at which no TRANSFER is allowed within a TRIP.</xs:documentation>
<xs:documentation>No-change-at restrictions for a TRIP, i.e. SCHEDULED STOP POINTs or STOP PLACEs at which no TRANSFER is allowed within a TRIP.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:choice>
Expand All @@ -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."

</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="levelEntranceOrBoardingAid"/>
<xs:enumeration value="noSingleStep"/>
<xs:enumeration value="noStairs"/>
<xs:enumeration value="noRampUp"/>
<xs:enumeration value="noRamp"/>
<xs:enumeration value="noEscalator"/>
<xs:enumeration value="noTravelator"/>
<xs:enumeration value="noElevator"/>
<xs:enumeration value="tactileGuidingStrips"/>
</xs:restriction>
</xs:simpleType>
<xs:annotation>
<xs:documentation>========================================== TripResponse definitions ==========================================</xs:documentation>
</xs:annotation>
Expand Down