Skip to main content
Version: 1.x

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​

See the full mapping

RDA maDMP JSON — semantics reference documents which RDA JSON output field each semantic populates.

  • 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