Dictionary components

Dictionaries are a major part of STMML and supported as follows:

The dictionary itself:

  • dictionary. This element defines a dictionary and is often the root element (though a data instance might also be combined with a dictionary). The dictionary play a similar role to a simple schema, by defining data types and other constraints (such as enumerations). By transforming a dictionary to schema format, schema-based tools can be used for validation. A dictionary is normally composed of entrys.
  • entry. An entry contanins information which describes or constrains elements in a data instance. The link is made through a dictRef attribute on the data element. Descriptive information can apply to any type of element (not necessarily part of or derived from the STM Schema). Constraints are similar to those in XML Schemas and use the same vocabulary (dataTypes, value ranges, enumerations, patterns, etc.). They normally apply to elements from the STM Schema or derived from it.
    In addition entrys can constrain elements to have the same higher-level structures and constraints defined by STM Schema. Thus entrys can require a data element to be a matrix, of a given type, with fixed number os rows and columns. These constraints are usually attributes on the entry element, which therefore maps directly onto the instance. Every entry has a mandatory term attribute which is the formal text string representing the concept. This string can contain any allowed XML characters (e.g. greek characters) but not markup (e.g. MathML or CML).
  • definition. An almost mandatory child element of entry, giving a formal definition of the term
  • description. Additional descriptive informati>on for an entry. This can contain any content, often HTML, but also MathML, CML for description of equations, chemical formulae, etc.
  • alternative. Alternative strings for describing the concept. These can be any of the stnadard lexical and terminological data categories such as synonyms, abbreviations, homonyms, etc. (see ISO12620 for a full range).
  • enumeration. A list of allowed values for the data element (or elements in arrays, matrices).
  • relatedEntry. A related entry. Sometimes this is descriptive (e.g. "seeAlso" provides additional information on related concepts). It can also be used for constraints, and there is a small controlled vocabulary of relationships, but no universal syntax. We support parentage (e.g. through "partitiveParent" = "partOf"). In principle this can be used with appinfo to provide algorithmically constructed relationships.
  • attributes. A wide range of constraints is provided through attributes, several being similar to facets on XML Schema datatypes:
    • rows and columns, the structure of the data element.
    • recommendedUnits, units and unitType, the units of the data element.
    • minExclusive, minInclusive, maxExclusive and maxInclusive, the value of the data element.
    • totalDigits, fractionDigits, length, maxLength, minLength and pattern. The lexical form of the data element.
  • annotation. Similar to XML Schema, this has children documentation for information about the entry (normally curatorial) and appinfo to describe entries and constraints in machine-processable fashion. .