The template design requirements include:
Requirement D.1: Replaceable expression placeholders
Placeholders for values
Templates should allow for placeholders to be specified within a SNOMED CT expression. From here on these placeholders will be referred to as 'slots'. Hence, a slot is a marked position within a template around which template instantiation is made. Slots should be able to be replaced by values that constitutes a true part of a SNOMED CT expression, such as concepts, expressions, ... etc.
Following expression parts should be able to be represented as a slot populating the template:
A single expression template should be able to contain one or more replaceable slots, and should support the following capabilities:
Requirement D.2 Slot Names
Expression templates (i.e. slots) to be specified, wherever a concept, expression, token or attribute value can be used.
Requirement D.2 Slot names
Templates should allow each slot to be assigned a name name, enabling the slot to be referenced from other artefacts, and outside the slot (e.g. for specifying input data).
Requirement D.3 Slot types
Template slots should be able to be constrained to only permit a specific type of value (e.g. only allowing precoordinated concepts to replace a slot).
Requirement D.3: Template value constraints
Expression template Templates slots should be able to be constrained to particular concept types. This means that the template should specify the allowable range of a particular slot, so that the resulting expression represents a meaning which satisfies the template constraints. only permit values from a specific value set (e.g. only allowing expressions that satisfy a given expression constraint).
Requirement D.4: Repeatability of slots and expression parts
Templates should support a way of indicating how many times each part of an expression focus concept, relationship group and attribute value pair can be repeated when processing the template. This means that authors of a template should be able to specify whether or not a slot or expression part can be repeatedthe template is populated.