XML schema to encode descriptive data in biology and other subjects. The primary goal of the design is to increase the knowledge and availability of knowledge about the diversity of life on earth. However, it may be used in many other areas (including medicine, pathology, archeology, anthropology) wherever objects or classes of objects are described for later reidentification.

The schema was designed by the Structure of Descriptive Data (SDD, http://160.45.63.11/Projects/TDWG-SDD/index.html) group. SDD was established 1999 as a subgroup of the Taxonomic Databases Working Group (TDWG, www. tdwg.org) of the International Union of Biological Sciences (IUBS). The author of the current schema version and of all annotations is G. Hagedorn, Berlin. The requirements for an SDD schema where elaborated in 6 major meetings of the SDD group and in discussions over the SDD email list. Over 60 people contributed to these discussions. However, the help, criticism and energy of Bob Morris, Kevin Thiele, Bryan Heidorn, Guillaume Rousse, Steve Shattuck, Donald Hobern, Trevor Patterson and Nicolas Bailly is specially acknowledged!

Copyright © TDWG, 26. June 2004. Licensed under GNU GPL 2 (http://www.gnu.org/licenses/gpl.html) - with the following restriction: This is a preliminary version (0.91!) for testing purposes. Permission to use this schema is granted to all scientific or commercial projects for a testing period of up to 3 years. After this time computer programs using this schema must either be discontinued or converted to the final version of this schema.

Conventions:
Element or attribute names starting with underscores (__) are present in the schema for discussion purposes only and should be only experimentally used. Annotations containing @@ indicate unfinished points of discussion.

Note: blockDefault="#all" in xs:schema prevents substitution and that in instance documents derived types can be used in elements typed to the base type (which otherwise is possible using xsi:type=""). - finalDefault is not set, further type derivation is currently not considered problematic. Please contact us if you believe otherwise. Note that according to the w3c discussion forum, the developers of xml Schema consider to drop the final attribute in the upcoming XML Schema version 1.1. - Nillable: xsi:null is not supported in SDD documents (schema declaration nillable="false" is default, not explicitly stated).

This imports the UBIF schema file (SDD uses the same namespace as UBIF!). Due to problems with key/keyrefs when using two namespaces (see documentation on the SDD WIKI: http://efgblade.cs.umb.edu/twiki/bin/view/SDD/UBIFDesignRequirements), the SDD schema is based on the UBIF namespace, and thus uses include rather than import! Contains relation IDs derived from the RelationID base type. Used for locally unique identifiers (local to a specific object type). To better communicate the ID scope, for each object type a derived RelationID has been used, although technically this is redundant. DescriptiveData must be placed inside the UBIF top-level Datasets/Dataset structure as the last element. Because of keyref constraints, this schema depends on the imported UBIF root! Descriptive data itself that are specific to SDD, i. e. descriptive terminology, coded and natural language descriptions and stored identification keys. The labels of audience definitions are required and must be unique for a given language. The labels of glossary definitions are required and must - in combination with the SensuLabel - be unique for a given language/audience combination. The key of coding status values must be unique. The labels of coding status values are required and must be unique for a given language/audience combination. Modifier set keys are required and must be unique. The labels of modifier sets are required and must be unique for a given language/audience combination. Modifier keys are required and must be unique regardless of modifier type (certainty, frequency, etc.). The labels of modifier definitions are required and must be unique for a given language/audience combination. Additional character-type-specific key. Additional character-type-specific key. Additional character-type-specific key. The labels of character definitions are required and must be unique for a given language/audience combination. This provides a joint key for states either defined locally within a character (= StateDefinition), or referenced from ConceptStates (StateReference; provides a new local key). This is the only key for them; no separate keys for locally defined/concept reference within the character are defined. Note that state keys are unique across all characters, not only within each character. The labels of concept tree definitions (= entire trees, not the nodes within the trees) are required and must be unique for a given language/audience combination. This collects all keys of Concept elements. Note that no UniqueLabelText constraint is defined for concept tree nodes; the labels on tree nodes are optional and not required to be unique. They are expected to be displayed together with their parents and thus obtain their uniqueness from the context (the path from the root should be unique, but this is not expressed in the schema). Also, the xpath selector selects all Concept elements anywhere in the document, which is more general (and therefore computation intensive) than necessary. A better xpath expression would be Terminology/ConceptTrees/ConceptTree//Concept, which includes all nodes regardless of their place in the tree structure. However, combining a defined path with an "all child" path is impossible under the restrictions imposed on xpath expressions in xml-schema identity constraints. Further, since keyed elements in a tree are collected from the document root rather than from the tree root, the node element names must be unique names in the entire schema. A related problem is that we desire to use the same element name (Concept) for node definitions and references to these nodes (from within NaturalLanguageDescriptions). Although the latter has a ref instead of an id, Schema would normally complain that the id is missing, rather than understanding that only elements possessing a id are to be selected for the xs:key constraint. Using a combined xpath ".//Nodes/Concept" is a solution. It does, however, work only if the id of the root node is not included. Since no reason exists to do so (this id is redundant) we accept this. All concept state id values must be unique in an entire project. Compare ConceptKey. A joint key for all CodedDescription or NaturalLanguageDescription elements. This identifies an entire stored key (i. e. not the nodes/steps in the key) The labels of stored key definitions (i. e. for the entire key) are required and must be unique for a given language/audience combination. This collects all ids of nodes in stored keys (Lead elements). Compare the note on Concept about a potentially better xpath. Within UBIF (Unified Biosciences Information Framework), this represents the node where the SDD-specific data start Default settings etc. = SDD- specific additions to general dataset metadata Default Audience and Concept tree for interactive identification. If configuration data exist at all, at least the default language should be configured! The default language and audience is used whenever the consuming application has no other preference specified. The user interface of the application may start with the default audience representations and then allow to choose a different audience. The default concept tree used to arrange characters in interactive identification. [ATTR: ref] If a class hierarchy is present, the hierarchy used for inheriting and aggregating descriptive data in the class hierarchy must be defined. [ATTR: ref] Defines the operational terminology (parts, characters, states, etc.) in which descriptions are expressed. The terms are defined by the biological specialist(s). They are used in the descriptions through references to their 'id' attributes). General vocabulary lists and rules; applicable outside of the domain of descriptive data. In contrast to enumerated types in the schema, new values and labels for new languages/audiences can be defined. A list of audiences addressed in the project. An Audience is an extension of language (including dialect), esp. with expertise (pupil, beginner, expert). @@ to be discussed! @@ For natural language reporting some rules can be defined per language rather than per audience. If a rule for a language used in an audience definition is missing, applications may add a default language rule to the project data. [ATTR: language, dir] @@This whole sequence is not functional, just a bunch of ideas for discussion! @@ Should for each of Or, And, etc. an entire delimiter-group be defined? @@ Should only 'Or' be defined and 'And' etc. left to the override mechanism available anyways in the concept trees? @@ unclear whether used. DeltaAccess defines on the character level whether states are combined with or, and, to, or with. This has not yet been worked out for SDD! Instead originally SDD attempts to succeed just with delimiters. Combining delimiter rules with conditionally different operators is a problem, however!@@ @@ unclear whether this would be used For states that intergrade: 'red to orange' The words listed in this collection should no be capitalized at the start of a sentence, or decapitalized when sentences are joined. The labels of audience definitions are required and must be unique for a given language ('language' attribute). Defines the semantics and labels of coding status values (e. g., unknown, not applicable, not interpretable). Coding status values (= 'missing data indicators', = 'special states') provide standardized reasons why data are missing. Unlike most elements in Terminology, these are constrained by the SDD model and can only be extended by revising the SDD standard (may be changed to user-definable in a later version of SDD). Labels are already user-definable to support multiple audiences. The labels and abbreviations given are only recommendations. They can be freely changed as long as the semantics are preserved. [ATTR: id] Contains detailed and fundamental terminological definitions (of object/part, object types, property, method, property state, etc.). These are referenced in character, state, etc. definitions, but may also be used independently. The Glossary entry for a single concept (object, method, property, state, etc.), which may be expressed in multiple audience-specific representations. [ATTR: id] The audience values must uniquely identify the Representations within each GlossaryEntry. Certainty, frequency, and other modifiers modify categorical states or statistical measures. Modifiers are defined for the entire project, but must be enabled for characters in concept nodes to be available when editing descriptions Modifiers within a group may be ranked/ordered; in descriptions, modifiers from the same group are combined with 'or'. All modifiers in a group must be of the same type (certainty, frequency, etc.). Characters are the operationalized concepts used in descriptions. They define categorical states and quantitative values or statistical measures. Characters are defined in an unordered flat list. They can be used alone or in combination with modifiers or concept trees. Hierarchies of property, object part, observation methods or other concepts. Concepts can be operationalized by referring to characters (only these allow scoring of data in the descriptions). Concept states (property or kind-of-part, reusable in multiple characters) and char. dependencies are expressed here as well. Concept trees may also be used to define flat character subsets for filtering purposes. @@DISCUSS: should concept tree hierarchies be recursively definable, as long as the resulting tree is acyclical?@@ Importantly, this would allow to define generalization and part-of relations between parts/structures! [ATTR: id] Authored or auto-generated free-form descriptions, which may be completely or partially marked up with elements similar to those in coded descriptions. Note: If all coded markup except the Text content is removed, the original natural language text description can be recovered without changes (lossless). [ATTR: id] Largely language-independent descriptions entirely controlled by Terminology. Both coded and nat. lang. may describe either abstract class concepts (taxon, disease, etc.) or physical objects (individual specimens). [ATTR: id] Dichotomous or multifurcating authored keys (incl. legacy data) (Note: Identification keys may also be created dynamically based on data in terminology and descriptions. These keys are intended to represent only manually authored keys, whether from capturing legacy data or newly designed.) [ATTR: id] ==== TERMINOLOGY START === ==== -- TERMINOLOGY/GENERAL START === The following types are used in the Terminology/General section. They define generic concepts not in principle restricted to the use in descriptive data. --- Audiences are an extension of language/culture codes, to capture expertise and other factors (= registers within a language). An Audience is a combination of an enumerated expertise category (pupil, beginner, expert) and a free-form scope definition. As a result, multiple audiences can be defined for the same expertise, distinguished only by their label. A concise label for the audience; plus optional details clarifying the role / definition of the audience. Properties describing machine-readable partial semantics for an audience definition. ExpertiseLevel is restricted to values from 0-5. These categories allow to communicate expected expertise between different applications using UBIF. Recommended interpretations: 0 = expertise level undefined 1 = elementary school (year 1 to 6); 2 = middle school (year 7 to 10); 3 = high school (year 11 above) and general public (trying to avoid any specialized terminology or jargon); 4 = university students or (partly) trained personnel (using terminology, but avoiding or explaining problematic terminology); 5 = experts (using the full range of terminology). The value that is referenced whenever an audience="..." attribute is used in audience-specific elements. Collection of AudienceDef-type elements [ATTR: audiencekey] The audiencekey string is referenced in all audience specific elements (labels, definitions). Recommendation: audience keys should consist of the expertise level from 0-5 (followed by period-number if a second audience for the same language and expertise level is defined). Examples: '0', '3.12' Audience references are always an optional addition to a language reference! (Note: If audience definitions are present, the audience attribute of AudienceRef should be treated as having a default value pointing to the first audience with expertiselevel=0 (undefined). Setting audience "default=0" in schema (together with the keyref identity constraint on audience) would require all documents to have audience definitions, which was considered undesirable.) --- Coding status allows to express reasons why data are missing (not coded) Project-wide definition of CodingStatus values Properties describing machine-readable partial semantics for a coding status value. Provided to support generic application code that continues to function if additional codes are defined. @@ Both proposals need elaboration and discussion! To be coded / Not to be coded / Cannot be coded / coded successfully NotEvaluated / CannotExist / DoesNotExist / Exists Enumeration used in CodingStatus/Specification. These required values enable applications to interprete user-defined coding status values. To Be Coded -- Information has not yet been entered, but is is planned to do so. Not To Be Coded -- Information has not yet been entered, and is is not planned to do so (esp. because resources are lacking and other characters should have priority). Cannot Be Coded -- Information cannot be entered due to objective (inapplicable character) or subjective (cannot interpret available data) reasons. Coded Successfully -- Information has been entered successfully. Enumeration used in CodingStatus/Specification. These required values enable applications to interprete user-defined coding status values. Not Evaluated -- The presence of information has not yet been evaluated. Cannot Exist -- Information cannot exist for logical reasons (i. e. a character with a coding status having this value is inapplicable). Does Not Exist -- Information should exist, but extensive research has failed to find it. Exists -- Information has already been found, but may not yet have been entered. Refers to CodingStatus values (e. g., from within descriptions) Refers to a CodingStatus value (Terminology/General/CodingStatusValues/Status/@id) ==== -- TERMINOLOGY/GENERAL END === -------------------------------- START Modifiers (uses polymorphism!) --------------------------- The modifier type system covers expressions of certainty, frequency, manner, degree, etc. that can be added to existing character value or state expressions. The modifier system is complex and uses abstract base and derived types both for modifier definitions and for references applying these modifiers to statements in descriptions. Quick overview over the primary entry types: Modifiers are defined in ModifierSet elements. Recommended applicability of sets to characters is defined in the concept trees. Single modifiers are applied to descriptive statements using the PolymorphicModification/PolymorphicModificationMarkup groups. 1. --- Modifier definitions a) Modifiers are grouped into sets because of ranking (ordering) within a set (and for management purposes). All modifiers in a set must be of the same modifier type (e. g., all are frequencies), else ranking would not be meaningful. A set of modifiers of a single type that has a label and may define order/rank.for the contained modifiers Label expressing the concept or scope of each modifier set. All Representations within a Label must have different language values. = 'Modifiers are ranked'. If true, the sequence of modifier elements in instance documents is semantically meaningful (as in 'weakly' - 'moderately' - 'strongly'). If false the sequence is intended for display purposes only. Refers to a ModifierSet, used in ConceptTree//Concept to define recommended modifier sets The ref attribute refers to a modifier set (Terminology/Modifiers/ModifierSet) b) Single modifier definitions. Abstract base type and derived types to be used in instance documents. Note that 'Frequency'Modifier, 'CertaintyModifier', etc. may have been named 'FrequencyModifierDef', etc.; they have been abbreviated to improve the readability of instance documents in case xsi:type would have been used. Abstract base type for state or character modifier definitions (certainty, frequency, etc.) -- Character modifiers: Abstract base type for modifiers applicable to character types in principal Definition of certainty modifiers (perhaps, probably, etc.) An estimate of a probability range for verbal modifiers, defined through two attributes. The upper/lower limits of probability modifiers may overlap. The default values are 0-1, indicating that no estimate was possible. If present and true the current modifier indicates that the state to which it refers is present or true only due to a misinterpretation. The probability range should be 0 to 0 = certainly false. Definition of spatial modifiers (proximal, distal, at base, at tip, etc.) In version SDD 1.0 this element is defined only to support forward compatibility; no specification details are defined for this modifier type yet. Definition of temporal modifiers (earlier, later, in summer, in spring, etc.) In version SDD 1.0 this element is defined only to support forward compatibility; no specification details are defined for this modifier type yet. Definition of character modifiers not yet covered by the categories above (open extension!) -- Categorical state modifiers: Abstract base type for modifiers applicable only to categorical states Definition of frequency modifiers (rarely, usually, etc.) An estimate of a frequency range for verbal modifiers, defined through two attributes. The upper and lower limits of several frequency modifiers may overlap. The default values are 0-1, indicating that no estimate was possible. Definition of modifiers restricted to single categorical statmenents, esp. modifiers/adverbs of degree and manner (strongly, very, darkly, etc.). (Note: the grammatical concept of adverbs of manner often includes the certainty modifiers, which should not be included here!) - (It is expected that this list may have to be extended in future SDD versions, creating additional specific modifier types for those lumped in OtherModifiers) - (Open questions: a) can approximations ('ca.', 'roughly') be handled as CertaintyModifiers or is a separate type desirable? b) should manner, degree, intensity become separate types? c) Specification of spatial and temporal modifiers must be elaborated!) c) Collections of modifier definitions. Abstract base type and derived types to be used in instance documents. The ModifierSet type refers to these collections in a polymorphic way. This allows to define a collection of ModifierSet elements, each set containing multiple modifiers of a single modifier type. Abstract base type of a collection of modifiers of a single type. In instance documents one of the following non-abstract types must be used. (This is an abstract type, specific derived types will be used in instance documents!) [ATTR: id] -- Character modifiers: (Collection; derived from ModifierDefs abstract base type, restricted to specific modifier type) (Collection; derived from ModifierDefs abstract base type, restricted to specific modifier type) (Collection; derived from ModifierDefs abstract base type, restricted to specific modifier type) (Collection; derived from ModifierDefs abstract base type, restricted to specific modifier type) -- Categorical state modifiers: (Collection; derived from ModifierDefs abstract base type, restricted to specific modifier type) (Collection; derived from ModifierDefs abstract base type, restricted to specific modifier type) d) Group combining the various derived collection types into a polymorphic structure (options are an explicit choice or the use of base type plus xsi:type). (General note: Places in the schema where a polymorphic design is intended (different derived types in place of an abstract base type) are highlighted using model groups the name of which starts with 'Polymorphic'. @@If two similar groups names are present in the schema, only the first will be used, the one starting with '__' shows an alternative design!) Collection of modifier definitions of a single type: Point for type polymorphism (multiple derived types in place of an abstract base type) Collection of modifier definitions of a single modifier type. Requires an xsi:type specification in instance documents: "CertaintyModifiers": express the certainty of categorical or statistical statements ('perhaps', 'probably', 'almost certainly'). 'True-by-misinterpretation'- modifiers are included as a special case of 'certainly false'. "FrequencyModifiers": used to describe state frequency (usually, rarely, etc.). In descriptions frequency range estimates can also be stated numerically! "Spatial-/TemporalModifiers": only predefined, no specifications yet! It is believed that specifications may be desirable here in the future. Defining them requires significant work, however. "OtherModifiers": (manner, degree, intensity; e. g., 'strongly', 'weakly'). These convey their specific semantics only to human consumers (or processors parsing and interpreting label text). Collection of modifier definitions of a single type: Point for type polymorphism (multiple derived types in place of an abstract base type) (Unlike most similar poly- morphisms, this is not a collection; each set may occur only once.) Express the certainty of categorical or statistical statements ('perhaps', 'probably', 'almost certainly'). 'True-by-misinterpretation'- modifiers are included as a special case of 'certainly false'. Only predefined, no specifications yet! It is believed that specifications may be desirable here in the future. Defining them requires significant work, however. Only predefined, no specifications yet! It is believed that specifications may be desirable here in the future. Defining them requires significant work, however. Other, so far untyped modifiers of manner, degree, intensity (e. g., 'strongly', 'weakly'). These convey their specific semantics only to human consumers (or processors parsing and interpreting label text). Used to describe state frequency (usually, rarely, etc.). In descriptions frequency range estimates can also be stated numerically! Modifiers of degree or manner, specific to categorical states (very, strongly, etc.). 2. --- Simple Modifier references (used in coded descriptions). a) Abstract base types Abstract base type for an actual modification of a statement. In instance documents the following derived types will be used, either referring to a defined modifier category, or giving explicit numerical ranges/values. Refers to a any kind of modifier definition type (Terminology/Modifiers/ModifierSet/*/Modifier/@id) Abstract base type including all references to CharacterModifierDef Abstract base type including all references to StateModifierDef Abstract base type, adding ProbRangeAttributeGroup. Currently used only for Frequency modifiers, where exact frequency values may optionally be given in descriptions. (Attribute modeling group used in StateModificationPlusProbabilities/Markup. In theory the attributes could be inherited from UBIF complex type ProbabilityRange, but this would require multiple inheritance!) Lower value of a probability range (values 0 to 1 inclusive). Note: to specify a single, exact value set both lower and upper attributes to this value! Upper value of a probability range (values 0 to 1 inclusive). Note: to specify a single, exact value set both lower and upper attributes to this value! b) Derived types to be used in instance documents. Note that 'Frequency', 'Certainty', etc. may have been named 'FrequencyModifierRef', 'CertaintyModifierRef', etc.; they have been abbreviated to improve the readability of instance documents in case xsi:type would have been used. -- Reference to character modifiers: Refers to a certainty character modifier Refers to a certainty modifier (Terminology/Modifiers/ModifierSet/CertaintyModifiers/Modifier/@id) Refers to a spatial character modifier Refers to a spatial modifier (Terminology/Modifiers/ModifierSet/SpatialModifiers/Modifier/@id) Refers to a temporal character modifier Refers to a "Temporal" modifier (Terminology/Modifiers/ModifierSet/TemporalModifiers/Modifier/@id) Refers to a character modifier not covered by the types above Refers to an "OtherModifer" modifier (Terminology/Modifiers/ModifierSet/OtherModifers/Modifier/@id) -- Reference to categorical state modifiers: Refers to a frequency modifier (e. g., from within categorical character data) Refers to a Frequency modifier (Terminology/Modifiers/ModifierSet/FrequencyModifiers/Modifier/@id) Refers to a state modifier (e. g., from within categorical character data) Refers to an "StateModifer" modifier (Terminology/Modifiers/ModifierSet/StateModifiers/Modifier/@id) c) Groups combining the various derived types into a polymorphic structure (options are an explicit choice or the use of base type plus xsi:type). Modifier reference in CodedDescr.: Point for type polymorphism (multiple derived types in place of an abstract base type) (The element sequence in instance documents is informative!) Abstract modifier reference, applying a modifier to a descriptive statement. In instance documents a specific derived type must be used. [ATTR: ref] Modifier reference in CodedDescr.: Point for type polymorphism (multiple derived types in place of an abstract base type). In object-oriented programming the following choice should be replaced with a polymorphic design, using a collection of the common base type! (The element sequence in instance documents is informative!) [ATTR: ref (= for all elements above)] Modifier reference or value in CodedDescr.: Point for type polymorphism (multiple derived types in place of an abstract base type) (The element sequence in instance documents is not informative!) Abstract modifier reference, applying a modifier to a single categorical state. In instance documents a specific derived type must be given (e. g., xsi:type = 'Frequency'). [ATTR: ref, and depending on derived type: lower/upper] Modifier reference or value in CodedDescr.: Point for type polymorphism (multiple derived types in place of an abstract base type) Currently limited to a single frequency and modifier per state, in an explicit attempt to simplify the SDD data model! [ATTR: ref (= for all elements above)] Public notes or comments, for multiple languages. Applications may, e. g., report the text in brackets after the character state. The audience values must uniquely identify the Representations within each Note element (no duplicate audience allowed). Flag states, which applications may use as a template for new descriptions. Templates may be categorical states or coding status values (but currently not measures). Rules for finding templates: a) For class description (i. e. using Header/ClassName) find all higher classes (according to ClassHierarchy) and copy the template states from there. b) For unit/object description (Header/Unit) find the Class assigned to the Unit and copy template states directly from this class (@ and higher classes?). It is expected that the scoring is revised by an expert; thus template states may be defined in cases where they apply only to the majority of subclasses. @@Can this perhaps be handled by new kind of CodingStatus instead?@@ 3. --- Modifier references extended with Text element (used in natural language markup). a) Abstract base types Abstract base type adding a Text element for markup Abstract base type including all references to CharacterModifierDef Abstract base type including all references to StateModifierDef Abstract base type, adding ProbRangeAttributeGroup. Currently used only for Frequency modifiers, where exact frequency values may optionally be given in descriptions. b) Derived types to be used in instance documents. Note: each of the derived types could alternatively be derived from the simple reference (CertaintyMarkup from Certainty, etc.). To allow a polymorphic collection of any markup modifier type, all are derived from the abstract StatementModificationMarkup type, however. The derivation by restriction currently changes only the annotation of the ref attribute! To make it more specific, a future schema version could use modifier-specific simple types derived from ModifierRelationID as types of the ref attribute. -- Reference to character modifiers: Variant of Certainty (modifier reference), with Text inside. Refers to a Certainty modifier (Terminology/Modifiers/ModifierSet/CertaintyModifiers/Modifier/@id) Variant of Spatial (modifier reference), with Text inside. Refers to a Spatial modifier (Terminology/Modifiers/ModifierSet/SpatialModifiers/Modifier/@id) Variant of Temporal (modifier reference), with Text inside. Refers to a "Temporal" modifier (Terminology/Modifiers/ModifierSet/TemporalModifiers/Modifier/@id) Variant of OtherMod (modifier reference), with Text inside. Refers to an "OtherModifer" modifier (Terminology/Modifiers/ModifierSet/OtherModifers/Modifier/@id) -- Reference to categorical state modifiers: Variant of Frequency (modifier reference), with Text inside. Refers to a Frequency modifier (Terminology/Modifiers/ModifierSet/FrequencyModifiers/Modifier/@id) Variant of StateMod (modifier reference), with Text inside. Refers to an "OtherModifer" modifier (Terminology/Modifiers/ModifierSet/StateModifers/Modifier/@id) c) Groups combining the various derived types into a polymorphic structure (options are an explicit choice or the use of base type plus xsi:type). Modifier reference in NLD: Point for type polymorphism (multiple derived types in place of an abstract base type) (The element sequence in instance documents is informative!) Abstract modifier reference, applying a modifier to a descriptive statement. In instance documents, a specific derived type must be specified (e. g., xsi:type = 'FrequencyMarkup'). [ATTR: ref, and depending on derived type: lower/upper] Modifier reference in NLD: Point for type polymorphism (multiple derived types in place of an abstract base type) (The element sequence in instance documents is informative!) [ATTR: ref (= for all elements above)] Modifier reference or value in NLD: Point for type polymorphism (multiple derived types in place of an abstract base type) (The element sequence in instance documents is informative!) Abstract modifier reference, applying a modifier to a descriptive statement.In instance documents, a specific derived type must be specified (e. g., xsi:type = 'FrequencyMarkup'). [ATTR: ref, and depending on derived type: lower/upper] Modifier reference or value in NLD: Point for type polymorphism (multiple derived types in place of an abstract base type) (The element sequence in instance documents is informative!) [ATTR: ref (= for all elements above)] -------------------------------- END Modifiers --------------------------- ==== GLOSSARY START === Glossary entries are largely (but not exclusively) defined by audience-specific representations An entry in the terminological glossary, providing an attribute "id" by which the entry can be referred to. Audience-specific representations of a glossary entry. All audience-specific versions must define the same concept. If, for example, a fructification would be considered a 'berry' in French but not in Chinese (i. e. the definitions have different widths) and both concepts are used in different descriptions in a project, these concepts must be placed in different GlossaryEntry elements (not in different Representations).The different concepts could still be translated the to other languages (term allows phrases as well as words). [ATTR: audience] Multiple citations (publication + page number) Creators, Revision status, and dates of this audience-specific glossary definition. Constrained vocabulary (Structure, PropertyTerm, FunctionalConcept, MethodOrProcedure, ChemicalCompound, Modifier, NomenclatureTerm, OtherTerm) @@ Please comment on necessity of this! @@ Ontological relations General relations between terms Kind-of or is-a relationship (class inheritance hierarchy). This may inform about structures (a sepal is a kind of leaf), properties (metallic color is a kind of color, 2-dimensional shape is a kind of shape), property states (ochre is a kind of brown, subglobose is a kind globose), functional terms (anther is kind-of sexual organ) etc. {directional!} Each concept term may occur only once in the collection. Terms that have identical or nearly identical definition (e. g., technical terminology and plain English equivalent). {bidirectional} Each concept term may occur only once in the collection. A term of opposite meaning. Usually a single term, but may refer to two synonymous terms. {bidirectional} Each concept term may occur only once in the collection. Related concepts and terms. Used to express unspecific relations not yet expressed in the previous relationships. The list of related terms may also be viewed as a keywords list! {bidirectional} Each concept term may occur only once in the collection. Misinterpretations are especially interesting to improve error tolerance in identifications. May refer to structure and property terms. Example: Cyathium is misinterpretable-as flower. @@?? necessary in addition to structural kind-of relations? {directional} Each concept term may occur only once in the collection. (applicable only to parts/structures) Part-of (= aggregation) relationship (class composition hierarchy). Notes: Both KindOf and PartOf relationships define 'broader terms'. Multiple part-of parents are possible if different composition concepts exist. {directional!} Each concept term may occur only once in the collection. Only for structures. Example: The thumb is adjacent to the index finger, connected to the palm of the hand, and part of the hand. {bidirectional} {@@This term seems to be particularly problematic and will not be included in the first release of SDD} Each concept term may occur only once in the collection. Only for structures. Example: The thumb is adjacent to the index finger, connected to the palm of the hand, and part of the hand. {bidirectional} Each concept term may occur only once in the collection. Developmental and evolutionary relations To express developmental (temporal, = "develops from") processes that change one structure into another. Examples: seedling develops-from seed; zygote develops-from male and female gametes (i. e. multiple parent terms).{directional!} Each concept term may occur only once in the collection. All children and the parent are homologous. Usually applied to structure terms. {directional} Each concept term may occur only once in the collection. Used as an alternative to Phyl.- DerivedFrom if no ancestral term is available. {bidirectional} Each concept term may occur only once in the collection. Audience-specific definitions primarily aimed at human consumption, but with the intent to be useful to computer linguistic ontological agents as well. The head term (phrase of one to several words) representing the concept (structure, property, method, modifier, character, state, etc.) that is being defined. If different definitions exist for a term (e. g., following different scientific schools), a distinguishing label (to be added after Term + "sensu") should be provided. @@ alternative names for element: ConceptLabel, ConceptQualifier?@@ @@ConceptLabel has been added to the UNIQUE definition, but needs testing what happens when missing. Will terms still be required unique? Definition text, explaining the concept (meaning, semantics) of a structure, character, state, etc. A single paragraph long; but new line (
) may be used.
Optional URI of an external definition, in addition to the internal Definition above. Audience-dependent resources used in the definition (e. g., images with text, videos with speech, or images intended for audiences of different expertise). Each media resource may occur only once in the collection.
Refers to a Glossary entry (e. g., from tree nodes or character states) Refers to a glossary entry (Terminology/Glossary/GlossaryEntry) GlossaryEntry reference. Note: a model group is used so that the keyref identity constraint may be defined only once in a central place. Schema 1.0 does not allow to define keyrefs on types, only elements! Reference to the definition of term or concept in the glossary. This glossary entry may provide definitions for multiple audiences and may include media resources like images. [ATTR: ref] (This identity constraint is placed on a global element!) Collection of glossary entries (identified by their id) Defines the type of a concept tree (list of enumerated values to support application interoperability). ==== GLOSSARY END === -------------------------------- START Characters and dependent objects (states, statistical measures) --------------------------- 1. --- Character definitions (characters = data recording and analysis variables, depending on observed part, property, and observation or measurement methodology) a) Abstract base type and derived types to be used in instance documents. Defines a character in the terminology. Abstract base type, one of the extensions below must be used in instance documents Only a simple label for presenting characters in a flat list is defined here. (Abbreviated char. labels for tabular reports, natural language wordings, etc. can be defined in concept trees!) All Representations within a Label must have different language/audience values. Meta information, rating characters under various aspects. Intended to guide a best- next character algorithm. # Derived from AbstractCharacter to be used in instance documents (non-abstract type). Categorical data include nominal and ordinal data (DELTA types UM/OM and NEXUS types). Other terms for categorical data in statistics are 'qualitative data' or 'attributes'. The term 'attribute' has been avoided in SDD because it has different definitions in statistics, programming, databases, DELTA, etc. Both 'qualitative' and 'attribute' are ambiguos as to whether ordinal/ ranked variables are in- or excluded. Extension of the common character properties with those specific to categorical data (= 'states'). An optional specification of the kind of categorical character variable. The available measurement scales are 'nominal', and 'ordinal'. The distinction between linear ordering and other kinds of ordering is made separately! Any categorical variable can assume only a limited number of discrete values. Thus data recorded in a CategoricalCharacter are always discrete (= discontinous or meristic). However, the measured property may either be naturally discrete ('male/ female', 'aseptate/ uniseptate/ biseptate/muriform'), or it may be continuously varying and partioned into into discrete categories ('no/few/many hairs', 'orange to red'). Only in the latter case the between-operator can be used on neighboring states. Some characters may have complex states relations (trees) or the homology of multiple state may be unknown. A conservative phylogenetic analysis may want to treat each state as a separate column with a binary coding of presence/absence of a specific state value. What would be a good term for this? AnalyzeStatesSeparately AnalyzeStatesAsPresentAbsent TreatStatesAsIndependentVariablesInAnalysis Mappings between categorical states (e. g., subovate may be mapped to ovate to simplify identification choices). Each mapping defines a source and a destination state. Both From and To may point multiple times to the same state, but the combination From + To must be unique. Both state must be defined in the current character (validated through identity constraint!) [ATTR: ref] Both To and From should point to a different character than the current (not validated). No explicit character reference is required, since state references are unique within a dataset. [ATTR: ref] A state may be mapped to multiple other states in the same character, or multiple states may be mapped to a single state, but the combination of From and To may only occur a single time. (States are defined outside the type specific tree, since categorical states may be present in addition to numerical data) (The element sequence in instance documents is informative!) Local definition of a state [ATTR: id] Reference to a single concept state (as defined project-wide at a concept tree node); extended with an id definition so that the state in the context of the current character can be referred to from descriptions. [ATTR: id, ref] References to project-wide defined ConceptStates (defined at the nodes of concept trees) must be unique within each character. This is achieved by a uniqueness constraint (local to each character) on the ref attribute of StateReference. The id attribute is already unique through the general CharacterStateKey. The labels of character state definitions are required to be unique within each character and audience definition. Note that this includes both the locally defined states and the referenced concept states. # Derived from AbstractCharacter to be used in instance documents (non-abstract type) Quantitative data include data like the DELTA types IN/RN. They are not supported by NEXUS. Extension of the common character properties with those specific to numerical measurements Especially including a more detailed measurement scale. --- Note: Unlike the states in categorical characters, the applicability of statistical measures to a character is not defined in the character. Any measure used in a description constitutes valid information. However, a list of recommended measures for sets of characters may be defined in concept nodes. An optional specification of the kind of numerical character variable. The numeric scales are 'interval', and 'ratio'. Interval differs from Ratio that the 0-value is an arbitrary point (e.g. in °C/°F) so that ratios should not be calculated. If true, an application may issue a warning if sample measurements are not integer. Note that most statistical measures are real values for integer data (min/max/TotalRange being exceptions). Data are continous if theoretically any value is possible with a sufficiently fine measurement method. They are discrete if only certain values are possible and gaps between values exist. The value must be false for ValuesAreInteger= true. It may also be false for real numeric values (esp. for ratio data based on counts). An inclusive range defined through two attributes into which all measured values and most statistics (mean, extremes, ranges, etc.) should fall. Only dimensionless statistics (variance, sample size) are not to be tested against the plausibility range. This does not define a schema constraint; applications may ignore this, enforce it strictly, or issue warnings when violated. [ATTR: lower, upper] Circular data are a special kind of MeasurementScale='interval'. If this data element is present, lower and upper define the values joining the circle. Example: '0, 360' for compass values, '0, 24' for hours of day. Compare Zar 1984: 422ff. Mappings of numerical ranges to categories (like DELTA Key States) Each mapping defines a lower and an upper value to map numerical ranges to categorical states in the same character. A CompareWith attribute defines which kind of statistical measure (mean, confidence interval, or min/max) is used for the comparison. An inclusive range defined through two attributes ('lower', 'upper'), plus a 'comparewith' attribute defining the preferred kind of measure. [ATTR: lower, upper, comparewith] The type of statistical measure with which the mapping range defined through Lower/UpperValue is compared. This may be a central value (mean, median), the range (quantile, confidence interval, etc.) or the extremes (minimum/maximum). Currently only these three categories are defined. The categorical state corresponding to the range defined in From. [ATTR: ref] Refers to a measurement unit (like mm, µm, °C) defined in Terminology/General. To simplify integration of descriptions from different data sources, different (but compatible!) measurement units may be used in different descriptions. However, the unit set here is recommended for data input and reports. Further, this is the default measurement unit if numerical data in a description declare no unit. Measurement units apply only to those statistical measures not marked with IsDimensionless='true'. The number of figures in normal (non-dimensionless) measures assumed to be significant for all data in this character. Note that in sample values the 'significant' attribute also records the number of significant figures for individual measurements. Free-form information about accuracy of measurement?? Accuracy characterizes the how close a measured value is expected to be to the true value. @@ Free-form would mean language and audience dependent and can not be included in analysis, i.e. this would be a rather specific internal annotation. Any way to improve this? Ideally a numeric value for the accuracy of measurements would be desirable! Free-form information about precision of measurement?? Precision measures how close repeated independent measurements agree with each other (but not necessarily with the true value; compare accuracy). @@ Methods should ideally be defined in Glossary entries. Or should this become free-form text? [ATTR: ref] # Derived from AbstractCharacter to be used in instance documents (non-abstract type) Extension of the common character properties with those specific to color measurements (i.e. color expressed as a color range/area, rather than as named categories). (Not yet used!) Mappings of color polygon values to categorical states An inclusive range defining a color range through color vertices forming a polygon in color space. The categorical state corresponding to the range defined in From. [ATTR: ref] Note: The ColorRangeCharacter above is only one example of future derivations expected, like algorithmically described shapes, molecular sequences (genome/proteome), or molecular patterns (RFLP, AFLP, etc) b) State definitions within CategoricalCharacter. Abstract base type and derived types to be used in instance documents. For categorical states. Used in concept (= 'project-wide') and local character state definitions. Any use of a character state in descriptions is a reference to an object of this type or one of its derivations. If present and true, the current state/ category allows unconstrained text not tied to a truly analytical state. Such states (which may be labeled: 'Text', 'Other:', 'none of the above, please specify:') prevent, especially if the terminology is still under development, that during data entry potentially inappropriate category must be chosen. DELTA text character are modeled using these states, but they also can occur in combination with categorical states. UnconstrainedText states are somewhat similar to the 'unknown' coding status, since the free-form text information is not available to most analytical processors (incl. identification programs). (This 2nd annotation contains detailed informations not entered in the first annotation, which is visible in the standard schema diagrams.) The name for this data element was contentious. Proposals were: Bob: IsIsolatedState with default false. Gregor: IsAnalyticalState, StateComparisonIsRecommended, or IsWellDefinedState, all with default true. ImpreciseEquality with default false? Furthermore, one may want to make a distinction between a category saying "enter free form text here" and one explicitly saying "none of the above". However, the action of choosing a separate free form text state instead of scoring a category (if available) and adding free-form note text, implies that choosing free-form text is always of the type "none of the above", whether this is explicitly stated in the text state label or not. CharacterAbstractStateDef plus a new, character-local CharacterState id CharacterAbstractStateDef plus ConceptState id, used to define generic states at concepts that can be re-used in multiple characters c) Character and state references Refers to a character (e. g., from within concept trees or from descriptions). It consists only of a reference to a Character definition id. ref refers to a character definition id (Terminology/Characters/Character) Refers to a character state (e. g., from descriptions). It consists only of a reference to a Character state definition id. The ref attribute refers to a character state id. A collection of state references (CharacterStateRef type) [ATTR: ref] Refers to a project-wide definition of a categorical state at a concept node Refers to a concept state (those defined within the concept tree, which may be used in multiple characters). d) Statistical measures: The base semantics and labels are already available through UBIF. At concepts node further elaboration may occur: a) wording and value formatting b) definition of recommended measure sets. A kind of local extension of the base definition of a statistical measure; used inside in concepts, adding, e. g., formatting information. Properties describing machine-readable partial semantics for a statistical measure. Provided to support generic application code that continues to function if additional measures are defined. Simple statistical measures not requiring a parameter (mean, variance, sample size). Statistical measures with a parameter value like confidence interval, percentile, etc. A default value for the parameter of the measure. Example: 0.95 for the upper limit and -0.95 for the lower limit of the 95% confidence interval. Format rules as used in the xslt format-number function. # = significant digits; 0 (zero) = signif. digits or insignif. leading/trailing zeros; '.' = decimal point, ',' = group separator. Note that this is NOT culture sensitive in xslt!!! - Examples: "0,0#" formats 5 / 0.59 as 5,0 / 0.59. "# ###,#" formats 5000 / 0.59 as 5 000 / .6. (Rules for exponential formats or percent may be added in later versions of SDD!) @@ (to be deleted if the simple pattern approach above is sufficient!) @@ This or a format string ?@@ @@ This or a format string ?@@ @@ This or a format string ?@@ Note: How can we handle measures as well as values from repeated observations (samples) with the same mechanism? When mapping numerical ranges to categorical states (essentially creating a histogram), several methods which statistical measures are used for the mapping are possible. Using the central value compares a point with the mapping range, whereas using ranges or extremes results in a comparison of two kind of ranges for overlap. Only the central value method can guarantee an unambiguous partitioning into categories. However, the ranges or extremes methods may be desirable because of their improved error tolerance. Central measure -- The first central measure encountered (mean, median, mode) is used as the basis of comparison. If none is found, but ranges or extremes are present, a central value is calculated based on the these. Ranges -- Any ranges that are not the extremes (quantile, percentile, confidence interval, mean plus/minus s.d., etc.) is attempted to use for comparison. If none is found, Extreme values are used. Extremes -- The extreme range values (= minimum and maximum) are used as the basis of comparison. e) Group combining the derived character types into a polymorphic structure (options are an explicit choice or the use of base type plus xsi:type). Character definition: Point for type polymorphism (multiple derived types in place of an abstract base type) Collection of character definitions; requires an xsi:type specification in instance documents. Character definition: Point for type polymorphism (multiple derived types in place of an abstract base type) Non-abstract types derived from AbstractCharacter. In OO programming, a polymorphic collection of the base type may be used! --------- The following types are used in descriptions or identification key to code descriptive data by reference to characters, states, and modifiers defined in the Terminology. 2. --- Character references in coded descriptions: SummaryData a) abstract and non-abstract derived types used in coded descriptions Note: The non-abstract derived types are to be used in instance documents. The type names have been shortened to simplify instance documents, especially if an xsi:type would be used (Char xsi:type='CatSummaryData'). Abstract base type. Used in CodedDescription/CodedData/Char to make statements for a single character in a class or unit. [ATTR in CharSummaryData base type:] ref (= to char. definition) origin (= enumeration; data may be original data or derived from other sources like calculation, mapping, aggregation/ generalization, inheritance @@Is there a better name for 'origin'? Character modifiers, modifying the all categorical states, statistical measures, etc. collectively. A character may occur multiple times in a description with different modifiers ('in winter/summer', 'at base/tip', etc.) or origins (e. g. from samples). If origin='Calculated' and data are based on a specific sample that is present within the description, this sample may be identified here. [ATTR: ref] Media specific to the character and the current object or class described. Example: microscopic picture of spore shape in a specimen. Coding status values like Inapplicable, unknown, etc.; may have a free-form Note, but not modifiers. [ATTR: ref] Note: In a unit (= specimen) description this should be an alternative to categorical or numerical data and limited to 1 status value per character and (not enforced by schema). However, for classes (e. g., a genus) it is up to the aggregation/generalization process whether to create multiple status values ("unknown or not applicable") or not. Public notes or comments on the entire character statement, i. e. all status values and states, measures (depending on type), etc. together. Multiple languages are supported. Applications may, e. g. report the text in brackets after all other data. The audience values must uniquely identify the Representations within each Note element (no duplicate audience allowed). Provenance of value/state. The current data may be original data or may be cached information derived from other sources. The origin of the derivation may be a calculation, a mapping, an aggregation/generalization (class hierarchy, from below), or an inheritance (class hierarchy, from above). # Derived from abstract CharSummaryData to be used for categorical (char. state) data in instance documents (non-abstract type) Type-specific extension of the base character data type. States are 'scored' in a description by referring to a state defined in the current character. [ATTR: ref] Distinguishes different types of state collections. 'AndSet' and 'OrSet' define state distributions that are not explicitly ordered in instance documents. Applications may reorder states using the state order defined in Terminology or state frequency values/ranking. For the corresponding 'AndSeq'/'OrSeq' the sequences of states in instance documents defines the preferred order of states (distinguishing, e. g., between 'round or elliptic' and 'elliptic or round'). WithSeq expresses a specially worded form of 'AndSeq'. With 'Between' the scored states form a range around the true value ('orange' to 'red'). # Derived from abstract CharSummaryData to be used for numerical (statistical measures) data in instance documents (non-abstract type) Type-specific extension of the base character data type. Refers to a measurement unit like mm, µm, °C, defined in Terminology/General. If missing, the 'recommended measurement unit' declared in the character definition is to be assumed. Note: although each data item may use different units, they should all be compatible and convertible (like °F/°C/°K, ml/mm3). This is not controlled by the schema! # Derived from abstract CharSummaryData to be used for numerical (statistical measures) data in instance documents (non-abstract type) An inclusive range defining a color range through color vertices forming a polygon in color space. b) types used inside the CharSummaryData-derived types A categorical state including frequency, state modifier, and Notes Similar to StateData, this one is intended for CodingStatus references. It support notes, but no modifiers! [ATTR: ref] Public notes or comments, for multiple languages. Applications may, e. g., report the text in brackets after the status value wording. The audience values must uniquely identify the Representations within each Note element (no duplicate audience allowed). (Compare discussion in StateData) Measure references and values in CodedDescr.: Point for type polymorphism (multiple derived types in place of an abstract base type) --- Summary statistics (univariate statistical measures) like distribution parameters, sample size, etc. Two alternative types (with/without parameter) may occur in any sequence. (The sequence of elements in instance documents is not informative and may be changed at any time.) (The element sequence in instance documents is not informative!) Abstract measure reference, applying a modifier to a descriptive statement. In instance documents a specific derived type must be given (e. g., xsi:type = 'UnivarStatMeasureData'). [ATTR: ref] --- Individual measures have no separate Modifiers/Notes. However, a numerical character may occur multiple times in coded descriptions, e. g., to separately express width at base and at center. Measure references and values in CodedDescr.: Point for type polymorphism (multiple derived types in place of an abstract base type) --- Summary statistics (univariate statistical measures) like distribution parameters, sample size, etc. Two alternative types (with/without parameter) may occur in any sequence. (The element sequence in instance documents is not informative and processors may reorder it.) (The element sequence in instance documents is not informative!) Simple measures like mean, variance, or sample size. [ATTR: ref, value] Statistical measures like confidence interval or percentile, expressed using an additional parameter par. [ATTR: ref, par, value] --- The ref attributes in both types point directly to enumerations in UBIF (UnivarStatMeasureEnum/WithParam). An elaboration for measure definitions is supported at concept nodes but optional. --- Individual measures have no separate Modifiers/Notes. However, a numerical character may occur multiple times in coded descriptions, e. g., to separately express width at base and at center. c) Group combining the derived character types into a polymorphic structure (options are an explicit choice or the use of base type plus xsi:type). Character reference in CodedDescriptions: Point for type polymorphism (multiple derived types in place of an abstract base type) (The element sequence in instance documents is not informative and may be changed at any time.) [ATTR: ref] Within a single coded description each character state reference may occur only once, i. e. it is not possible to state "flowers blue, or blue". (The uniqueness constraint must involve the id of the description, otherwise no two descriptions could use the same character! However, the character reference is not necessary, since state ids are unique across characters.) Note that this still allows repeated occurrence of character states in the Sample containers. Within a single coded description and within each character, a coding status reference may occur only once, i. e. it is not possible to state "not applicable, or not applicable" (it is possible to state "unknown, or not applicable"). (The uniqueness constraint must involve the id of the description, and the character id, since coding status values are not defined globally for all characters. Character reference in CodedDescriptions: Point for type polymorphism (multiple derived types in place of an abstract base type). In object-oriented programming the following choice should be replaced with a polymorphic design, using a collection of the common base type! (The sequence of elements in instance documents is not informative and may be changed at any time) [ATTR: ref] Within a single coded description each character state reference may occur only once, i. e. it is not possible to state "flowers blue, or blue". (The uniqueness constraint must involve the id of the description, otherwise no two descriptions could use the same character! However, the character reference is not necessary, since state ids are unique across characters.) Note that this still allows repeated occurrence of character states in the Sample containers. Within a single coded description and within each character, a coding status reference may occur only once, i. e. it is not possible to state "not applicable, or not applicable" (it is possible to state "unknown, or not applicable"). (The uniqueness constraint must involve the id of the description, and the character id, since coding status values are not defined globally for all characters. [ATTR: ref] Within a single coded description and within each character, a coding status reference may occur only once, i. e. it is not possible to state "not applicable, or not applicable" (it is possible to state "unknown, or not applicable"). (The uniqueness constraint must involve the id of the description, and the character id, since coding status values are not defined globally for all characters. [ATTR: ref] Within a single coded description and within each character, a coding status reference may occur only once, i. e. it is not possible to state "not applicable, or not applicable" (it is possible to state "unknown, or not applicable"). (The uniqueness constraint must involve the id of the description, and the character id, since coding status values are not defined globally for all characters. 3. --- Character references in coded descriptions: SampleData a) abstract and non-abstract derived types used in sample data Abstract base type. Used in CodedDescription/SampleData/ Sample/SamplingUnit. [ATTR: ref (to def. of character)] # Derived from abstract CharSampleData to be used for categorical (char. state) data in instance documents (non-abstract type) States are 'scored' in a description by referring to a state in the character definition. All notes and modifiers are applicable to this element. [ATTR: ref] # Derived from abstract CharSampleData to be used for numerical data in instance documents (non-abstract type) in coded descriptions (Sample/ SamplingUnit). [ATTR: value (xs: double, a directly measured/observed value. Not for statistical measures; these cannot occur in sampling units)] Public notes or comments, for multiple languages. Applications may, e. g., report the text in brackets after the value. The audience values must uniquely identify the Representations within each Note element (no duplicate audience allowed). A single value of a single measurement for a character in a sampling unit. This may not be used for ranges, minimum, mean, etc., which cannot possibly occur on sampling units. Significant figures. 1.300 has 4 significant figures, 72000 may have 2, 3, or more significant figures. # Derived from abstract CharSampleData to be used for ColorRange data in instance documents (non-abstract type) An inclusive range defining a color range through color vertices forming a polygon in color space. b) Group combining the derived character types into a polymorphic structure (options are an explicit choice or the use of base type plus xsi:type). Character reference in SampleData: Point for type polymorphism (multiple derived types in place of an abstract base type) (The sequence of elements in instance documents is not informative and may be changed at any time) [ATTR: ref] Within a single character inside a sampling unit each character state reference may occur only once. Character reference in SampleData: Point for type polymorphism (multiple derived types in place of an abstract base type) In object-oriented programming the following choice should be replaced with a polymorphic design, using a collection of the common base type! (The sequence of elements in instance documents is not informative and may be changed at any time) [ATTR: ref] Within a single character inside a sampling unit each character state reference may occur only once. [ATTR: ref, value] Within a single character inside a sampling unit each character state reference may occur only once. [ATTR: ref] 4. --- Character references in coded descriptions: SampleData a) abstract and non-abstract derived types used in natural language descriptions. Lacking multiple inheritance mechanisms in xml schema, these Markup versions have been derived independently. They are designed to be closely related to corresponding types in the coded description, however. Abstract base type. Used in NaturalLanguageDescriptions. Note: although Text and CodingStatus scoring is common to all derived types, it can not be defined here. The markup of natural language should follow the original text sequence and type derivation would impose an xml schema sequence constraint. # Extends the abstract CharacterMarkup for use with categorical (char. state) data Inapplicable, unknown, etc. It may have an associated Note, but no modifiers. [ATTR: ref] Character state data permitting Text elements within. [ATTR: ref] Text related to a specific state that is not covered by either the state definition or modifiers. When converting NLD to coded descriptions, this will become a free-form text note. Any text within a char. that has not yet been identified as one of the following elements. [ATTR: parsed; normally = false] # Extends the abstract CharacterMarkup for use with numerical (statistical measures) data as well as a list of sample measurement values. Inapplicable, unknown, etc. It may have an associated Note, but no modifiers. [ATTR: ref] A univariate statistical measures like mean, variance, or sample size. [ATTR: ref, value] A univariate statistical measures like confidence interval or percentile, expressed using an additional parameter. [ATTR: ref, par, value] The value is stored in an attribute of type double. The original text of the value may follow inside in the optional Text element. Note that the string in text will usually use a different number format than the English format required by xml [ATTR: value] Text related to a sample value. Any text within a char. that has not yet been identified as one of the following elements. [ATTR: parsed; normally here = false] (A "ColorRangeMarkup" is not supported at the moment, since color polygon measurement data embedded in natural language descriptions are not known!) b) The following NLD type refers to concept nodes and has no corresponding types in SummaryData/SampleData: Used in NaturalLanguageDescriptions. Refers to concepts (i. e. nodes defined in concept trees) This is necessary if markup is incomplete. [ATTR: parsed (= should implicitly be false, not modeled!)] c) types used inside the CharacterMarkup types Variant of CodingStatusData to be used inside the NaturalLanguageDescription markup container. Additional information regarding the coding status The text representing the coding status information itself Variant of StateData to be used inside the NaturalLanguageDescription markup container. Text related to a specific state that is not covered by either the state definition or modifiers. When converting NLD to coded descriptions, this will become a free-form text note. Similar to ReportedNote in coded descriptions, but without the Representation/language layer. Used to markup parts that do not correspond to the terminology and shall remain free-form text when a conversion to coded description is attempted. For single values (singleton observation or values in a sample). Ultimately this should contain only the value itself. Text related to a sample value. A single value of a single measurement for a character in a sampling unit. This may not be used for ranges, minimum, mean, etc., which cannot possibly occur on sampling units. (Used inside Quantitative markup) (Used inside Quantitative markup) d) Group combining the derived character types into a polymorphic structure (options are an explicit choice or the use of base type plus xsi:type). Character reference in NLD: Point for type polymorphism (multiple derived types in place of an abstract base type) During NLD parsing usually the states are initially recognized. However, character markup can always be deduced from the associations between char. and states defined in the terminology. [ATTR: ref] Character reference in NLD: Point for type polymorphism (multiple derived types in place of an abstract base type) In most cases initially the states are recognized, but character markup can always be deduced from the associations between char. and states defined in the terminology. [ATTR: ref] [ATTR: ref] -------------------------------- END Characters and dependent objects (states, statistical measures) --------------------------- Concept tree and node definitions Defines an entire concept tree (which may be a single tree node containing a flat list) Label to identify the current object in the user interface All Representations within a Label must have different language values. Concepts describing the entire tree using a constrained vocabulary to support application interoperability The type of a tree is constrained to an enumerated list to support application interoperability. Usage of concept tree that is intended by its designers; constrained to an enumerated list to support application interoperability. Important Roles are InteractiveIdentification, NaturalLanguageReporting, or Filtering. Trees that have no value are implicitly visible in applications only when designing the terminology! They are not normally shown to consumers of descriptive data. Each enumerated role value may be listed only once. True if the intention of the designer of a concept tree is that all characters should be included in the tree. A terminology editing application may use then warn about missing characters or directly offer inserting newly created characters in all such trees. @@Only a placeholder for discussion! Many concept trees, especially those defining structures are specific to taxa! Since taxa are generalized to classes in SDD, this should not be called "TaxonomicScope". However, "ClassScope" seems to be very confusing as well. The root node of the tree. Note that it has a label in addition to the tree label. The tree label uniquely identifies a tree when selecting it among a list of all trees, whereas the root node label can be very short and is shown when a single tree is displayed. [ATTR: id] A node in a concept tree. Concepts may be basic properties (color, shape, texture), structural types (fruit types), methods (naked eye, hand lens, microscope) or other hierarchical generalizations that can be applied to characters (e. g., relative region: tip versus base of structure) Tree nodes may remain unlabeled! All Representations within a Label must have different language/audience values. A set of project-wide state definitions tied to the part (e. g., for fruit: capsule, berry, nutlet, ...), property (e. g., for color: red, green, ..., for shape: round, ovate, ...), method, etc. described in the current concept tree. ConceptStates become operational for descriptions only when a StateReference has been added in a specific character. The definition of concept states is identical to the local definition of states within a character. Using concept states simplifies the management of terminology and improves data analysis (states from different characters can be compared if they refer to identical concept states). [ATTR: id] The labels of concept state definitions are required to be unique within each concept state set (i. e. at a node in the tree) and audience definition. If a concept state has been added to the set above, a state ref. should immediately be added to characters listed here. This occurs not through schema mechanisms, but is a contract with SDD applications. Only applications modifying concept states/measures sets or the Character references herein need to fulfill this contract. [ATTR: ref] References to project-wide defined ConceptStates set (i. e. nodes within concept trees) must be unique within each character. Inheritable def. automatically apply to all characters/concepts starting at this node. The modifiers contained in the listed modifier sets are considered applicable to all characters placed in the current branch of the concept tree. Note. In descriptions, all modifiers are prinicpally valid in all characters. However, editing tools are expected to offer only the recommended modifiers defined here. Reference to a set of modifiers. The element sequence in instance documents is not informative! [ATTR: ref] A set of univariate statistical measures (e. g., mean, min, max, s. d., sample size) considered applicable to all numerical (sic!) characters placed in the current branch of the concept tree. In descriptions, all measures are valid in all numerical characters. However, editing tools are expected to normally offer only the recommended measures defined here. In addition to listing measures, these elaborations provide for improved report generation (wording, value formatting). Note: Statistical measures applicable to ordinal or nominal data (min, median, mode, etc.) are yet supported, since they can easily be calculated ad-hoc from the frequency distributions of categorical states that are supported. Within each description, the applicability of all characters references within the branch or the tree starting with the current concept may optionally be governed by rules depending on the presence of categorical states in the same description. Note: rules for individual characters (rather than a set) can be defined in the terminal nodes. By default the characters below this node are inapplicable. They become applicable if any of the listed controlling character/state combinations is present in a description. Modifier references must be unique within each set (but different sets may contain the same modifier) By default the characters below this node are applicable. They become inapplicable if any of the listed controlling character/state combinations is present in a description. Modifier references must be unique within each set (but different sets may contain the same modifier) Meta information, rating characters under various aspects. Intended to guide a best- next character algorithm. A node either contains other nodes, or contains a single character reference. It may also be empty to decouple the definition of hierarchies (e. g., a complete part hierarchy) from characters defined at a given moment. Element may be missing, which results in the option to have empty nodes with neither a character nor further nodes. [ATTR: id] Characters are the 'leaves' of the tree. Each character is embedded in a node providing labeling information in the context of the current tree (which is usually different from the default character label). A single character may appear in several places in the tree, if this is desired. [ATTR: ref] Concept tree and node references Refers to an entire concept tree Refers to a node in a concept tree (Terminology/ConceptTrees/ConceptTree/...) Refers to a node in a concept tree (e. g., to refer to a set of concept states defined at this node) Refers to a node in a concept tree (Terminology/ConceptTrees/ConceptTree/...) ==== TERMINOLOGY END === ==== DESCRIPTIONS START === Descriptions are either natural language with optional markup or coded descriptions. Both are derived from the same base type: Abstract base type for NaturalLanguageDescription and CodedDescription. The id attribute is currently not used in keyrefs from within this schema. However, it is considered generally useful to uniquely identify descriptions in federated situations. Subject of the description is either an abstract class (e. g., a biological species) or an individual object or unit (e. g.,a specimen). Refers to a class name (= in biology a taxon name) [ATTR: ref, @@check classifier design: add. attributes?] Refers to an individual physical object (e. g., a biological specimen). This may refer to observed objects as well as to collected and preserved objects. The identification (= a class name) is defined in the ExternalDataInterface/Units list. [ATTR: ref] A description may be further defined through a published data source for the nat. language or coded description. If Citation is missing, it is assumed that the compiler or editor of the data is the original source of information. A description may have a limited geographical scope, if geographical variability is know to exist or is expected. @@Should we define additional scopes for the description, e. g., host plants for pathogens, or should be simply provide a free-form text element like this? @@Also compare the Scope/GeographicalScope and Scope/SourcePublications structure in the metadata for the entire dataset. This should probably be reflected here! Creators, Revision status, and dates of individual description (compare RevisionData in Metadata) Contains resources like images that are not specific to a character (else add them to character elements below). Each media resource may occur only once in the collection. Defines a id for a coded or natural language description Descriptions entered as free-form text with optional (and potentially incomplete) markup referring to concepts (= char. tree nodes), characters, and states as defined in the terminology. Retains the full, unchanged original wording of the natural language description. Concept, character, or state markup may be added (partial or complete), but these should not change the original wording sequence. In contrast to CodedDescriptions, no uniqueness constraints are defined. Characters may occur multiple times and even a state may occur multiple times within a character (e. g., if differences are treated by by modifiers in the terminolgy, but in the NLD other states occur between them. The element is optional to allow generation of empty descriptions and to support descriptions with media resources alone! (The element sequence in instance documents is informative!) This is necessary if markup is incomplete. [ATTR: parsed (= should implicitly be false, not modeled!)] Markup of concepts above the character level, e. g., organism parts or methodological sections. [ATTR: ref] Coded description data are highly controlled by the vocabulary and structures defined in the Terminology, using references to characters, states, modifiers, numerical values for measurements. They also support a limited amount of free-form text (in Notes or Annotation only). Separating data and terminology allows rearranging and refactoring the terminology, multilingual support through central terminology translations, and multiple hierarchical views. Coded descriptions must fulfill more rigorous consistency requirements than natural language descriptions and are more suitable for analysis. Furthermore, language-dependent annotations are minimized so that data can be easily reorganized and translated into multiple languages. Summary data for aggregated or summarized data (using statistical measures, state distributions, etc.). The element is optional to support descriptions containing only sample data or media resources. Note: Characters are NOT required to have unique ref attributes! Data for one character may be recorded with different modifications (in spring/autumn, at tip/base). Raw sample data are recorded here. The analysed and generalized (e. g. using statistical measures) results are normally also reflected under SummaryData (with origin='calculated' and BasedOnSample identifying a sample ID. (The sequence of Sample elements in instance documents is not informative and may be changed at any time!) A container for direct ('raw') measurement results in a study. All sampling observations are assumed to be made under identical conditions. Descriptions may contain an unlimited number of Samples. [ATTR: id, random (= is random sample, if false sample may or may not be biased)] [Currently not used!] Refers to either a natural language or coded description Refers to a specific sample (//CodedDescription/SampleData/Sample) A special subtype of CodedDescription are original sampling data, which are organized into referable Sample containers: A container for a sampling, with repeated sampling units, each of which may record multiple characters that are observed together. Public notes on the sample (circumstances, etc.) that are not already identified in the description header. Multiple languages are supported (although rarely required). The audience values must uniquely identify the Representations within each Note element (no duplicate audience allowed). Optionally a fully or partial date/time of start and end of the sampling event may be recorded. A sampling unit may be an individual organism, a leaf of a tree, a piece of tissue, etc. In each sampling unit multiple characters may have been observed together ('paired observations'). Example: 'leaf shape, length, and width' of a single leaf). Value frequencies (e. g., '2.3': observed 4 x) are not supported; they are useful when only a single character variable is supported, but complicate paired observations unnecessarily. Char. values with a frequency should be entered in repeated SamplingUnits. (The sequence of SamplingUnit elements in instance documents should be preserved. It has no analytical semantics, but it may be relevant if data entry is compared with the source.) Within a single SamplingUnit each character reference may occur only once. Multiple SamplingUnits in an Sample may and should use the same characters. (The latter, i. e. consistent presence of characters, is not validated by the schema.) Defines a id for a sample. This is used when analysis data in coded description are based on a specific sample If true, the sample is a random sample. If false, the sample may or may not be biased. Refers to a specific sample inside CodedDescriptions Refers to a specific sample (//CodedDescription/SampleData/Sample) ==== DESCRIPTIONS END === ==== IDENTIFICATION KEYS START === Stored identification keys (esp. manually designed as opposed to automatically generated) are stored in a separate section: Defines a stored identification key (dichotomous or multifurcating key) that has been digitized from printed publications or manually created to express expert knowledge that would not be available in dynamically created dichotomous keys (using Ratings from terminology and a 'find next best character' to minimize the average search tree). Label to identify the current object in the user interface. All Representations within a Label must have different language values. If the key is derived from a published data source this is cited here. If Citation is missing, it is assumed that the compiler or editor of the data is the original source of information. A description may have a limited geographical scope, if geographical variability is know to exist or is expected. @@Should we define additional scopes for the description, e. g., host plants for pathogens, or should be simply provide a free-form text element like this? @@Only a placeholder for discussion! Unit/Class descriptions do not have taxonomic scope, only the project. An identification key could have it, but on the other hand it could also be inferred from the taxa contained in the key nodes!!! Creators, Revision status, and dates for this key. The root node of the stored identification key. Note: Applications will generally ignore the Statement element in the root node when the key is selected as a whole. However, if a key shall be used both as independent key and as a branch node in another key, Statement must be defined. In both cases CodedStatements may be used to define statements that are applicable to the entire key (i. e. they are implied in the selection of the key). [ATTR: id] A node in a stored identification key, containing the lead statement to follow and optionally the next question, or terminating at class identification, subkey, or node reference. The id attribute for nodes in a stored key is required because an xs:key constraint exists on this attribute. It seems impossible in xml schema to make existence of ids optional but require those present to be unique and the target of keyrefs that point to these existing keys. If the user agrees with the statement (expressed as free-form text), then the node will be followed. (The audience-specific representations provide abbreviations, which in picture keys may be used as alt-text of the image. ExportToken will usually not be used, but a separate type seemed to be unnecessary.) The audience values must uniquely identify the Representations within each Statement. Statements in coded terminology that are equivalent to the Statement text. This information may be used to switch between stored identification keys and interactive identification (multiple entry keys). Boolean statements like 'calyx black or petals white or cream (but not yellow)' can be expressed. Within CodedStatements, each state reference may occur only once. A node contains either further nodes (= Leads), a single reference to another identification key or key node, or a class reference (biology: a taxon) as the result of an identification. Optional question that is answered by the Statement elements in each of the Leads below. Note that in most traditional keys the question is empty and only the alternative statements are written. The audience values must uniquely identify the Representations within each QuestionText. The set of alternative lead statements (which may be answers to QuestionText) At least two alternatives leading further on in the key must be provided. This element defines the tree recursively. Refers to a class name (in biology a taxon name) [ATTR: ref, @@check classifier design: add. attributes?] Refers to another stored identification key in the Keys section. This feature allows cross references between keys. [ATTR: ref] Refers to arbitrary identification key nodes within the current or other keys, to allow building reticulations into the key. @@ This may need further discussion and testing! Allowing to jump into other keys requires the leads (=node) key to be unique across all keys, not only within a key!@@ [ATTR: ref] Refers to an entire stored identification key (e. g., if a key is referenced as a subkey from within another key) Refers to the key attribute of an entire stored identification key Refers to a node in a stored key (e. g., for reticulating keys) Refers to a node in a stored identification key Boolean combination of states are currently supported only in CodedStatements inside IdentificationKeys. A discussion about whether this is generally desirable is encouraged! boolean operators, modeled after usage in MathML unary boolean function n-ary boolean functions (inclusive or, 'and/or') (exclusive or, 'either/or') Choice of state, measure, recursion. The 'group' schema model has been used because of different multiplicity of unary and n-ary functions apply is a kind of bracket around a function, the (boolean) function is defined by the first element inside. Modeled after MathML2. @@we have to discuss, whether these should be full coded data types (including modifiers) or not States are 'scored' by referring to a state in the character definition. All notes and modifiers are applicable to this element. [ATTR: ref] ==== IDENTIFICATION KEYS END === ==== Other basic types used by SDD (compare also the types used by UBIF) Used in descriptive data (not in terminology): Collections of states in instance documents may be ordered (sequence) or unordered (set), and may be connected with 'and', 'or', 'with', or 'between'. Since set/sequence and operators are dependent on each other, the two aspects are combined into a 'model' enumeration Unordered set of states, combined with 'or' -- Multiple states scored for a character in a description form a set. The order of states has no special meaning and may be changed. In natural language output the states should be combined with 'or' to express that in individual objects (that belong to the class that is being described), the states may occur together or alone. Ordered sequence of states, combined with 'or' -- Multiple states scored for a character in a description form a sequence, i. e. the state order carries some semantics and should be preserved in output. The sequence semantics is not explicitly defined, but intelligable to human consumers and presumably relates to some concept of relevance or importance. In natural language output the states should be combined with 'or' to express that in individual objects (that belong to the class that is being described), the states may occur together or alone. Unordered set of states, of states, combined with 'and' -- Multiple states scored for a character in a description form a set. The order of states has no special meaning and may be changed. In natural language output the states should be combined with 'and' to express that in any individual object (that belong to the class that is being described), the states will always occur together. Example: two colors that occur together in a pattern. Ordered sequence of states, combined with 'and' -- Multiple states scored for a character in a description form a sequence, i. e. the state order carries some semantics and should be preserved in output. The sequence semantics is not explicitly defined, but intelligable to human consumers and presumably relates to some concept of relevance or importance. In natural language output the states should be combined with 'and' to express that in any individual object (that belong to the class that is being described), the states will always occur together. Example: a black part with small red markings, is more appropriately described as 'black and red' than 'red and black'. One state occurring together with others of secondary relevance. -- This is a special case of AndSeq, and in many circumstances (except natural language generation) may be treated as AndSeg. Example: "Green with brown" (often this may be two characters, e. g. base color and dot color). True value lying between (usually two) states -- Example: "Between oval and elliptic" = "Oval to elliptic". Defines the type of a concept tree (list of enumerated values to support application interoperability). Categorizing characters into basic property types (e. g., color, 2-dim. shape, 3-dim. shape, surface texture, taste, smell, behavior, physiology, measurements, etc.) greatly improves the analysis and management of larger character sets and is therefore recommended. [@@ Only a single concept tree should have this hierarchy type. (not enforced in schema, how can it be enforced? Other types occur multiple, i. e. one cannot make a UNIQUE statement on attribute! @@] A hierarchy that organizes characters by observation method or instrumentation, e. g., field observation, light microscopy, electron microscopy, molecular methods, culture techniques, etc. A hierarchy that organizes characters by a morphological or anatomical "contains" or "part-of" hierarchy: plant = root/stem/leaf, leaf = base/stipules/petiole/lamina, etc. A hierarchy that organizes structural parts in a kind-of hierarchy (e. g., a 'teliospore' is a kind of 'spore') Used for concept trees that fall into none of the categories property, method, part. Such trees may be intended only for internal purposes (e. g., defining dependency rules) or for browsing by the user. PresentationTable concept trees are small sets of a usually a few characters that allow to display data in a tabular arrangement. It is possible to define tables in more than 2 dimensions. By default the innermost dimension is considered cells in a row, the next rows in a table. Any further dimension may be displayed as multiple 2-dimensional tables one below the other. However, applications may also offer a browser based on pivot tables. - Note: Trees of type PresentationTable should not be offered in the user interface when selecting a browsing tree. A concept tree of type "SubsetFilter" is intended only for the purpose of filtering characters. It will often be a flat list of characters. Applications should not offer it as a choice when the user selects a hierarchy for displaying or reporting purposes. Note that conversely, the filter selection dialog in applications should not be restricted to trees of type SubsetFilter. Any concept tree, including part, method or property hierarchies may be used as a filter to define character subsets. Defines the intended roles that a designer may assign to a concept tree (list of enumerated values to support application interoperability). Setting this value in a concept tree is a recommendation to applications with a user interface to offer this tree for editing the description data set (the application may, however, enable the user to select any concept tree). Setting this value in a concept tree is a recommendation to applications with a user interface to offer this tree for building stored identification keys (e. g., dichotomous keys). Setting this value in a concept tree is a recommendation to applications with a user interface to offer this tree for interactive identification. Setting this value in a concept tree is a recommendation to applications to use this for creating a report of the character terminology. (Note that no TerminologyEditing value is defined; all concept trees should be available when designing the terminology. However, the tree marked as TerminologyReporting may be used as the initial editing view.) Setting this value in a concept tree is a recommendation to applications to offer this tree for natural language reporting. Setting this value in a concept tree is a recommendation to applications to offer this tree for filtering purposes. Some trees are explicitly (separately) typed as being intended exclusively for filtering/subset definition; but many trees are useful for filtering purposes. Defines the origin of data that may have been entered, calculated, aggregated or inherited The data are directly entered by a machine or human agent. These are the original data all other cached data (Origin unequal 'OriginalData') are based upon. The data are calculated from other data using a calculation rule. Examples: a ratio calculated from other characters, a mean calculated from a sample that is available under SampleData/Sample (if a mean is calculated from data no longer available, it would be recorded as 'OriginalData'). The data are calculated from other data based on a mapping definition (either from numeric to categorical, or from fine-grained categorical to coarse-grained categorical. The data are derived from data in classes placed below the current class in the class hierarchy. This applies both to aggregating data from objects to classes, as generalizing lower classes to higher classes. Note: BioLink calls this 'Compile from below'. The data are derived from data in classes placed above the current class in the class hierarchy. Defines the origin of concept/character ratings. Similar to DataOriginEnum, but fewer enumerated values. The data are directly entered by a machine or human agent. Concept ratings may inherit from ratings at higher concept nodes, and character ratings may inherit from all concept nodes they belong to (possibly in multiple concept trees). A rating of 1 (low) to 5 (high), with 3 as central value, plus indication whether inherited (= calculated based on related definitions) or defined directly. inherited = inherited from a concept parent. Concept ratings are inherited to all further concepts and to all characters in a branch of the concept tree. A collection of ratings to rate the consistency, etc. of a character or concept. Relevant during interactive identification to rank the remaining characters for discriminative power and convenience. How convenient is the character or concept for identification? [ATTR: rating, origin] How available is the character or concept for identification? The rating should be low if it is only available at a short time during the life on a object, or only expressed with low frequency in populations. [ATTR: rating, origin] How reliable is the character or concept for identification? This should include both variability of values and variability in scoring the objects. [ATTR: rating, origin] How convenient is the character or concept for identification? [ATTR: rating, origin] MinimumExpertiseLevel: the designer of the concept tree expects the user to have a certain minimum expertise level. [ATTR: origin] inherited = inherited from a concept parent. Concept ratings are inherited to all further concepts and to all characters in a branch of the concept tree. Formatted text with an additional attribute "parsed". Used for Text elements in the NaturalLanguageDescription container. The following 4 types define a base element (which may later carry BlankBefore/BlankAfter attributes if this should be necessary) and variants of wording definitions for natural language report rendering. These types are used exclusively in the Audience-specific LabelPlusWording1-3 container types. A text element used to define wordings for natural language output. Currently the handling of blanks is assumed to be through leading and trailing blanks present in character content. If this should not work due to automatic trimming, the type may require two optional attributes like BlankBefore / BlankAfter of type BooleanTripleState. Currently the type is simply a synonym of StringWithFormatting is, but this may later be changed! Natural language wording for elements without content (= 'SimpleWording'). Wording for elements that have no further children in the natural language wording tree, e. g., char. states. Natural language wording for container elements with non-repeated content (e. g., modifiers around states) (= 'ContainerWording') Wording output before the contained elements. For characters this is the main character wording that is output before the states. (Optionally both before and after may be present) Wording output after contained elements. In the case of a character this is the wording after all states, or after numerical data and after a measurement unit where present. Natural language wording for elements with repeated content like characters that contain multiple modifiers + states. (= 'Array-' or 'ContainerWording') Normally the delimiters defined in the language rules will be used. However, they can be overridden here. Natural language wording for operators (and, or, with, to, etc.). Text used for operator unless the condition in IfNextElement is fulfilled. Contains 2 attributes, containing blank-separated lists of multiple starting patterns for next element. Example: In Spanish 'y' becomes 'e' if next word starts with 'i' or 'hi', but not 'hie'. Use 'i hi'/'hie' for StartWith/ButNotWith to define this. Text used if condition is fulfilled. @@ check later whether still necessary! This delimiter is used if only 2 elements are present. Examples: en: ' or ', de: ' oder ' If 3 or more elements are present, this delimiter is used between all elements, except before the last element. Examples: en: ', ', de: ', ' If 3 or more elements are present, this delimiter is used between the second-but-last and the last element. Examples: en: ', or ', de: ' oder ' The following types are audience-specific (i. e. they refer by a ref mechanism to audiencekey values). Note that some types are used only a single time, but it was thought more transparent to define all audience-specific collections and representations through types rather than make this dependent on the frequency of use. A label = collection of audience-specific label representations (without abbreviations or natural language reporting wordings). Used, e. g., for concept trees or modifier sets. Audience-specific simple label representation (= without abbreviations or natural language reporting wordings) [ATTR: audience] Audience-specific label representations (without abbreviations or natural language reporting wordings). Used, e. g., for concept trees or modifier sets. Text of the normal label, intended for screen display or reports that accommodate unabbreviated labels. Label (incl. abbreviations) Audience-specific label representations (incl. abbreviations) [ATTR: audience] Audience-specific label representations (incl. abbreviations) Restricted to 50 characters maximum length, including blanks (recommended to be much shorter!). Label abbreviations are especially important when displaying information in a tabular format. When missing, applications may abbreviate the label (this may create duplicates, however). Highly constrained version of the label (max. 12 characters, only uppercase letters, no blanks). Defined to support exports to formats requiring very short and simple names or labels, especially phylogenetic or statistical analysis software like NEXUS or SAS. Small multimedia resource to be displayed in addition to the label. It should be quicly recognized and will usually not be informative enough to base decisions on it alone. Example: in a concept tree a leaf icon image is provided for the node containing leaf characters. [ATTR: ref] A set of representative multimedia resources that convey the meaning even when used without a Text representation (but applications may choose to combine text and media). Example: display shape images to select a state during identification. If more than one resource is defined here, the assumption is that they will normally all be consumed before making a selection. The size of the resource should be sufficiently concise to view ca. 6 images from different labels concurrently on the intended output device, or listened to ca. 6 audio extracts before making a selection. - Both Icon and these selectors resources are audience-specific (e. g., image with abbreviation, bird-call with spoken text). [ATTR: ref] All Representations within a Label must have different language values. Label (incl. abbreviations and a single wording) Language/audience-specific label representations (incl. abbreviations and a single nat. lang. reporting wording ) [ATTR: audience] Extends LabelPlusAbbreviationRepr with a single wording element. Label (incl. abbreviations and a wording before and after the contained elements) Audience-specific label representations (incl. abbreviations and wording for natural language reports) [ATTR: audience] Extends LabelPlusAbbreviationRepr with a wording before and after the contained elements. Label (incl. abbreviations and a wording text before, after, and between the contained elements) Audience-specific label representations (incl. abbreviations and wording for natural language reporting) [ATTR: audience] Extends LabelPlusAbbreviationRepr with a complex wording element. Used in concept tree nodes and character references. Allows to define a text before, after, and between elements; used during natural language reporting. Container for multiple audience-specific representations of a (publicly reported) Note as text (optionally with basic formatting). Used, e. g., inside state, statistical measure, coding status, etc. references in descriptions. [ATTR: audience] Audience-specific representation of a (publicly reported) Note as text (optionally with basic formatting). The type provides an audience reference in an attribute. [The presence of the (seemingly superfluous) text element has two advantages: 1. Cleaner typing; adding an audience attribute directly to FormattedSimpleText type would require multiple inheritance. 2. In nat. language markup, Text surrounds all verbatim text. Retrieving all Text content retrieves the original text prior to markup.] --- Abstract base type for some vocabulary definitions: Abstract base type used to derive concepts in Terminology/General and Terminology that require only a single label and wording (states, coding status, etc.); the label natural language wording has only a single text element. Audience-specific labels, abbreviations, media icons/selectors & wording All Representations within a Label must have different language/audience values. Abstract base type used for stat. measures and modifier definitions (certainty, frequency, etc.); the label natural language wording has text before and after! Label with abbreviations and wording for natural language reports. All Representations within a Label must have different language/audience values. Note: It would be possible to define a VocabularyW3Base abstract base type, but this would be used only for concept nodes. === EXTENSIONS of UBIF (Unified Biosciences Information Framework) elements ProxyData objects: @@Currently this is a DUMMY, pending any decision about how to handle classifiers! It is kept in the schema to mark the places where scope classifiers are needed. ### Defines an element with a ref attribute pointing to a ClassName in Entities (in biology: Class = Taxon) - plus: additional classifier references, e. g., to further define the sex, generation, or life cycle stage of descriptions or class names in keys.