What are semantic constraints in railML?
In railML.org semantic constraints refer to important rules applied to the XML schemas, which are not definable in the XSD. They are solely expressed by words, semantically. Semantic constraints are as important as XSD constraints, as contempt can lead to different interpretations, which could ultimately lead to different dialects within railML. railML.org want to avoid this.
An example for such a semantic constraint in railML applies to the attributes @startDate and @endDate of the element <operatingPeriod>:
Any starting time stamp (as it may result e.g. from a combination of startDate and startTime) shall be lower or equal any ending time stamp (e.g. endDate) if both are given. It must not overlap with other validity periods.
Before being approved and described on the corresponding element subpage in the railML Wiki, all semantic constraints shall be discussed thoroughly in the railML discussion board and the subschema working group. In order to define and represent all elements with semantic constraints clearly, the railML Wiki could be transferred into a MediaWiki with the Semantic MediaWiki extension. railML.org was inspired by this through the UIC OntoRail project and its corresponding wiki site.
In addition, a machine-readable definition of the semantic restrictions (e.g. via Schematron [ISO/IEC 19757-3:2016]) would be conceivable. We are grateful for feedback from the community.