Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

If the ContextItemDefinition has a ValueType of "Nested", the NestedItems collection allows a resulting ContextItem to support a hierarchical structure of organizing other instances of ContextItem. See the below discussion about the NestedItemIds property of ContextItemDefinition for further information.

Notice the inclusion of an optional collection of TimeScope objects. This is used to record the various 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.

 

The ContextItemDefinition describes a property of interest. It should communicate everything needed to enable that property to be captured and displayed appropriately. What follows is a description of the ContextItemDefinition object and some of the rationale behind its design.

The Code

  • Structure
  • Central issuing authority

Version: Change detection

Status: Active or Inactive?property is

  • expected to be universally unique within the ContextItemDefinition domain
  • is used as part of the URI that forms the identity of a ContextItemDefinition
  • is the "key" used by ContextItem in its Code property
  • is issued by a central authority to ensure its uniqueness

 

The Version property serves one purpose; change detection. Whenever a member property of ContextItemDefinition is changed, the Version number is incremented. This allows users who have a cached version of a ContextItemDefinition to realize when a change has taken place. It does NOT communicate what change was made, by whom, or why it occurred; only that it has happened. This approach was deemed more reliable than trying to use a "modified" date time stamp. All ContextItemDefinitions start with a Version value of 0.

The Status property is selected from an enumeration of two values; "Active" or "Inactive". We realized early on that there would be instances where a ContextItemDefinition or one of its ContextItemEnumItem(s) would need to be "retired" from use. We also recognized that those ContextItemDefinition(s) might still be needed in order to interpret historical data. As a result we choose not to delete things, but to instead mark them as "Inactive". T

ValueType: Supported data types

...