Skip to main content

Semantics

info

Semantics are free-form string tags that you assign to fields in a blueprint or description template to declare what that field means. Any string value is valid — the platform does not restrict or validate semantic values. The reference list below contains suggested values for built-in integrations, but you are not limited to them.

How Semantics Work

A semantic is typically a dot-separated path string that identifies a concept in a specification or external system. For example:

  • rda.dmp.title — the title of a Data Management Plan in the RDA maDMP standard
  • zenodo.publication_date — the publication date field in Zenodo's metadata schema
  • raid.contributor.id — a contributor identifier in the RAiD standard

You can also define your own semantics entirely — for example my-system.project.lead — for use by custom plugins or external integrations you control.

When you assign a semantic to a field, any plugin or external system that understands that semantic can act on it:

  1. Export: When a plan is exported to a repository (e.g., Zenodo), the file transformer reads each field's semantic and maps the value to the correct position in the target format.
  2. Prefilling: When a Prefilling Source is configured with a matching semantic target, the system knows which description template field to populate with the fetched data.
  3. Evaluation: Evaluator plugins can locate specific fields by their semantics rather than by field ID, making evaluators template-agnostic.
  4. Custom plugins: Any custom file transformer, deposit service, or evaluator you build can read FieldModel.semantics to find the right field regardless of how the template is structured.

Where to Assign Semantics

Semantics can be assigned in two places:

  • Blueprint fields — for plan-level metadata (grant, organization, contact, etc.)
  • Description template fields — for description-level content (dataset type, access rights, license, etc.)

When editing a field in either location, the Semantics input accepts any string and provides autocomplete suggestions from the list below.

Custom Semantics

You are not limited to the suggested values. If you are building a custom plugin or integrating with an external system that is not covered by the built-in integrations, define your own semantic strings. The only requirement is that your plugin and your template configuration use the same string — the platform passes them through without interpretation.

For example, a custom evaluator that checks dataset access rights might look for fields tagged my-org.dataset.access_rights, as long as the template fields are tagged with that same value.

Suggested Semantics for Built-in Integrations

Match your field to the standard used by your target repository or specification:

Your targetUse semantic prefix
RDA maDMP export / evaluationrda.
RAiD registrationraid.
Zenodo depositzenodo.
Dataverse depositdataverse.
DSpace depositdspace.
CKAN depositckan.
Fedora depositfedora.
HEAL-Link integrationheal_link.
FAIRsharing policies integrationfair_sharing_policies.

A field can have multiple semantics — for example, a dataset title field might have both rda.dataset.title and zenodo.additional_title.title if the plan is exported to both systems.

Semantic Reference

  • rda.dmp.contact.affiliation.name
  • rda.dmp.contact.affiliation.affiliation_id.type
  • rda.dmp.contact.affiliation.affiliation_id.identifier
  • rda.dmp.related_identifier.identifier
  • rda.dmp.related_identifier.metadata_scheme
  • rda.dmp.related_identifier.relation_type
  • rda.dmp.related_identifier.resource_type
  • rda.dmp.related_identifier.scheme_type
  • rda.dmp.related_identifier.scheme_uri
  • rda.dmp.related_identifier.type
  • rda.dmp.contributor.affiliation.name
  • rda.dmp.contributor.affiliation.affiliation_id.type
  • rda.dmp.contributor.affiliation.affiliation_id.identifier
  • rda.dmp.alternate_identifier.identifier
  • rda.dmp.alternate_identifier.type
  • rda.dmp.project.project_id.identifier
  • rda.dmp.project.project_id.type
  • rda.dmp.contact.contact_id.identifier
  • rda.dmp.contact.contact_id.type
  • rda.dmp.contact.mbox
  • rda.dmp.contact.name
  • rda.dmp.contributor
  • rda.dmp.contributor.contributor_id.identifier
  • rda.dmp.contributor.contributor_id.type
  • rda.dmp.contributor.mbox
  • rda.dmp.contributor.name
  • rda.dmp.contributor.role
  • rda.dmp.cost
  • rda.dmp.cost.currency_code
  • rda.dmp.cost.description
  • rda.dmp.cost.title
  • rda.dmp.cost.value
  • rda.dmp.created
  • rda.dmp.description
  • rda.dmp.dmp_id
  • rda.dmp.dmp_id.identifier
  • rda.dmp.dmp_id.type
  • rda.dmp.ethical_issues_description
  • rda.dmp.ethical_issues_exist
  • rda.dmp.ethical_issues_report
  • rda.dmp.language
  • rda.dmp.modified
  • rda.dmp.project
  • rda.dmp.project.description
  • rda.dmp.project.end
  • rda.dmp.project.funding.funder_id
  • rda.dmp.project.funding.funder_id.identifier
  • rda.dmp.project.funding.funder_id.type
  • rda.dmp.project.funding.funding_status
  • rda.dmp.project.funding.grant_id
  • rda.dmp.project.funding.grant_id.identifier
  • rda.dmp.project.funding.grant_id.type
  • rda.dmp.project.start
  • rda.dmp.project.title
  • rda.dmp.title