Page tree

2239 View 6 Comment Resolved Comments enabled In the category: Undefined

Some doubts in non-redundant attributes in cardinality count

Contributors (3)


  1. Hello everyone,

    I have a strongly related pair of questions:


    As expressed in the Expression Constraint Language Specification and Guide, only non-redundant defining attributes (i.e. attributes which don't have an IS A relationship between them) are included in the cardinality count. On the other hand, as expressed in the Technical Implementation Guide, a relationship that is part of a relationship group is only regarded as redundant if the relationship group as a whole subsumes another relationship group.

    So, taking into account that the concept "5203004 |Myxomatosis of cardiac valve|" has the following "116676008 |Associated morphology|" relationships:

    5203004 |Myxomatosis of cardiac valve|: { 116676008 |Associated morphology| = 9831005 |Myxoid degeneration| },
    { 116676008 |Associated morphology| = 49755003 |Morphologically abnormal structure|},
    { 116676008 |Associated morphology| = 49755003 |Morphologically abnormal structure|}

    and also taking into account the complete definition of the "5203004 |Myxomatosis of cardiac valve|" concept (please, search for the concept in

    Given the following expression constraints:

    a) << 5203004 |Myxomatosis of cardiac valve|: [1..1] 116676008 |Associated morphology| = << 49755003 |Morphologically abnormal structure|
    b) << 5203004 |Myxomatosis of cardiac valve|: [2..2] 116676008 |Associated morphology| = << 49755003 |Morphologically abnormal structure|
    c) << 5203004 |Myxomatosis of cardiac valve|: [3..3] 116676008 |Associated morphology| = << 49755003 |Morphologically abnormal structure|

    Which of them should return the concept 5203004 |Myxomatosis of cardiac valve| after executing it?


    Does the "distribution view" refer to the RF2 files provided by SNOMED International with the SNOMED CT content? In this case, can I supose that the "sct2_Relationship_Snapshot_INT_20190731.txt" file doesn't contain any concept with redundant attributes?

    Thank you.

    Vicente Giménez

    1. Hi Vicente,

      QUESTION A) -The expression constraint using the cardinality of [3..3] should return the concept 5203004 |Myxomatosis of cardiac valve|. As you suggest, the SNOMED International browser shows the non-redundant representation of the definition of this concept, and there are 3 instances of an |Associated morphology| relationship across 3 different role groups.

      QUESTION B) - "Distribution view" is a term that we used prior to the July 2019 release. I will be updating the ECL specification over the next few months to replace "Distribution view" with "Necessary Normal Form". However, both of these terms refer to what is contained in the relationship file - e.g. sct2_Relationship_Snapshot_INT_20190731.txt. As you suggest, this file does not contain any concept with redundant attributes - and hence it can be used directly to calculate the cardinalities from ECL.

      I hope this answers your questions.

      Kind regards,

      1. Hi Linda,

        Thank you very much for your answers. They are very useful.

        Best regards,


  2. Hi Linda,

    What about these attribute relationships:

       a) attribute1 = attributeValue1

       b) attribute2 = attributeValue2

    where 'attribute2' is a subtype of 'attribute1' and 'attributeValue2' is a subtype of 'attributeValue1'. Are they redundant?

    And another question: is there something related to"Property chains including transitive properties" (SNOMED CT OWL Guide) regarding the ECL?

    Thank you,


    1. Hi Vicente,

      If those two relationships are in the same role group, then (a) is redundant (it is wholly implied by (b)) and would not appear in the Relationships file.  If they are in separate role groups, then you have a situation analogous to your question A above.

      Regarding transitive properties and other property chains, there is no special provision in ECL for these, but if you "wrap" your (sub)expression in a descendantsOrSelfOf then you will match all the concepts that are inferable due the role chaining.  For example, <<A : B = C would become <<(<<A : B = C)

  3. Thank you for replying to Vicente's question Michael!

    Vicente - I agree with Michael's answer. I hope this answered your questions.

    Kind regards,