In NIEM, multiple representations of a concept are typically handled via abstract elements and substitution groups. This allows for replacement of the abstract element in an instance with one or more of the substitutions.
Abstract element nc:PersonHairColorAbstract has multiple substitutions, allowing for free-text or code value representations.
In cases where the concept not only has multiple representations but also additional properties describing the concept, a new type is needed to bundle the representations and additional properties together. This is the representation pattern.
The major difference between the two examples is that there are other date-related properties in addition to the multiple date representations; hair color has multiple representations only.
The table below shows an example outlining the difference between abstract elements + substitutions versus the representation pattern.
Pattern | Abstract Element + Substitutions | Representation Pattern |
---|---|---|
Type | n/a | nc:DateType |
--Multiple representations |
nc:PersonHairColorAbstract
|
nc:DateRepresentation
|
--Additional Content | n/a |
|
Just because an abstract element is contained in a type does not mean it follows the representation pattern. Element nc:PersonHairColorAbstract is used in type nc:PersonType, but hair color is simply a property of a person, not a full representation of a person.