|
|
(3 intermediate revisions by 2 users not shown) |
Line 11: |
Line 11: |
| {{semcon|When calculating which {{TT:Tag|operationalTrainVariant}} of an {{TT:Tag|operationalTrain}} is valid on a particular day always a maximum of one '''active''' {{TT:Tag|operationalTrainVariant}} shall be the result. If the result is more than one {{TT:Tag|operationalTrainVariant}}, all except one shall be marked as {{TT:Tag|isCancelled}} or {{TT:Tag|isOnRequest}}. Please see the invalid code below.|status=approved|proposed=2023-01-12|approved=2023-04-06|id=TT:002}} | | {{semcon|When calculating which {{TT:Tag|operationalTrainVariant}} of an {{TT:Tag|operationalTrain}} is valid on a particular day always a maximum of one '''active''' {{TT:Tag|operationalTrainVariant}} shall be the result. If the result is more than one {{TT:Tag|operationalTrainVariant}}, all except one shall be marked as {{TT:Tag|isCancelled}} or {{TT:Tag|isOnRequest}}. Please see the invalid code below.|status=approved|proposed=2023-01-12|approved=2023-04-06|id=TT:002}} |
|
| |
|
| Below is an example of the code violating the semantic constraint TT:002. Interpretation of the code given below results with a conflict, because both {{TT:Tag|operationalTrainVariant}}s "ov-1" and "ov-2" run on Monday 11:52:00 from "tk-2" of station Arnau.
| | =={{examples}}== |
|
| |
|
| How to solve this issue?
| | === Violation and fixes of semantic constraint TT:002 === |
| * adding e.g. {{@|offset|TT:operationalTrainVariant}}="PT1H" will do, because then on Monday there is one train at 11:52:00 and the second one at 12:52:00. Both trains will run on Monday.
| | |
| * cancelling one the trains by {{TT:Tag|isCancelled}}. Then again there is one train at 11:52:00, the second one is cancelled. As a result only one train will go on Monday.
| | ==== Violation ==== |
| * providing a child {{TT:Tag|isOnRequest}} to "ov-1" or "ov-2" would resolve a conflict meaning that one of the trains is not cancelled but will not run until further command of dispatcher is given. However, if this command is given, then a new timetable should be produced with no conflicts in it, i.e. no two trains departing from the same track to the same station at the same time. As a result still only one train will go on Monday within this timetable.
| | |
| | Below is an example of the code violating the semantic constraint TT:002. Interpretation of the code given below results in a conflict, because both {{TT:Tag|operationalTrainVariant}}s "ov-1" and "ov-2" run on Monday. |
|
| |
|
| {{TT:Tag|operationalTrain}}:
| |
| {{scrollbox| | | {{scrollbox| |
| <syntaxhighlight lang=xml line> | | <syntaxhighlight lang=xml line> |
Line 32: |
Line 32: |
| </operationalTrainSection> | | </operationalTrainSection> |
| </operationalTrainVariant> | | </operationalTrainVariant> |
| </operationalTrain>
| | |
| <operationalTrain id="ot-2">
| |
| <operationalTrainVariant id="ov-2" itineraryRef="it-1" validityRef="va-2"> | | <operationalTrainVariant id="ov-2" itineraryRef="it-1" validityRef="va-2"> |
| <identifiers> | | <identifiers> |
Line 48: |
Line 47: |
| |height=500px}} | | |height=500px}} |
|
| |
|
| {{TT:Tag|itinerary}}: | | |
| | {{TT:Tag|validity}}: |
|
| |
|
| {{scrollbox| | | {{scrollbox| |
| <syntaxhighlight lang=xml> | | <syntaxhighlight lang=xml> |
| <itinerary id="it-1"> | | <validity id="va-2"> |
| <range baseItineraryRef="bi-1" start="bp-1" end="bp-2" offset="-PT10M"/>
| | <operatingDayValidity timetableScenarioRef="ts01" pattern="1111100"/> |
| <range baseItineraryRef="bi-3" start="bp-5" end="bp-7" offset="-PT10M"/> | | </validity> |
| </itinerary> | |
| </syntaxhighlight> | | </syntaxhighlight> |
| |height=150px}} | | |height=150px}} |
|
| |
|
| {{TT:Tag|baseItinerary}}:
| |
|
| |
|
| | How to solve this issue? Setting {{@|offset|TT:operationalTrainVariant}} of whatever length to e.g. "os-2" does not fix the conflict as it arises because of 2 or more {{TT:Tag|operationalTrainVariant}}s referring to the same {{TT:Tag|validity}}. |
| | |
| | ==== Fix by cancelling ==== |
| | |
| | Invalid code above can be fixed by cancelling one the trains by {{TT:Tag|isCancelled}}. |
| {{scrollbox| | | {{scrollbox| |
| <syntaxhighlight lang=xml> | | <syntaxhighlight lang=xml line> |
| <baseItinerary id="bi-1"> | | <operationalTrain id="ot-1"> |
| <baseItineraryPoint id="bp-1" locationRef="op-1"> | | <operationalTrainVariant id="ov-1" itineraryRef="it-1" validityRef="va-2"> |
| <times scope="commercial">
| | <identifiers> |
| <departure time="11:52:00"/>
| | <identifier number="OT1066" type="OperationalTrainNumber"/> |
| </times> | | </identifiers> |
| <times scope="operational">
| | <operationalTrainSection> |
| <departure time="11:52:30"/> | | <operationalTrainSectionPart id="os-1"> |
| </times>
| | <formationInformation formationRef="fm-1"/> |
| <followupSections>
| | </operationalTrainSectionPart> |
| <followupSection>
| | </operationalTrainSection> |
| <minimalTime runTime="PT4M"/>
| | </operationalTrainVariant> |
| <reserves>
| | |
| <reserve reserve="PT1M" type="qualityByRailwayUndertaking">
| | <operationalTrainVariant id="ov-2" itineraryRef="it-1" validityRef="va-2"> |
| <rule>
| | <identifiers> |
| <timeBasedRule supplementInPercent="25"/>
| | <identifier number="OT1067" type="OperationalTrainNumber"/> |
| </rule>
| | </identifiers> |
| </reserve>
| | <isCancelled/> |
| <reserve reserve="PT1M" type="trackworkByInfrastructureManager"/>
| | <operationalTrainSection> |
| </reserves>
| | <operationalTrainSectionPart id="os-2"> |
| </followupSection>
| | <formationInformation formationRef="fm-1"/> |
| </followupSections> | | </operationalTrainSectionPart> |
| <trackRef ref="tk-2"/> | | </operationalTrainSection> |
| <stop>
| | </operationalTrainVariant> |
| <platformEdgeRefs> | | </operationalTrain> |
| <platformEdgeRef ref="pe-3"/>
| |
| </platformEdgeRefs>
| |
| <stoppingPlaceRef ref="sp-3"/>
| |
| <isCommercial/>
| |
| </stop>
| |
| </baseItineraryPoint>
| |
| <baseItineraryPoint id="bp-2" locationRef="op-3">
| |
| <times scope="commercial">
| |
| <arrival time="11:59:00"/>
| |
| </times>
| |
| <times scope="operational">
| |
| <arrival time="11:58:30"/>
| |
| </times>
| |
| <trackRef ref="tk-5"/>
| |
| <stop>
| |
| <platformEdgeRefs>
| |
| <platformEdgeRef ref="pe-15"/> | |
| </platformEdgeRefs>
| |
| <stoppingPlaceRef ref="sp-7"/>
| |
| <isCommercial/> | |
| </stop> | |
| </baseItineraryPoint> | |
| </baseItinerary>
| |
| <baseItinerary id="bi-3">
| |
| <baseItineraryPoint id="bp-5" locationRef="op-3">
| |
| <times scope="commercial"> | |
| <departure time="12:01:00"/> | |
| </times>
| |
| <times scope="operational">
| |
| <departure time="12:01:30"/>
| |
| </times>
| |
| <followupSections>
| |
| <followupSection>
| |
| <minimalTime runTime="PT2M15S"/>
| |
| <reserves>
| |
| <reserve reserve="PT45S" type="qualityByRailwayUndertaking">
| |
| <rule>
| |
| <timeBasedRule supplementInPercent="25"/>
| |
| </rule>
| |
| </reserve>
| |
| </reserves>
| |
| </followupSection>
| |
| </followupSections> | |
| <trackRef ref="tk-5"/> | |
| <stop> | |
| <platformEdgeRefs> | |
| <platformEdgeRef ref="pe-15"/>
| |
| </platformEdgeRefs>
| |
| <stoppingPlaceRef ref="sp-7"/>
| |
| <isCommercial/>
| |
| </stop>
| |
| </baseItineraryPoint>
| |
| <baseItineraryPoint id="bp-6" locationRef="op-4">
| |
| <times scope="commercial">
| |
| <arrival time="12:05:00"/>
| |
| <departure time="12:05:00"/>
| |
| </times>
| |
| <times scope="operational">
| |
| <arrival time="12:04:30"/>
| |
| <departure time="12:05:30"/>
| |
| </times>
| |
| <followupSections>
| |
| <followupSection>
| |
| <minimalTime runTime="PT7M30S"/>
| |
| <reserves>
| |
| <reserve reserve="PT2M30S" type="qualityByRailwayUndertaking">
| |
| <rule>
| |
| <timeBasedRule supplementInPercent="25"/>
| |
| </rule>
| |
| </reserve>
| |
| </reserves> | |
| </followupSection>
| |
| </followupSections>
| |
| <trackRef ref="tk-5"/>
| |
| <stop minDwellTime="PT1M30S">
| |
| <platformEdgeRefs>
| |
| <platformEdgeRef ref="pe-8" onOff="on"/>
| |
| <platformEdgeRef ref="pe-9" onOff="off"/>
| |
| </platformEdgeRefs>
| |
| <stoppingPlaceRef ref="sp-6"/>
| |
| <isCommercial onRequest="true" onOff="both"/>
| |
| </stop>
| |
| </baseItineraryPoint>
| |
| <baseItineraryPoint id="bp-7" locationRef="op-5">
| |
| <times scope="commercial">
| |
| <arrival time="12:16:00"/>
| |
| </times>
| |
| <times scope="operational">
| |
| <arrival time="12:15:30"/>
| |
| </times>
| |
| <stop>
| |
| <isCommercial/> | |
| </stop> | |
| </baseItineraryPoint> | |
| </baseItinerary> | |
| </syntaxhighlight> | | </syntaxhighlight> |
| |height=500px}} | | |height=500px}} |
|
| |
|
| {{TT:Tag|validity}}: | | ==== Fix by request of dispatcher ==== |
| | |
| | Invalid code above can also be fixed by providing a child {{TT:Tag|isOnRequest}} to "ov-1" or "ov-2" meaning that one of the trains is not cancelled but will not run until further command of dispatcher is given. However, if this command is given, then a new timetable should be produced with no conflicts in it, i.e. no two trains departing from the same track to the same station at the same time. As a result still only one train will go on Monday within this timetable. |
|
| |
|
| {{scrollbox| | | {{scrollbox| |
| <syntaxhighlight lang=xml> | | <syntaxhighlight lang=xml line> |
| <validity id="va-2"> | | <operationalTrain id="ot-1"> |
| <operatingDayValidity timetableScenarioRef="ts01" pattern="1111100"/>
| | <operationalTrainVariant id="ov-1" itineraryRef="it-1" validityRef="va-2"> |
| </validity>
| | <identifiers> |
| </syntaxhighlight> | | <identifier number="OT1066" type="OperationalTrainNumber"/> |
| |height=150px}}
| | </identifiers> |
| | <operationalTrainSection> |
| | <operationalTrainSectionPart id="os-1"> |
| | <formationInformation formationRef="fm-1"/> |
| | </operationalTrainSectionPart> |
| | </operationalTrainSection> |
| | </operationalTrainVariant> |
|
| |
|
| {{IS:Tag|operationalPoint}}:
| | <operationalTrainVariant id="ov-2" itineraryRef="it-1" validityRef="va-2"> |
| | | <identifiers> |
| {{scrollbox|
| | <identifier number="OT1067" type="OperationalTrainNumber"/> |
| <syntaxhighlight lang=xml>
| | </identifiers> |
| <operationalPoint id="op-1"> | | <isOnRequest/> |
| <name language="de" name="Arnau"/>
| | <operationalTrainSection> |
| <designator entry="OAR" register="_RML"/> | | <operationalTrainSectionPart id="os-2"> |
| <opEquipment> | | <formationInformation formationRef="fm-1"/> |
| <ownsInfrastructureElement ref="pf-1"/>
| | </operationalTrainSectionPart> |
| <ownsInfrastructureElement ref="sp-1"/>
| | </operationalTrainSection> |
| <ownsInfrastructureElement ref="sp-2"/> | | </operationalTrainVariant> |
| <ownsInfrastructureElement ref="sp-3"/>
| | </operationalTrain> |
| <ownsInfrastructureElement ref="sp-4"/> | |
| <ownsInfrastructureElement ref="tk-1"/>
| |
| <ownsInfrastructureElement ref="tk-2"/>
| |
| </opEquipment>
| |
| </operationalPoint>
| |
| </syntaxhighlight> | | </syntaxhighlight> |
| |height=150px}} | | |height=500px}} |
|
| |
|
| =={{examples}}==
| |
| {{importComment}} | | {{importComment}} |
| =={{Additional Information}}== | | =={{Additional Information}}== |
| ==={{Notes}}=== | | ==={{Notes}}=== |
| An {{TT:Tag|operationalTrainVariant}} is specific for a certain day. It shall not be used to describe different alternative train paths of a microscopic infrastructure model <ref>[[IS:topology]]</ref> a train may go on a certain day, e.g. use track A or B to get from OP 1 to OP 2. | | An {{TT:Tag|operationalTrainVariant}} is specific for a certain day. It shall not be used to describe different alternative train paths of a microscopic infrastructure model <ref>[[IS:topology#Microscopic_Topology|IS:topology]]</ref> a train may go on a certain day, e.g. use track A or B to get from OP 1 to OP 2. |
| | |
| ==={{Open issues}}=== | | ==={{Open issues}}=== |
| | |
| | |
| | == References == |
| | <references /> |