Skip to main content

Zenodo Deposit — Semantics Reference

The Zenodo deposit plugin mints DOIs for plans on Zenodo (InvenioRDM v12). During deposit it builds the record metadata by reading values from both the plan blueprint and the descriptions attached to the plan, locating each field by its semantic tag.

This page lists every Zenodo metadata field the plugin can populate and the semantic you must assign to the backing field to populate it.

How the plugin resolves fields

Every semantic below is looked up first on plan blueprint fields, then on all description-template fields of the plan's descriptions. Values from both sources are typically merged (with de-duplication). A subset of semantics (additional titles) require all fields to appear within the same field set, as noted in the relevant section.

Values that are always set (not semantic-driven)

Zenodo fieldSource
metadata.titlePlan label.
metadata.descriptionPlan description (or empty if not provided).
metadata.versionPlan version.
metadata.publisherConfigured publisher name.
metadata.resource_type.idConfigured resource type.
access.record / access.files / access.embargo.*Derived from the plan's access type and finalisation date.

An additional related identifier is auto-emitted for public plans pointing back to the OpenCDMP record, with relation type isidenticalto and scheme url.

Top-level metadata

Zenodo fieldSemanticNotes
metadata.publication_datezenodo.publication_datePlan blueprint only. First match wins. Formatted yyyy-MM-dd. Falls back to today.
metadata.subjects[].subjectzenodo.subjectBlueprint and description. Each collected value becomes one subject entry.
metadata.languages[].idzenodo.languageBlueprint and description. Must be an ISO-639-3 code; invalid codes are dropped.
metadata.references[].referencezenodo.referenceBlueprint and description.

Communities

Zenodo fieldSemanticNotes
Community slugzenodo.communityResolved from blueprint first, then description. Falls back to the configured community.

Additional titles (field set — description template)

One entry per field-set item. All three semantics must appear within the same field set.

Zenodo fieldSemanticNotes
metadata.additional_titles[].titlezenodo.additional_title.title
metadata.additional_titles[].type.idzenodo.additional_title.typeAccepted values: alternativetitle, subtitle, translatedtitle, other. Defaults to other.
metadata.additional_titles[].lang.idzenodo.additional_title.languageISO-639-3 code; dropped if invalid.

Each semantic below maps to one metadata.related_identifiers[] entry. The relation type id is derived from the last segment of the semantic (lowercased). Assign one of the scheme semantics (see below) on the same field to set the identifier scheme; defaults to other.

Zenodo fieldSemantic
metadata.related_identifiers[].identifier — relation type iscitedbyzenodo.related_identifiers.isCitedBy
metadata.related_identifiers[].identifier — relation type citeszenodo.related_identifiers.cites
metadata.related_identifiers[].identifier — relation type issupplementtozenodo.related_identifiers.isSupplementTo
metadata.related_identifiers[].identifier — relation type issupplementedbyzenodo.related_identifiers.isSupplementedBy
metadata.related_identifiers[].identifier — relation type iscontinuedbyzenodo.related_identifiers.isContinuedBy
metadata.related_identifiers[].identifier — relation type continueszenodo.related_identifiers.continues
metadata.related_identifiers[].identifier — relation type isdescribedbyzenodo.related_identifiers.isDescribedBy
metadata.related_identifiers[].identifier — relation type describeszenodo.related_identifiers.describes
metadata.related_identifiers[].identifier — relation type hasmetadatazenodo.related_identifiers.hasMetadata
metadata.related_identifiers[].identifier — relation type ismetadataforzenodo.related_identifiers.isMetadataFor
metadata.related_identifiers[].identifier — relation type isnewversionofzenodo.related_identifiers.isNewVersionOf
metadata.related_identifiers[].identifier — relation type ispreviousversionofzenodo.related_identifiers.isPreviousVersionOf
metadata.related_identifiers[].identifier — relation type ispartofzenodo.related_identifiers.isPartOf
metadata.related_identifiers[].identifier — relation type haspartzenodo.related_identifiers.hasPart
metadata.related_identifiers[].identifier — relation type isreferencedbyzenodo.related_identifiers.isReferencedBy
metadata.related_identifiers[].identifier — relation type referenceszenodo.related_identifiers.references
metadata.related_identifiers[].identifier — relation type isdocumentedbyzenodo.related_identifiers.isDocumentedBy
metadata.related_identifiers[].identifier — relation type documentszenodo.related_identifiers.documents
metadata.related_identifiers[].identifier — relation type iscompiledbyzenodo.related_identifiers.isCompiledBy
metadata.related_identifiers[].identifier — relation type compileszenodo.related_identifiers.compiles
metadata.related_identifiers[].identifier — relation type isvariantformofzenodo.related_identifiers.isVariantFormOf
metadata.related_identifiers[].identifier — relation type isoriginalformofzenodo.related_identifiers.isOriginalFormof
metadata.related_identifiers[].identifier — relation type isidenticaltozenodo.related_identifiers.isIdenticalTo
metadata.related_identifiers[].identifier — relation type isalternateidentifierzenodo.related_identifiers.isAlternateIdentifier
metadata.related_identifiers[].identifier — relation type isreviewedbyzenodo.related_identifiers.isReviewedBy
metadata.related_identifiers[].identifier — relation type reviewszenodo.related_identifiers.reviews
metadata.related_identifiers[].identifier — relation type isderivedfromzenodo.related_identifiers.isDerivedFrom
metadata.related_identifiers[].identifier — relation type issourceofzenodo.related_identifiers.isSourceOf
metadata.related_identifiers[].identifier — relation type requireszenodo.related_identifiers.requires
metadata.related_identifiers[].identifier — relation type isrequiredbyzenodo.related_identifiers.isRequiredBy
metadata.related_identifiers[].identifier — relation type isobsoletedbyzenodo.related_identifiers.isObsoletedBy
metadata.related_identifiers[].identifier — relation type obsoleteszenodo.related_identifiers.obsoletes

