0545 Reference Data¶
Reference data provides authoritative definitions of valid values for data. An individual valid value can be either a ValidValueSet or a ValidValueDefinition. ValidValueSets can have other valid values nested inside them using the ValidValueMember relationship. As such, valid values can be organized in a hierarchy.
A set of valid values can be used to describe the values that may be stored in a data field. The ValidValuesAssignment relationship is used to link the valid value set to an element that represents the data field such as a GlossaryTerm or a SchemaElement. The strictRequirement properties indicates whether the data field can only contain the values listed (strictRequirement=true) or the valid value set is just a suggestion.
Valid values from different sets can be linked together to show that they are equivalent values using the ValidValuesMapping relationship.
A ValidValueSet can also be implemented in an asset that can be used as a look-up table while data is being processed. The ValidValuesImplementation relationship (multi-link) maps the symbolic names from the valid values to the value implemented in the look-up table. The Asset can be flagged as a look-up table using the ReferenceData classification.
Valid values can also be used as tags to indicate that an element has a particular property or belongs in a particular group. The element to be tagged is linked to the appropriate valid value using the ReferenceValueAssignment relationship.
ValidValueDefinition entity¶
Software often uses code values to store properties about a person, place, object or activity. Each code value is mapped to one or more strings when its value is to be displayed. This mapping is stored in a code table.
The ValidValueDefinition can be used to represent a single code value along with its associated properties.
ValidValuesSet entity and ValidValueMember relationship¶
Code tables group related code values together to act as a look-up table. The ValidValuesSet and the ValidValueMember relationship can be used to organize ValidValueDefinitions.
Some code values need to be organized into a hierarchy. The ValidValueMember allows a ValidValuesSet to be nested inside another ValidValuesSet to form a hierarchy.
ValidValuesAssignment relationship¶
Often the values in a data field need to be restricted to a set of valid values (or possibly a single valid value). The ValidValuesAssignment creates a link between the metadata element for the data field (typically a GlossaryTerm or a SchemaElement) and the appropriate valid values.
ReferenceValueAssignment relationship¶
Valid values can be used to tag other metadata elements to make them easy to find.
This tagging is done using the ReferenceValueAssignment relationship.
ValidValuesMapping relationship¶
Valid values can come from many sources (such as standards, regulations, industry definitions etc.) and often there are equivalences between them. It is useful to be able to identify the corresponding values.
The ValidValuesMapping relationship allows this mapping to be captured.
ConsistentValidValues relationship¶
The ConsistentValidValues relationship is used for cross-field validation. It shows how the values in one valid value set should/could be used so that they are consistent with the values used in another valid values set.
The ConsistentValidValues relationship allows this mapping to be captured.
ValidValueAssociation relationship¶
The ValidValueAssociation relationship allows arbitrary relationships between valid value definitions to be recorded.
SpecificationPropertyAssignment relationship¶
The SpecificationPropertyAssignment relationship is used to attach a valid value that describes a type of configurable property to the element that represents the implementation. Examples include connectors and templates.
ValidValuesImplementation relationship and ReferenceData classification¶
The implementation of a code table is represented in open metadata using an Asset. This asset can be tagged as containing valid values using the ReferenceData classification.
The organization will likely have many code tables for the same set of valid values. This is because many systems implement their own code values without following any standards. The ValidValuesImplementation relationship allows the capture of the mapping between the valid value and the implementation value.
With this information it is possible to manage the code tables using open metadata. So when a new value is needed, a new valid value definition is created with ValidValueImplementation relationships for each destination code table. Then an external program can use these metadata definitions to automatically update the code tables ensuring that they are consistent throughout an information supply chain.
Or even build mapping tables to help processes moving data between different systems to convert the code values used in each location.
Further Information
Raise an issue or comment below