We propose to reformulate metadata templates such that they represent events that occur within the RTS.
Each metadata template represents an event in the RTS, where an event is typically something that happens to a template. We currently recognize three major things that happen to a template: insertion into the RTS, invalidation, and re-validation. We describe these events below. Also, assignment of an instance unique identifier (IUI) is something that happens in the RTS. Currently, these events are captured in A templates. At this time, we do not propose to change how IUI assignments are captured as A templates.
The original formulation of metadata templates has a parameter, the "error or insertion" code (E), whose semantics are mixed. If you are inserting a template for whatever reason, the E code is set to the value I for "insertion". If you are correcting an error, then the E parameter codifies what type of error exists in the RTS that makes the template false (even if the error originates with another template. For example, a duplicate IUI assignment in an A template causes a PtoU template to be incorrect, but in inserting a metadata template to correct the PtoU template, you assign the E parameter the value U5).
Note that we never change or update any parameter in a template or metadata template in an RTS. To correct errors, we insert new metadata templates. This practice enables us to view the state of the RTS as it was at any time in the past.
The Proposal
We propose to remove the E parameter from metadata template specification, and replace it with two parameters: the EV parameter for event type and the EC parameter for error code.
The EV parameter
The EV parameter may take 3 values, defined as follows.
Parameter value | Definition |
---|---|
I | The template referred to by this metadata template was inserted into the RTS by the entity designated by iuid |
X | The template referred to by this metadata template was invalidated by the entity designated by iuid |
R | The template referred to by this metadata template was re-validated by the entity designated by iuid |
A template may be invalidated in revalidated and subsequently invalidated again and etc. any number of times through the history of the RTS. There will be a new metadata template for each insertion, invalidation, and revalidation.
One disadvantage to this approach is that to query "good" data in the RTS, the query must check disjunctively for the values I and R. Alternatively, we could add a flag to the templates themselves that determines whether they are valid. This flag would be set to true upon insertion and revalidation, and to false upon invalidation.