Talk:Dev:Semantic Constraints

From wiki.railML.org
Jump to: navigation, search

Discussion March 2020

Initial question: what are semcons and what are no semcons?

Questions
  • Definition
    • Suggestion:
      A semantic constraint is a constraint that cannot be implemented in an XSD.
    • What is obviously a semcon?
    • What is obviously not a semcon?
      • Element semantics and attribute semantics - otherwise every element semantics and attribute semantics would be a semcon (although it may be annoying to put the dead weight under <vehicle>@nettoWeight and the load capacity under <vehicle>@tareWeight).
      • Intentions (about the function of a certain Element/Attribute)
      • Recommendations
      • Best Practices
      • Conclusions from syntactic constraints and/or element/attribute semantics
      • Explanations of semantic constraints
    • Cf. [1][2]
  • Goals
    • Interoperability?
    • Do they apply to the developer or the user?
    • Who can control/guarantee compliance?
  • Design
    • Allow/deny the recycling of discarded numbers?
Creating semantic constraints
  • Suggestion and Discussion
    • either in the railML® Forum
    • or in a railML® working group
      →in this case the working group must present their discussion result in the forum and grant a term for discussion there
  • Enter the semcon with status proposed into the wiki
  • If there are no objections, the semcon becomes accepted after a certain term (6 weeks)
  • In case of objections the working group decides
Design guidelines
  • Use the template with all mandatory arguments
    The template must be extended with an argument to link to the discussion as to grant that the proposal is preceded by a discussion
  • Implement a seperate semcon for every rule
  • Record on Dev:Semantic_Constraints/table
  • numbering according to Dev:Semantic_Constraints/table

Distinctions within element documentation / Structure and usage of an Wiki page

  • Position of XYZ in the XML-Tree:
    • Shall contain the position of the element in the XML tree
    • railML® 2: generated manual by the coordinator straightforward from the schema; no manual additions
    • railML® 3: generated automatically by GWPS; no manual additions
    • Criteria to be fulfilled for successful certification
  • Multiplicity: straightforward from the schema – relevant for certification
  • Semantics: Only the intention. No rules or explanations. Concise remarks like “not to be confused with” are allowed, if they explain the intention – not relevant for certification
  • Attributes: No rules or explanations. Concise remarks like “not to be confused with” are allowed, if they explain the intention – not relevant for certification
  • Syntactic constraints: straightforward from the schema – relevant for certification
  • Semantic constraints: compare above – relevant for certification
  • Best Practice Examples: for instance national rules and peculiarities; Code examples – not relevant for certification
  • Open Issues: open discussions and unsolved problems – not relevant for certification
  • Notes: Anything that does not fit into other paragraphs – not relevant for certification
 
Where can you comment on the semantics in wiki3?
GWPS = Gruschwitz' Wonderful Phython Script