Journey Parts
Overview
A JourneyPart is a subsection of a ServiceJourney that differs from the rest of the journey in at least one relevant characteristic — such as a different train number, operator, or on-board facilities. The ServiceJourney as a whole still runs from start to finish; JourneyParts subdivide it into meaningful segments for passenger information or operational purposes.
When to use: When a ServiceJourney changes its train number, operator, or on-board service (e.g. bistro available only on part of the route).
graph LR
Bern -->|"IC 703 — bistro open"| Zürich
Zürich -->|"IC 703 — no bistro"| StGallen["St. Gallen"]
Bern -->|"ServiceJourney IC 703"| StGallen
Mapping between HRDF and NeTEx
| HRDF | NeTEx RG1 | NeTEx RG2 | Use Case |
|---|---|---|---|
[attribut] per Teilstrecke |
JourneyPart |
JourneyPart |
Change of train number, operator, or on-board facilities |
Use Cases in the Swiss Profile
1. Change of on-board facilities (PurposeOfJourneyPartition:FacilityChange)
When to use: When a service (e.g. bistro, wifi) is only available on part of the route.
In the example IC 703 Bern – St. Gallen, the bistro is open between Bern and Zürich (05:29–06:28) and again between Zürich and Wil SG (06:57–07:52), but not on the full journey.
<ServiceJourney id="ch:1:ServiceJourney:703" version="1">
<!-- ... passingTimes ... -->
<parts>
<JourneyPart id="ch:1:JourneyPart:703-bistro-1" version="1">
<FromStopPointRef ref="ch:1:sloid:7000:4:7" version="1"/>
<ToStopPointRef ref="ch:1:sloid:218:7" version="1"/>
<StartTime>05:29:00</StartTime>
<StartTimeDayOffset>0</StartTimeDayOffset>
<EndTime>06:28:00</EndTime>
<EndTimeDayOffset>0</EndTimeDayOffset>
<PurposeOfJourneyPartitionRef ref="ch:1:PurposeOfJourneyPartition:FacilityChange" version="1"/>
<facilities>
<ServiceFacilitySetRef ref="ch:1:ServiceFacilitySet:bistro-open" version="1"/>
</facilities>
</JourneyPart>
<JourneyPart id="ch:1:JourneyPart:703-bistro-2" version="1">
<FromStopPointRef ref="ch:1:sloid:3000:501:33" version="1"/>
<ToStopPointRef ref="ch:1:sloid:6302:1" version="1"/>
<StartTime>06:57:00</StartTime>
<StartTimeDayOffset>0</StartTimeDayOffset>
<EndTime>07:52:00</EndTime>
<EndTimeDayOffset>0</EndTimeDayOffset>
<PurposeOfJourneyPartitionRef ref="ch:1:PurposeOfJourneyPartition:FacilityChange" version="1"/>
<facilities>
<ServiceFacilitySetRef ref="ch:1:ServiceFacilitySet:bistro-open" version="1"/>
</facilities>
</JourneyPart>
</parts>
</ServiceJourney>
2. Change of train number — NOT USED in the Swiss profile
Status: This use case is intentionally not implemented via JourneyPart in the Swiss profile.
Although passenger displays may show a train number change as if it were a single continuous journey,
in the underlying data this is always modeled as two separate ServiceJourneys linked via a
ServiceJourneyInterchange (suppressed in passenger-facing presentation). See
uc02 Joining and splitting.
When to use: When a train operates under different train numbers on different sections of the same ServiceJourney.
3. Splitting and Joining
JourneyPart together with CoupledJourneycould be used for a different modeling of joining and splitting (see relevant use case.
However, we currently won’t do that.
4. Integrating data from different sources to have something to load into a trip planner in international travel
A ServiceJourney may exist in the Swiss system only up to the first commerical stop abroad and completly but with less information in the Austrian system. To make sure that real-time data is easily applied the aggregated NeTEx timetable may still wish to keep the original delivered ServiceJourney. The relevant parts are then also modeled with JourneyPart and CoupledJourney. We won’t do this either. But we study this for some international projects we have on aggregation of timetables.
Key Elements
| Element | Usage | Description |
|---|---|---|
FromStopPointRef |
mandatory | ScheduledStopPoint where the part begins |
ToStopPointRef |
mandatory | ScheduledStopPoint where the part ends |
StartTime / EndTime |
mandatory | Time bounds of the part |
PurposeOfJourneyPartitionRef |
expected | Reason for the partition (e.g. FacilityChange, TrainNumberChange) |
TrainNumberRef |
optional | Train number valid for this part |
facilities |
optional | ServiceFacilitySet valid for this part only |
JourneyPartCoupleRef |
optional | Links to a coupled section (Flügelzug) — not used in Swiss profile |
Usage Notes
JourneyParts are nested directly within theServiceJourneyunder<parts>.- A
JourneyPartalways references the sameScheduledStopPoints as the parentServiceJourney— it cannot introduce new stops. ServiceFacilitySetdefined on aJourneyPartoverrides the one on theServiceJourneyfor that section.JourneyPartCoupleis not used in the Swiss profile for splitting and joining — useServiceJourneyInterchangeinstead. See uc02 Joining and splitting.JourneyPartmay become relevant for train composition (Wagenreihung) data in a future version of the profile. See uc15 Formations.