wiki-archive/twiki/data/UBIF/SemiControlledEnumeratedVal...

20 lines
1.9 KiB
Plaintext

%META:TOPICINFO{author="GarryJolleyRogers" date="1259118882" format="1.1" version="1.4"}%
%META:TOPICPARENT{name="BDI.SDD_.SchemaDiscussion"}%
---+!! %TOPIC%
Many UBIF features are controlled through [[EnumeratedValues][enumerated values]] (i.e. a controlled vocabulary).
Enumerated values are used in two cases:
1 To create a main/subclass hierarchy. Example: all Representation/Label elements are structurally identical, but we desire to further specify detailed semantics of labels. For this purpose, the Label element has a role attribute, with controlled values like Full, Short, Abbrev, Sort for the default full label, short and abbreviated equivalents, and a label preferred for sorting purposes. Note that although the use of role is related to value-based weak typing, in the context used in UBIF it is used only when the subclass have identical syntax and structure to the superclasses.
2 To express machine-readable semantics for application interoperability. Example: Applications need to know what the status value for missing data is, or which statistical measure has been used.
In version 1.0 and 1.1 of UBIF (and BDI.SDD_) we use fully constrained schema enumerations. It is not possible to add further values. However, this is intended to be a preliminary restriction to ensure that a community consensus about relevant is reached. Ultimately, these values should be extensible through URIs.
TEI defines [[http://www.tei-c.org/P4X/ref-VALLIST.html][three kinds of value lists]]:
* closed = only the values specified are permitted.
* semi = all the values specified should be supported, but other values are legal and software should have appropriate fallback processing for them.
* open the values specified are sample values only.
In future versions we intend to make most, or perhaps all enumerations of the kind "semi". Applications builders are asked to write their code in consideration of this.
-- Main.GregorHagedorn - 10 May 2006