Template:Switch/Dev:SemanticConstraints: Difference between revisions
Jump to navigation
Jump to search
[checked revision] | [checked revision] |
No edit summary |
No edit summary |
||
(19 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{#switch:{{{1}}} | <includeonly>{{#switch:{{{1}}} | ||
|IS:001={{DefSemcon|{{{1}}}|{{{2}}}|text=Starting time stamp (e.g. "from") shall be lower or equal any ending time stamp (e.g. "to") if both are given. Must not overlap with other validity periods within the same enclosing element.|status=approved|proposed=2024-01-15|approved=2024-04-15}} | |IS:001={{DefSemcon|{{{1}}}|{{{2}}}|text=Starting time stamp (e.g. "from") shall be lower or equal any ending time stamp (e.g. "to") if both are given. Must not overlap with other validity periods within the same enclosing element.|status=approved|proposed=2024-01-15|approved=2024-04-15}} | ||
|IS:005={{DefSemcon|{{{1}}}|{{{2}}}|text={{@|height|IS:signalConstruction}} and {{@|positionAtTrack|IS:signalConstruction}} should not be used with {{@|type|IS:signalConstruction}}=virtual.|status=approved|proposed=2021-02-26|forum=https://www.railml.org/forum/index.php?t=msg&th=975&start=0&|approved=2025-02-03}} | |IS:005={{DefSemcon|{{{1}}}|{{{2}}}|text={{@|height|IS:signalConstruction}} and {{@|positionAtTrack|IS:signalConstruction}} should not be used with {{@|type|IS:signalConstruction}}=virtual.|status=approved|proposed=2021-02-26|forum=https://www.railml.org/forum/index.php?t=msg&th=975&start=0&|approved=2025-02-03}} | ||
|IS:007={{DefSemcon|{{{1}}}|{{{2}}}|text=If the attribute {{@|isOpenEnd|IS:border}}="true" then the value of {{@|type|IS:border}} shall be set to "area".|status=proposed|proposed=2021-02-26|forum=https://www.railml.org/forum/index.php?t=msg&th=955&start=0&}} | |IS:007={{DefSemcon|{{{1}}}|{{{2}}}|text=If the attribute {{@|isOpenEnd|IS:border}}="true" then the value of {{@|type|IS:border}} shall be set to "area".|status=proposed|proposed=2021-02-26|forum=https://www.railml.org/forum/index.php?t=msg&th=955&start=0&}} | ||
|IS:008={{DefSemcon|{{{1}}}|{{{2}}}|text=Aggregation of net elements should follow the tree data structure. See figure below. This means that no two (mesoscopic) net elements can aggregate same (microscopic) net element. In other words, (microscopic) net element can be aggregated by at most one (mesoscopic) net element.|status=proposed|proposed=2021-02-26|forum=https://www.railml.org/forum/index.php?t=msg&th=948&start=0&}} | |||
|IS:009={{DefSemcon|{{{1}}}|{{{2}}}|text=Linear (geometric) coordinates (explicit or implicit, e.g. calculated as a sum of the coordinate of beginning and the length of the net element) of the same place represented at different levels of aggregation should have the same value. In the figure below (linear) coordinate the coordinate of e.g. end of ne1 should be same as one of ne1.2.|status=proposed|proposed=2021-02-26|forum=https://www.railml.org/forum/index.php?t=msg&th=948&start=0&}} | |||
|IS:010={{DefSemcon|{{{1}}}|{{{2}}}|text=Difference of linear coordinates if the beginning and end of net elements, represented by intrinsic coordinates 0 and 1 correspondingly, should equal the the @length of net element if all are present in the data.|status=proposed|proposed=2021-02-26|forum={{ticket|xxx}}}} | |||
|IS:011={{DefSemcon|{{{1}}}|{{{2}}}|text=Aggregation must not happen within the same level of detail. In the figure below, element 1.1 must not aggregate element 1.2. This means that aggregating and aggregated net elements must not be referred from the same <level>|status=proposed|proposed=2024-02-29|forum=https://www.railml.org/forum/index.php?t=msg&th=948&start=0&}} | |||
|IS:012={{DefSemcon|{{{1}}}|{{{2}}}|text=@pos should have only positive values because its a distance, thus -1 is not a valid value – Compare {{ticket|567}}|status=proposed|proposed=2024-03-04|forum={{ticket|xxx}}}} | |||
|IS:014={{DefSemcon|{{{1}}}|{{{2}}}|text=@startMeasure and @endMeasure are start and end values of a railway <IS:line> associated with <RTM:linearPositioningSystem> not max and min values of a current file with e.g. line section|status=proposed|proposed=2024-04-08|forum=https://www.railml.org/forum/index.php?t=msg&th=946&start=0&}} | |||
|IS:015={{DefSemcon|{{{1}}}|{{{2}}}|text=There must be no "inverse" net relations in the topology, i.e. if "nr1 elemeneA ne1", "nr1 elementB ne2" and "nr2 elemeneA ne2", "nr2 elementB ne1" then topology is not valid. See invalid code below – Compare {{ticket|xxx}}|status=proposed|proposed=2021-04-22|forum={{ticket|xxx}}}} | |||
|IS:017={{DefSemcon|{{{1}}}|{{{2}}}|text=Users can refer to the train protection system using the attribute {{@|trainProtectionSystem|IS:trainProtectionElement}} that shall link to the {{site|1=https://development.railml.org/railml/shared/-/tree/master/codelists|2=codelist}} TrainProtectionSystems.xml, section trainProtectionSystemsAtTrack. Only if this list does not contain the specific train protection system to be modelled, it shall be described in its functionality using attributes {{@|medium|IS:trainProtectionElement}} and {{@|monitoring|IS:trainProtectionElement}}.|status=approved|proposed=2009-10-17|approved=2009-10-17|forum=https://www.railml.org/forum/index.php?t=msg&goto=3600&#msg_3600}} | |||
|IS:018={{DefSemcon|{{{1}}}|{{{2}}}|text=Any functional infrastructure element that belongs to an {{IS:Tag|operationalPoint}} may be listed as its equipment. This may be done by adding it to a specific container, such as {{GEN:Tag|ownsPlatform}}, {{GEN:Tag|ownsTrack}} and {{GEN:Tag|ownsSignal}} or it may be added to the generic container {{GEN:Tag|ownsInfrastructureElement}}. Any such added infrastructure element must be added to the most specific container available. No element shall be part of two such containers. If no specific container for the functional infrastructure element exists, it shall be listed in the generic container. Example: a {{IS:Tag|signalIS}} must not be added to {{GEN:Tag|ownsInfrastructureElement}}. It shall be added to {{GEN:Tag|ownsSignal}}. As there is no container for levelCrossings a {{IS:Tag|levelCrossingIS}} belonging to an {{IS:Tag|operationalPoint}} shall be added to {{GEN:Tag|ownsInfrastructureElement}}.|status=proposed|proposed=2024-08-26|id=IS:018|forum=https://www.railml.org/forum/index.php?t=msg&goto=3286}} | |||
|IS:019={{DefSemcon|{{{1}}}|{{{2}}}|text=When calculating which <infrastructureState> of an <infrastructure> is valid on a particular time always a maximum of one active <infrastructureState> shall be the result.|status=proposed|proposed=2024-09-03|forum=https://www.railml.org/forum/index.php?t=msg&th=1033&start=0&}} | |||
|IS:021={{DefSemcon|{{{1}}}|{{{2}}}|text=The element {{IS:Tag|baliseGroup}} shall always use the railML option {{RTM:Tag|spotLocation}} to define the balise group location on the topology.|status=proposed|proposed=2025-04-30|id=IS:021|forum=https://www.railml.org/forum/index.php?t=msg&th=980&start=0&}} | |||
|IS:022={{DefSemcon|{{{1}}}|{{{2}}}|text=The element {{IS:Tag|balise}} shall always use the railML option {{RTM:Tag|spotLocation}} to define the balise location on the topology.|status=proposed|proposed=2025-04-30|id=IS:022|forum=https://www.railml.org/forum/index.php?t=msg&th=980&start=0&}} | |||
|TT:001={{DefSemcon|{{{1}}}|{{{2}}}|text=The {{Attr|next}} attribute shall reference an {{TT:Tag|operationalTrainSectionPart}} that is not referenced by any other {{Attr|next}}-reference. In other words: Within the chain of {{TT:Tag|operationalTrainSectionPart}}s linked by the attribute {{attr|next}}, there can be no element that has more than one predecessor. The {{@|next}} reference must establish a one to one relationship between two {{TT:Tag|operationalTrainSectionPart}}s. |status=approved|proposed=2022-09-15|approved=2022-10-13|id=TT:001}} | |||
|TT:002={{DefSemcon|{{{1}}}|{{{2}}}|text=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}} | |||
|TT:003={{DefSemcon|{{{1}}}|{{{2}}}|text=When calculating which {{TT:Tag|commercialTrainVariant}} of a {{TT:Tag|commercialTrain}} is valid on a particular day always a maximum of one '''active''' {{TT:Tag|commercialTrainVariant}} shall be the result. If the result is more than one {{TT:Tag|commercialTrainVariant}}, all except one shall be marked as {{TT:Tag|isCancelled}} or {{TT:Tag|isOnRequest}}.|status=approved|proposed=2023-01-12|approved=2023-04-06}} | |||
|TT:004={{DefSemcon|{{{1}}}|{{{2}}}|text=The itinerary sections of an {{TT:Tag|operationalTrainVariant}}, defined by the {{TT:Tag|operationalTrainSection}}s and their respective {{TT:Tag|range}}s, that are not {{TT:Tag|isCancelled}} and not marked as {{TT:Tag|isOnRequest}}, must be pairwise disjoint, except for their respective first and last {{TT:Tag|baseItineraryPoint}}s.|status=approved|proposed=2023-01-12|approved=2023-03-09|id=TT:004|forum=https://www.railml.org/forum/index.php?t=msg&th=894&start=0&}} | |||
|TT:005={{DefSemcon|{{{1}}}|{{{2}}}|text=The first(last) {{TT:Tag|baseItineraryPoint}} of each {{TT:Tag|operationalTrainSection}} within an {{TT:Tag|operationalTrainVariant}} must either be the referenced {{TT:Tag|itinerary}}'s first(last) {{TT:Tag|baseItineraryPoint}}, or coincide with another section's last(first) {{TT:Tag|baseItineraryPoint}}.|status=approved|proposed=2023-01-12|approved=2023-03-09|id=TT:005|forum=https://www.railml.org/forum/index.php?t=msg&th=894&start=0&}} | |||
|TT:006={{DefSemcon|{{{1}}}|{{{2}}}|text=The itinerary sections of a {{TT:Tag|commercialTrainVariant}}, defined by the {{TT:Tag|commercialTrainSection}}s and their respective {{TT:Tag|range}}s, that are not {{TT:Tag|isCancelled}} and not marked as {{TT:Tag|isOnRequest}}, must be pairwise disjoint, except for their respective first and last {{TT:Tag|baseItineraryPoint}}s.|status=approved|proposed=2023-01-12|approved=2023-03-09|id=TT:006|forum=https://www.railml.org/forum/index.php?t=msg&th=894&start=0&}} | |||
|TT:007={{DefSemcon|{{{1}}}|{{{2}}}|text=The first(last) {{TT:Tag|baseItineraryPoint}} of each {{TT:Tag|commercialTrainSection}} within a {{TT:Tag|commercialTrainVariant}} must either be the referenced {{TT:Tag|itinerary}}'s first(last) {{TT:Tag|baseItineraryPoint}}, or coincide with another section's last(first) {{TT:Tag|baseItineraryPoint}}.|status=approved|proposed=2023-01-12|approved=2023-03-09|id=TT:007|forum=https://www.railml.org/forum/index.php?t=msg&th=894&start=0&}} | |||
|TT:008={{DefSemcon|{{{1}}}|{{{2}}}|text=No two attributes //{{TT:Tag|times}}/{{@|scope}} of the same enclosing {{TT:Tag|baseItineraryPoint}} element shall have the same value.|status=approved|approved=2025-04-07|proposed=2024-11-21|id=TT:008|forum=https://www.railml.org/forum/index.php?t=msg&th=1013&start=0&}} | |||
|#default={{fixme}} | |#default={{fixme}} | ||
}} | }} | ||
<noinclude>{{interwiki}}[[category:Template]]</noinclude> | </includeonly><noinclude> | ||
== Usage == | |||
This template is a central place for definitions of semantic constraints. | |||
To define a new semantic constraint, add a line using [[Template:DefSemcon]]. The workflow is explained [[Template:DefSemcon#Workflow|'''here''']]. | |||
{{interwiki}}[[category:Template]]</noinclude> |
Latest revision as of 16:38, 19 May 2025
Usage
This template is a central place for definitions of semantic constraints.
To define a new semantic constraint, add a line using Template:DefSemcon. The workflow is explained here.