Skip to end of metadata
Go to start of metadata

This page provides access to downloadable PDF copies of the current and previous versions of this document.

The most recent version should also be available via a link on the front page of the document.


Summary of Version Updates

Version 1.3

A new version was published in mid 2017 in response to a range of implementation feedback, and to support the publication of the Machine Readable Concept Model (MRCM) in the 20170731 international release. In particular, a refinement can now be applied to any subexpression constraint, the parsing of dottedExpressionConstraints is simplified, a subexpression constraint can now be used in place of an attribute name, and the rule conceptReference has been renamed to eclConceptReference to avoid overlap with the corresponding rule from SNOMED CT Compositional Grammar (when used together in the Template Syntax). These changes were reflected in the updated brief syntax ABNF rules:

refinedExpressionConstraint  = subExpressionConstraint ws ":" ws eclRefinement

simpleExpressionConstraint = [constraintOperator ws] [memberOf ws] eclFocusConcept

dottedExpressionConstraint = subExpressionConstraint 1*(ws dottedExpressionAttribute)

dottedExpressionAttribute = dot ws eclAttributeName

eclFocusConcept = eclConceptReference / wildCard

eclConceptReference = conceptId [ws "|" ws term ws "|"]

eclAttribute   = ["[" cardinality "]" ws] [reverseFlag ws] eclAttributeName ws (expressionComparisonOperator ws subExpressionConstraint / numericComparisonOperator ws "#" numericValue / stringComparisonOperator ws QM stringValue QM)

attributeOperator = childOf / descendantOrSelfOf / descendantOf

eclAttributeName  =  subExpressionConstraint

Version 1.2

A new version, published in early 2017, which included an additional feature requested by implementers - namely the ability for the 'memberOf' function to be applied to a set of reference set concepts defined using an expression constraint.This change was reflected in the brief syntax ABNF rule:

subExpressionConstraint  = [constraintOperator ws] [memberOf ws] (eclFocusConcept /  "(" ws expressionConstraint ws ")")

Version 1.1.1

A minor update, published in 2016, which corrected the definition of numericValue to allow negative decimal values to be fully supported. This change was reflected in the updated brief syntax ABNF rules:

numericValue = ["-"/"+"] (decimalValue / integerValue)

integerValue =  digitNonZero *digit / zero

decimalValue = integerValue "." 1*digit

Version 1.1

An update, published in 2016, to incorporate some additional features requested by implementers of the language. These updates included:

  • Two new operators 'childOf' and 'parentOf' were added to support querying immediate children and immediate parents of a concept during user interface design;
  • A new 'dot notation' was introduced (as an alternative to the Reverse flag) to refer to an attribute value for a concept or expression;
  • The ability for a constraint operator (e.g. 'descendantOf') to be applied to a nested expression constraint was added;
  • The ability to add comments within the text of an expression constraint was added;
  • Additional optional brackets were allowed around subexpressions; and
  • The non-normative syntax (previously named the 'Full Syntax') was renamed to the 'Long Syntax'.

Version 1.0

First official version of the SNOMED CT Expression Constraint Language - version 1.0, 2014.