Assign one of these on the same field as the relation-type semantic above to set metadata.related_identifiers[].scheme:

SchemeSemantic
arkzenodo.related_identifiers.scheme.ark
arxivzenodo.related_identifiers.scheme.arxiv
adszenodo.related_identifiers.scheme.ads
crossreffunderidzenodo.related_identifiers.scheme.crossreffunderid
doizenodo.related_identifiers.scheme.doi
ean13zenodo.related_identifiers.scheme.ean13
eissnzenodo.related_identifiers.scheme.eissn
gridzenodo.related_identifiers.scheme.grid
handlezenodo.related_identifiers.scheme.handle
igsnzenodo.related_identifiers.scheme.igsn
isbnzenodo.related_identifiers.scheme.isbn
isnizenodo.related_identifiers.scheme.isni
issnzenodo.related_identifiers.scheme.issn
istczenodo.related_identifiers.scheme.istc
lissnzenodo.related_identifiers.scheme.lissn
lsidzenodo.related_identifiers.scheme.lsid
pmidzenodo.related_identifiers.scheme.pmid
purlzenodo.related_identifiers.scheme.purl
upczenodo.related_identifiers.scheme.upc
urlzenodo.related_identifiers.scheme.url
urnzenodo.related_identifiers.scheme.urn
w3idzenodo.related_identifiers.scheme.w3id
otherzenodo.related_identifiers.scheme.other

Alternate identifiers

Each semantic below maps to one metadata.alternate_identifiers[] entry. The scheme is derived from the last segment of the semantic (lowercased).

Zenodo fieldSemantic
metadata.alternate_identifiers[].identifier — scheme arkzenodo.alternate-identifiers.scheme.ark
metadata.alternate_identifiers[].identifier — scheme arxivzenodo.alternate-identifiers.scheme.arxiv
metadata.alternate_identifiers[].identifier — scheme adszenodo.alternate-identifiers.scheme.ads
metadata.alternate_identifiers[].identifier — scheme crossreffunderidzenodo.alternate-identifiers.scheme.crossreffunderid
metadata.alternate_identifiers[].identifier — scheme doizenodo.alternate-identifiers.scheme.doi
metadata.alternate_identifiers[].identifier — scheme ean13zenodo.alternate-identifiers.scheme.ean13
metadata.alternate_identifiers[].identifier — scheme eissnzenodo.alternate-identifiers.scheme.eissn
metadata.alternate_identifiers[].identifier — scheme gridzenodo.alternate-identifiers.scheme.grid
metadata.alternate_identifiers[].identifier — scheme handlezenodo.alternate-identifiers.scheme.handle
metadata.alternate_identifiers[].identifier — scheme igsnzenodo.alternate-identifiers.scheme.igsn
metadata.alternate_identifiers[].identifier — scheme isbnzenodo.alternate-identifiers.scheme.isbn
metadata.alternate_identifiers[].identifier — scheme isnizenodo.alternate-identifiers.scheme.isni
metadata.alternate_identifiers[].identifier — scheme issnzenodo.alternate-identifiers.scheme.issn
metadata.alternate_identifiers[].identifier — scheme istczenodo.alternate-identifiers.scheme.istc
metadata.alternate_identifiers[].identifier — scheme lissnzenodo.alternate-identifiers.scheme.lissn
metadata.alternate_identifiers[].identifier — scheme lsidzenodo.alternate-identifiers.scheme.lsid
metadata.alternate_identifiers[].identifier — scheme pmidzenodo.alternate-identifiers.scheme.pmid
metadata.alternate_identifiers[].identifier — scheme purlzenodo.alternate-identifiers.scheme.purl
metadata.alternate_identifiers[].identifier — scheme upczenodo.alternate-identifiers.scheme.upc
metadata.alternate_identifiers[].identifier — scheme urlzenodo.alternate-identifiers.scheme.url
metadata.alternate_identifiers[].identifier — scheme urnzenodo.alternate-identifiers.scheme.urn
metadata.alternate_identifiers[].identifier — scheme w3idzenodo.alternate-identifiers.scheme.w3id
metadata.alternate_identifiers[].identifier — scheme otherzenodo.alternate-identifiers.scheme.other

