Commonmeta grows up

Commonmeta grows up
Photo by wu yi / Unsplash

The Commonmeta standard for scholarly metadata continues towards version 1.0 with some important changes in version v0.14, released this week. And metadata for all DOIs from Crossref and DataCite can now be retrieved in commonmeta format via a new web service.

The major changes in the commonmeta v0.14 JSON schema are the following:

  • all property names are now consistently in CamelCase (e.g. geoLocations instead of geo_locations),
  • the schema now validates both single scholarly works as well as lists of scholarly works,
  • definitions for person and organization that are used for contributors and publisher,
  • dropping sizes and formats, which are covered by the more comprehensive files, supported in the Crossref and Schema.org formats,
  • many harmonizations, e.g. consolidating titleType and descriptionType into type.

Support for schema v0.14 has been implemented in the commonmeta Go package, and will be added to the commonmeta-py Python library later this week, and to the commonmeta-ruby gem in May.

Also this week a web service at https://commonmeta.org has launched that supports metadata conversion via content negotiation, working similarly to the DOI content negotiation offered by Crossref and DataCite. The service was built with the new commonmeta Go library, and currently supports metadata conversion from the Crossref or DataCite metadata formats into commonmeta. For example:

curl -LH "Accept: application/vnd.commonmeta+json" https://commonmeta.org/10.1126/science.169.3946.635
curl -LH "Accept: application/vnd.commonmeta+json" https://commonmeta.org/10.5524/100005

Link-based content negotiation in the format implemented by Crossref is also supported, e.g. to access the service via a web browser:

curl https://commonmeta.org/10.1126/science.169.3946.635/transform/application/vnd.commonmeta+json

The service will grow as the Go library adds support to more formats, but the commonmeta output can already used as input for the commonmeta libraries written in Go, Python, or Ruby, or to develop commonmeta support in other languages.

Copyright © 2024 Martin Fenner. Distributed under the terms of the Creative Commons Attribution 4.0 License.