Skip to content

Instances: Core Structure

A template instance is an instance artifact. It holds metadata that conforms to a template. In YAML it identifies its template with isBasedOn. It gives a value for each field or nested element under children, keyed by the child's key. The key is the identifier the template assigns each child, not its display name.

type: instance
name: SDY232
description: Metadata for the SDY232 cardiology study
id: https://repo.metadatacenter.org/template-instances/1f9a2b3
isBasedOn: https://repo.metadatacenter.org/templates/ec3f500
children:
  study-name:
    value: Cardiology cohort

Field Values

Which keys a field's value carries depends on the kind of value. A plain literal carries just value. A typed literal adds datatype. A controlled term carries id with a label.

type: instance
name: SDY232
isBasedOn: https://repo.metadatacenter.org/templates/ec3f500
children:
  study-name:
    value: Cardiology cohort
  participants:
    value: 2323
    datatype: xsd:int
  disease:
    id: http://purl.obolibrary.org/obo/DOID_530
    label: eyelid disease

A field with no value is omitted from children entirely.

A controlled term value can carry two further labels drawn from its vocabulary. prefLabel holds the term's preferred label, the canonical name the vocabulary assigns it, which may differ from the label shown to the author. notation holds the term's short code or accession within the vocabulary.

  disease:
    id: http://purl.obolibrary.org/obo/DOID_530
    label: eyelid disease
    prefLabel: eyelid disease
    notation: DOID:530

Multiple Values

A field that accepts more than one value holds a list under its key. Each entry has the same shape it would have as a single value. For a plain literal field, each entry carries a value.

  keywords:
  - value: genomics
  - value: oncology

A controlled-term field behaves the same way. Each entry is a full controlled term, carrying its id and label.

  conditions:
  - id: http://purl.obolibrary.org/obo/DOID_2841
    label: asthma
  - id: http://purl.obolibrary.org/obo/DOID_10763
    label: hypertension

Nested Elements

An element does not hold a value of its own. Its entry under children holds its own children, one for each field or element it contains, nested the same way as at the top level. A repeating element holds a list of such entries.

  address:
    children:
      street:
        value: 450 Serra Mall
      city:
        value: Stanford
  contributors:
  - children:
      full-name:
        value: Ada Lovelace
  - children:
      full-name:
        value: Alan Turing

Standalone Element Instances

An element instance can also stand on its own, outside any template instance, using type: element-instance. It carries the same name, id, and children as a nested element value, plus the type discriminator that lets it stand alone.

type: element-instance
name: Address
children:
  street:
    value: 450 Serra Mall
  city:
    value: Stanford