Skip to content

Latest commit

 

History

History
79 lines (68 loc) · 3.16 KB

File metadata and controls

79 lines (68 loc) · 3.16 KB

alias ~ Choice, exclusion.

idea ~ The interpretation of a data element is controlled by another element.

context ~ At least two data elements, one acting as switch, the other as target.

motivation ~ Flags allow to easily add or enrich interpretations and to resolve ambiguity.

implementations ~ - One value from a list of possible values (encoding). - A default value (void) which can be overridden. - Markup to turn flags on and off, for instance <b>bold</b>. - An identifier in a key-value record structure. - An embedding that shows which elements are switches and which elements are targets.

examples ~ - The bit as basic unit of all digital data is a choice between two possible values. It can be encoded by 0 and 1, by a given value and absence as default. - Boolean and enumerated data types with type as switch and instance variable as target. - An exclusive-or constraint in a schema to enforce choice of one possibility. - A qualified value such as "Dublin, Ohio". - The statement "license: CC-BY-SA" in contrast to "CC-BY-SA" only. - Annotations that modify interpretation, such as uncertainty and temporal flags. - General rules how to read a data element (schema). - A namespace is a flag that gives context to local identifiers.

difficulties ~ - Possible values of the switch must be clear. If the first element is ambiguous, interpretation of the target element will also be. - Default values are not always known or different values are assumed. - Some flags don't have an independent interpretation, for instance the value "miscellaneous" in a classification. - In practice flags are created or extended ad-hoc, for instance as additional annotation or as additional switch value to add more interpretations. - A flag may switch more then one element and an element may be influenced by a combination of flags. It should be made clear, what elements a flag refers to, - Some flags allow nesting (for instance a qualifier of a qualifier), others do not make a difference when nested (<b><b>...</b></b> is simply bold).

related patterns ~ - Most flags are based on a dependence between switch and target element. - Instead of exclusion one could also disallow specific combinations of elements prohibition. - A separator such as ':' can simultaneously indicate a flag. - The target data element may not be usable without the flag. In this case, a third element is derived from flag and target (derivation). - If the switch consists of conditions which must be met to make use of the target element, a schema is more appropriate.

implied patterns ~ A flag is a form of derivation as the target's interpretation is implied by the switch.

specialized patterns ~ A schema defines which choices and exclusions are possible for some data elements. Schemas can further act as flags by telling how to read data.