...
- 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 Description property is nothing more than a "friendly" name that makes it easier to correctly choose the ContextItemDefinition of interest from a pick list. It is not meant to be a lengthy explaination.
At this point we have discussed all the properties that are required to define a simple ContextItemDefinition (everything except "Nested" or "Enum"). This minimum set of information, while sufficient to allow for the capturing of data, does little to convey any real meaning. The goal of the remaining properties are to allow a fuller description of the target concept in a semantically rich way.
Keywords: Aid for querying
Lexicalizations: External controlled vocabulary for Language using IANA Language Subtag Registry.
Properties: Additional The Keywords property is a collection of strings intended to be an aid for querying. They are expected to be single words, lower case.
The Lexicalizations property is a collection of Lexicalization objects. The concept that a ContextItemDefinition represents may be expressed a number of different ways, not just in different languages, but also using different terms in the same language. For example, regional differences in the common name of a pest. A Lexicalization object contains the text, a reference to the language that text is in, and a list of GeoPoliticalContext objects that describe "where" that terminology is used. We have chosen to use the IANA Language Subtag Registry as the controlled vocabulary for languages.
The Properties property is a collection of ContextItem objects. This is how we can supply additional information needed to use the definition correctly. For example,
NestedDefIds: Grouping Definitions that need to be together.
...