Sets and classes

From Discovery Data Service
Revision as of 10:50, 13 May 2020 by DavidStables (talk | contribs)
Jump to navigation Jump to search

A value set definition, and it's run time counterpart- value set transitive closure  , is a set of class expressions collected together for a particular business purpose.

There are a range of purposes for a value set. Examples range from defining a data set according to a set of recorded concepts, indicating the expected range of a property in a health record, or testing the presence of a feature in a patient record. 

Value sets are one of the main 4 packages within the common information model:

IM Package Value set.jpg

 

A value set definition looks very much like a semantic class expression,  in that it uses similar grammar and syntax. The difference is that members of the value set set may or may not shared similar properties and therefore may be semantically diverse.  However, members of the value set are class expressions because each member is used to define a set of concepts by applying a subsumption test to each of the target record concepts.

Value set class

A value set class is best conceptualised in UML terms as a package. Discovery syntax models a value set as a class with a property which is a class IRI and one or more relationships of type "member" whose range is a class expression.All value sets and the class expressions use concepts from the semantic ontology. The following shows the relationship between the two.

Value set class.png

 

From the above, it can be seen that value set definitional expressions may use complex class expressions. In some cases this expression may already be part of a class definition. For example in the above case, a pre-corrdinated named class "Home visit" would be a subclass of a Consultation with the care setting of home. Whether expressions in value sets are complex and simple depend entirely on convenience. However, value set editorial policy would encourage value set authors to use pre-defined classes as the ontology is the best place for these to be maintained.

Value set member expression vs ontology expression

The two are seemingly simile and often the same in terms of syntax. However, a value set expression is used in a different way when used for subsumption testing of the concepts in the ontology.

When using the value set at run time to undertake subsumption testing of other concepts,  the ontology query uses a closed world assumption  when handling negation. In a pure OWL2 ontology, which uses the open world assumption, an expression that uses exclusion will often return no subsumed concept. This is because in the open world, it may be undecidable whether a particular concepts should be excluded or not, unless the ontology author had specifically made sure that the concept was disjoint or negated by some other logic.

Value set expressions are often referred to as expression constraints. In Snomed-CT expression constraint language is essentially the same grammar as the Discovery value set class expression. 

Value set transitive closure

For those operating large scale queries using relational databases, it could be normal practice to use a value set transitive closure table, or list.

The value set generator API supports the means by which a value set definition can return a set of all known concepts in the ontology that are  subsumed by the defintion.