Skip to content

Core Artifact Structure

In the YAML serialization, an artifact is written as a set of keys and values. Its opening keys give the artifact's type, name, description, and identity:

type: text-field
name: Study Name
description: The name of the study
id: https://repo.metadatacenter.org/template-fields/5c2d54c

Every artifact begins this way, differing only in its type and in the content it carries. A template:

type: template
name: Study
description: A clinical study
id: https://repo.metadatacenter.org/templates/7b8977e

Or an element:

type: element
name: Address
description: A postal address
id: https://repo.metadatacenter.org/template-elements/be89d73

An instance opens the same way, and additionally names the template it conforms to:

type: instance
name: SDY232
id: https://repo.metadatacenter.org/template-instances/1f9a2b3
isBasedOn: https://repo.metadatacenter.org/templates/7b8977e

The type discriminator

Every definition opens with type, whose value names the artifact kind and, for fields, the field type. The reader dispatches on it. The value fixes which further keys are meaningful.

Value Artifact
template A template.
element An element.
a field-type token A field, of one of the field types below.
instance A template instance.
element-instance A standalone element instance.

Descriptive keys

Key Value Presence Meaning
name string required The artifact's human-readable name. Required.
description string optional A description of the artifact. Omitted when empty.
identifier string optional An application-defined identifier, distinct from id. Not necessarily an IRI. Omitted when empty.
language string optional The natural language of the artifact's content, as an IETF BCP 47 language tag (for example en). Omitted when empty.

Identity

Key Value Presence Meaning
id IRI conditional The artifact's own identifier. Present when the artifact has been assigned one.

A nested child is not required to have an id; when it does, it is preserved.

Field types

A field's type is one of 25 field types, each collecting a particular kind of value.

Field type Collects
text-field Free text.
text-area-field Multi-line text.
numeric-field A number.
temporal-field A date, time, or datetime.
controlled-term-field A term from a controlled vocabulary.
radio-field One option, as radio buttons.
single-select-list-field One option, from a dropdown list.
checkbox-field Any number of options, as checkboxes.
multi-select-list-field Any number of options, from a dropdown list.
link-field A URI.
phone-number-field A phone number.
email-field An email address.
attribute-value-field User-supplied attribute/value pairs.
ext-ror-field A ROR identifier.
ext-orcid-field An ORCID identifier.
ext-doi-field A DOI.
ext-rrid-field An RRID.
ext-pfas-field A PFAS identifier.
ext-pubmed-field A PubMed identifier.
ext-nih-grant-id-field An NIH grant identifier.
static-rich-text Fixed formatted text (collects no value).
static-image A fixed image (collects no value).
static-youtube-video An embedded video (collects no value).
static-section-break A section divider (collects no value).
static-page-break A page divider (collects no value).