Dates

Each semantic below maps to one metadata.dates[] entry. The date-type id is derived from the last segment of the semantic (lowercased). Values must be formatted as yyyy-MM-dd or yyyy/MM/dd; invalid dates are dropped.

Zenodo fieldSemantic
metadata.dates[].date — type acceptedzenodo.date_type.accepted
metadata.dates[].date — type availablezenodo.date_type.available
metadata.dates[].date — type collectedzenodo.date_type.collected
metadata.dates[].date — type copyrightedzenodo.date_type.copyrighted
metadata.dates[].date — type createdzenodo.date_type.created
metadata.dates[].date — type issuedzenodo.date_type.issued
metadata.dates[].date — type otherzenodo.date_type.other
metadata.dates[].date — type submittedzenodo.date_type.submitted
metadata.dates[].date — type updatedzenodo.date_type.updated
metadata.dates[].date — type validzenodo.date_type.valid
metadata.dates[].date — type withdrawnzenodo.date_type.withdrawn

License

Licenses are resolved from plan licence references against Zenodo's licence vocabulary. The only semantic involved is on the reference type field definition:

Zenodo fieldSemanticNotes
metadata.license[].linkzenodo.metadata.rights.linkRead from a licence reference field's definition. Used only when the Zenodo vocabulary lookup fails and the plugin falls back to a custom licence block.

Contributors

Researcher contributors are built from plan researcher references. Two semantics on the reference type field definition populate contributor names:

Zenodo fieldSemanticNotes
metadata.contributors[].person_or_org.family_namezenodo.metadata.contributors.person_or_org.family_nameFalls back to the reference label.
metadata.contributors[].person_or_org.given_namezenodo.metadata.contributors.person_or_org.given_nameFalls back to empty string.

Other contributor fields (role.id, person_or_org.name, identifiers, affiliations) are derived from the reference itself — not from semantics. Plan members in metadata.creators[] are derived from plan users and organisation references, also not semantic-driven.

Funding

Funders and grants come from plan funder and grant references. Zenodo funder and award lookups are performed against the Zenodo API. No semantics are consulted; documented here for completeness.

Custom fields — Publishing information

Single-valued (first matching value wins). Blueprint and description sources.

Journal

Zenodo fieldSemantic
custom_fields.journal:journal.titlezenodo.publishing_information.journal.title
custom_fields.journal:journal.issnzenodo.publishing_information.journal.issn
custom_fields.journal:journal.volumezenodo.publishing_information.journal.volume
custom_fields.journal:journal.issuezenodo.publishing_information.journal.issue
custom_fields.journal:journal.pageszenodo.publishing_information.journal.page_range_or_article_number

Imprint

Zenodo fieldSemantic
custom_fields.imprint:imprint.titlezenodo.publishing_information.imprint.title
custom_fields.imprint:imprint.isbnzenodo.publishing_information.imprint.isbn
custom_fields.imprint:imprint.placezenodo.publishing_information.imprint.place
custom_fields.imprint:imprint.pageszenodo.publishing_information.imprint.pagination

Thesis

Zenodo fieldSemantic
custom_fields.thesis:universityzenodo.publishing_information.thesis.university

Custom fields — Conference (meeting)

Single-valued. Blueprint and description sources.

Zenodo fieldSemanticNotes
custom_fields.meeting:titlezenodo.conference.title
custom_fields.meeting:acronymzenodo.conference.acronym
custom_fields.meeting:placezenodo.conference.place
custom_fields.meeting:dateszenodo.conference.dates
custom_fields.meeting:urlzenodo.conference.websiteOnly set if the value is a valid URL.
custom_fields.meeting:sessionzenodo.conference.session
custom_fields.meeting:session_partzenodo.conference.part

Custom fields — Software / Code

Zenodo fieldSemanticNotes
custom_fields.code:codeRepositoryzenodo.software.repository-urlOnly set if the value is a valid URL. Single-valued.
custom_fields.code:programmingLanguage[].idzenodo.software.programming-languageMulti-valued. Values must match a supported programming language identifier; others are dropped.
custom_fields.code:developmentStatus.idzenodo.software.development-statusSingle-valued. Accepted values: wip, unsupported, inactive, suspended, moved, concept, abandoned, active.