The information model's meta model is a small set of relatively simple classes capable of holding huge sophisticated ontologies, an extensible data model, as well as set and query definitions.
The main classes are illustrated here on the right, and the class definitions and subclasses are specified in text, the tables and text being auto generated from the IM SHACL shapes.
Basic shapes
These shapes are the meta classes of the named entities within the information model.
IrirRef
Is a subtype of Data model/Node shape
A reference to resource with an iri and optional name to enable readability
Property | Card. | Value type | Description | |
name | 1..1 | xsd:string | The name of the entity |
Example {"@id" : "sn:29857009", "name" : "Chest pain (finding)"} |
Entity
Is a subtype of Data model/Node shape
The abstract super class and data model for all named entities in the model i.e. the data model of the entities that are labelled with iri label and status
Property | Card. | Value type | Description | |
label | 1..1 | xsd:string | The preferred full name of the entity | |
type | 1..1 | rdfs:Resource | The base type of the entity i.e. one of the high level entity types | |
comment | 0..1 | xsd:string | The description of the entity | |
status | 1..1 | im:Status | The status of the entity being active, inactive, draft or unassigned | |
scheme | 1..1 | im:Graph | The code scheme or graph which the entity belongs to | |
isContainedIn | 0..1 | Folder | An entity that this entity inherits from, both semantically and structurally, this is also used for sub properties as properties are classes of properties | |
370124000 | 0..1 | Entity | When a status is inactive, the entity that replaces this entity (if any) |
Folder
Is a subtype of Entity
Folder containing subfolders or entities
Property | Card. | Value type | Description |
IriAlias
Is a subtype of IrirRef
An IRI with a name and an optional alias and a variable name when the iri is passed in as an argument (e.g. $this
Property | Card. | Value type | Description | |
alias | 0..1 | xsd:string | The column name in a select clause for this property, or a variable used to reference the result set of the values matched | |
variable | 0..1 | xsd:string | The name of a variable, passed as an argument to the query, which is resolved to the IRI | |
inverse | 0..1 | xsd:boolean | When used as a property, whether this is an inverse object property i.e. an inbound connection to this entity | |
includeSubtypes | 0..1 | xsd:boolean | When used in a with or where clause, whether to include the subtypes of this entity | |
includeSupertypes | 0..1 | xsd:boolean | When used in a with or where clause, whether to include the supertypes of this entity e.g. when ascending a hierrchy to look for a property | |
or 0..1 |
isType | 0..1 | xsd:boolean | If the query results are derived from instances of certain type (or types) then set this flag to true. |
0..1 | xsd:boolean | If the query results derived the result set of a concept set, value set or query result then set this flag to true. |
Function
Is a subtype of Entity
Data model of a function i.e. models the parameters. A query that calls a function uses a function clause that uses this function definition to name each argument passed in
Property | Card. | Value type | Description | |
parameter | 0..* | Parameter | A list of parameters and data types used in this function |
Parameter
Models a named parameter used in function or other clauses. The parameter name and data type of the parameter (if literal) or class (if on object)
Property | Card. | Value type | Description | |
label | 1..1 | xsd:string | The name of the parameter | |
or 1..1 |
datatype | 1..1 | rdfs:Resource | The iri of The data type of the parameter when the data type is a literal |
1..1 | rdfs:Resource | The iri of the class of the parameter when the argument is an object | ||
query | 0..1 | im:Query | The iri of the query used to generate the value of the parameter passed as an argument |
IriVariable
Is a subtype of IrirRef
A variable, usually passed in as a parameter to a function, with an optional IRI and whether the iri is an instance or type iri (if ambiguous)
Property | Card. | Value type | Description | |
variable | 0..1 | xsd:string | The name of a variable, passed as an argument to a function. Assumed to be a collection | |
isType | 0..1 | xsd:boolean | In cases where it is ambiguous whether an iri refers to an instance or type, then set this to true if a type |
Property
Is a subtype of Entity
A property data model
Property | Card. | Value type | Description | |
inverseOf | 0..1 | rdf:Property | A property that this property is an inverse of | |
domain | 0..1 | rdfs:Class | The classes or concepts that may have this property as a property, or a role, or a role within a role group | |
range | 0..1 | Class | the type of value for this property. |
Entity selector
Is a subtype of Entity
A list of entities to select at particular points in a business process.
Property | Card. | Value type | Description | |
list | 0..1 | xsd:string | The list of entities by iri to select from |
Data Model shapes
These shapes are the meta classes of the data modelling entities within the information model.
Data model/Node shape
Is a subtype of Entity
The meta class for shapes, those shapes defining a type i.e the shape of a shape
Property | Card. | Value type | Description | |
isContainedIn | 0..1 | Folder | ||
subClassOf | 0..1 | NodeShape | ||
property | 0..1 | PropertyShape | The list of properties for this shape |
Concept shapes
These shapes are the meta classes of the terminology concepts used within the information model.
Terminology concept
Is a subtype of Entity
data model for terminology concepts
Property | Card. | Value type | Description | |
subClassOf | 0..1 | Concept | The concept this concept is a sub type of | |
code | 1..1 | xsd:string | The code for this concept, which may be a local code if local concept, or a core code such as a snomed identifier | |
hasTermCode | 0..1 | TermCodeShape | Alternative terms or synonyms for this concept. A term may also have a description id. | |
weighting | 0..1 | xsd:integer | A number indicating a weighting for this concept which can be used in free text search | |
definitionalStatus | 0..1 | im:VSET_Definitionalstatus | Indicates the authoring status of this concept, whether necessary only, or both necessary and sufficient. OWL would use Equivalent class axiom to indicate this. | |
hasMap | 0..1 | xsd:string | Any backward maps from core to legacy. This is limited to complex maps rather than simple matches and are 'backward' matches not suitable for automatic inclusion in subsumption queries | |
usageTotal | 0..1 | xsd:integer | The approximate number of times this concept has been used in around 1 million primary care and acute care records | |
im1Id | 0..1 | xsd:string | pointer the original identifer in IM1 | |
matchedTo | 0..1 | im:VSET_Unspecified | For a legacy concept, one or more concept this concept matches to. A query for the matched to concepts would entail this concept normally, but NOT the children of this concept | |
370124000 | 0..1 | Concept | Indicates the concepts that this concept has been replaced by | |
isChildOf | 0..1 | Concept | points to the parent legacy concept that this concept is in. Note that it may or may not be a true subtype. Reflects the original taxonomy |
Term code shape
Is a subtype of Data model/Node shape
data model for a term code
Property | Card. | Value type | Description | |
label | 0..1 | xsd:string | The term or synonym for the concept | |
code | 0..1 | xsd:string | Descriptionid or code for this particular term | |
status | 0..1 | im:Status | The status of this particular term code, may be active or inactive |
Refined concep
Is a subtype of Terminology concept
A concept with role groups with roles
Property | Card. | Value type | Description | |
roleGroup | 0..1 | RoleGroupShape | Zero or many role groups, each group containing one or more roles. These represent constraints on the super types i.e. more specific. Generated by inference making sure to remove duplicate properties or super properties. |
Role group shape
Is a subtype of Data model/Node shape
data model for a role group
Property | Card. | Value type | Description | |
Property | 0..1 | Concept | The concept identifier of the concept that is the role. Role Groups are unique in that their properties are any properties from an ontology,usually concepts |
Codeable concept
Is a subtype of IrirRef
A coded concept used in a health record system that may or may not be a defined concept in the ontology. It represents the local definition of a code and is of the form used in HL7 messaging
Property | Card. | Value type | Description | |
matchedConcept | 0..1 | IriRef | The core concept iri that this codeable concept has been matched to in this instance | |
originalCode | 0..1 | xsd:string | The original code entered in the publication system which may be mapped to a code concept | |
originalScheme | 0..1 | xsd:string | The original code scheme identifier, may be a url or a OID or informal identifier | |
originalCodeTerm | 0..1 | xsd:string | The original display term for this code usually as a reference. Should not be confused with original text as seen by the user, which may be different depending on the context | |
originalQualifierTerm | 0..1 | xsd:string | A qualifier term in the original system which may result in a different concept map. For Example 'negative' or 'positive' or a block of text |
Query Model and Set definition shapes
These shapes form the model for defining sets (also known as query definitions) for retrieving data from the IM or health records.
Data set
Is a subtype of Query
A query that produces a data set as an output is stored as an entity in a query library
Property | Card. | Value type | Description |
Query
Is a subtype of Entity
A query that is stored as an entity in a query library
Property | Card. | Value type | Description | |
definition | 0..1 | xsd:string | The query definition itself |
Path Query
Is a subtype of Data model/Node shape
A query that returns a set pf paths between a source and target entity, traversing to a certain level
Property | Card. | Value type | Description | |
source | 1..1 | IriRef | the source entity at the start of the path. | |
target | 1..1 | IriRef | the target entity at the end of the path. | |
depth | 0..1 | xsd:integer | How many hops to be taken in the graph between source and target |
Set
Is a subtype of Entity
data model for concept sets and value sets
Property | Card. | Value type | Description | |
definition | 0..1 | xsd:string | The query definition itself | |
hasMember | 0..1 | Concept | The flat list of leaf concepts when generated from the definition, or for many national sets, simple list of concepts |
Transform map shapes
These shapes form the model for transformation maps used by a engine to transform from a source to destination data model. Based on FHIR mapping language
Transactional shapes
These shapes form the meta classes for structures pass into APIs for query of, or filing into, the model or health records.
EntityFileTransaction
Is a subtype of Entity
An entity with the additional CRUD indicators to enable deletes updates, adding quads etc
Property | Card. | Value type | Description | |
crud | 1..1 | im:CrudOperation | Indicates the nature of the CRUD transaction which must be one of im:DeleteAll, im:AddQuads (adds in additional triples), im:UpdateAll (replaces all the predicates for this entity in the graph with te ones submitted), im:UpdatePredicates ( replaces all the objects of these submitted predicates for this graph | |
graph | 1..1 | im:Graph | The graph to which these triples apply. This means you can add predicates to any entity without affecting the original authored entity, those predicates belonging only to this module or graph |
EntityDocument
A document containing any number of triples to file as a batch.
Note that if the document is sent as Json-LD with prefixed iris, a @context object will be required
Property | Card. | Value type | Description | |
crud | 1..1 | im:CrudOperation | Indicates the nature of the default CRUD transaction for entities in thisdocument. Thes can be overridden in each entity. Must be one of: im:DeleteAll, im:AddQuads (adds in additional triples), im:UpdateAll (replaces all the predicates for this entity in the graph with te ones submitted), im:UpdatePredicates ( replaces all the objects of these submitted predicates for this graph | |
graph | 1..1 | im:Graph | The graph to which these entities apply by default. This may be overridden by the entities This means you can add predicates to any entity without affecting the original authored entity, those predicates belonging only to this module or graph | |
entities | 1..* | Entity | Set of entities to file. If the entities do not have crud or graphs oftheir own then the default from the document are used |