...
(Note: CompoundIdentifier not shown for clarity; see separate class diagram.)
In its simplest termsA ContextItem is a single, specific, use of a ContextItemDefinition. Put a simpler way, a ContextItem is a key / value pair. Its Code property is the "key" (corresponding to the Code property of a ContextItemDefinition), while the rest of its properties describe the "value".
The Value property is ALWAYS expressed as a string even though that may not be how it was collected or how it is expected to be used elsewhere. The ValueType property of the ContextItemDefinition, that corresponds to the "key" Code, supplies the user with this data type information. In some cases, like the presence of NestedItems, there is no real Value to record so this property is optional.
...
Notice the inclusion of an optional collection of TimeScope objects. This is used to record the relationships a given Value may have with time. For example, there could be a TimeScope that captures when the Value was recorded and another TimeScope that expresses the duration for which the Value is considered valid.
A ContextItem is a single, specific, use of a ContextItemDefinition. The Code of a ContextItemDefinition is used as the "key" in the key / value pair represented by a ContextItem.
asddasd