Expand description
Core Commonmeta data model.
Data mirrors the commonmeta v1.0 JSON schema
(resources/commonmeta_v1.0.json) directly — field names and nesting
match the schema 1:1, the same way commonmeta-py’s Metadata class
is the v1.0 shape rather than an internal model translated to/from it.
A few sub-structs carry fields beyond what the schema defines, because
other formats’ writers genuinely need them for round-tripping (e.g.
Reference.unstructured/.asserted_by, Dates.collected/.valid/
.other/.copyrighted). These ride along unserialized-by-default
wherever empty and don’t affect schema validation, since the schema’s
nested item definitions don’t set additionalProperties: false.
Structs§
- Affiliation
- Citation
- Container
- Contributor
type_is “Person” or “Organization”; exactly one ofperson/organizationis set accordingly.- Data
- The native Commonmeta record, shaped like the v1.0 JSON schema.
- Dates
- “Other dates” beyond
date_published/date_updated. All fields are ISO 8601 date strings.collected/valid/other/copyrightedare carried for DataCite/InvenioRDM round-tripping and aren’t part of the v1.0 schema’sdatesdefinition. - Description
- File
- Funding
Reference - GeoLocation
- Flattened to match the v1.0 schema’s
geo_locationsshape directly (no nested point/box objects). - Identifier
- License
- Organization
- Person
- Publisher
- Reference
publisher/publication_year/volume/issue/first_page/last_page/unstructured/asserted_byride along for internal use (e.g. the crossref_xml and InvenioRDM writers); onlykey/id/type_/referenceare part of the v1.0 schema’sreferencesdefinition.- Relation
- Subject
- Title