Examples
Worked examples
- Is an instance
A research group publishing a computational biology package places a 'codemeta.json' file in the root repository directory containing the software name, version, persistent identifier (DOI), author ORCIDs, open-source license identifier, and funding grant details mapped directly to Schema.org properties.
- Is an instance
A scholarly software archive such as Zenodo or Software Heritage ingests repository source code and parses its 'codemeta.json' file to automatically extract structured citation metadata and author attribution without requiring manual descriptive re-entry.
Counter-examples
Looks similar, but isn't
- Not an instance
A plain text README.md file that contains unstructured installation instructions, markdown badges, and informal authorship notes, which lacks standardized JSON-LD schema markup and cannot be automatically parsed as structured Linked Data.
- Not an instance
A language-specific package manifest (such as package.json in Node.js or setup.py in Python) that specifies runtime software dependencies and build instructions but omits academic citation properties, funding metadata, and scholarly crosswalk mappings.
Editorial commentary
CodeMeta is a standardized, machine-readable metadata schema and vocabulary designed to improve the discovery, attribution, and citation of scientific and research software. Developed as an academic community initiative and catalyzed by the National Science Foundation, CodeMeta addresses a core challenge in modern computational practice: software authors routinely describe their tools using disparate, siloed formats—ranging from code repository descriptors and language-specific packaging files to institutional repository records—that historically prevented automated cross-platform indexing.
Rather than introducing an isolated, competing metadata standard, CodeMeta functions as an open “Rosetta Stone” crosswalk. It extends the widely adopted computer science linked data vocabularies of Schema.org (specifically the SoftwareSourceCode and SoftwareApplication types) using JSON-LD (JavaScript Object Notation for Linked Data). By establishing unambiguous mappings across existing software metadata dialects, CodeMeta allows research software to achieve parity with papers and data under the FAIR4RS principles and the FORCE11 software citation guidelines.
Structure and Core Properties
A CodeMeta document is formally stored as a codemeta.json file located in the root directory of a software source code repository. The file references a standard JSON-LD context URI (such as https://w3id.org/codemeta/3.0) and combines standard Schema.org terms with specialized properties developed for scientific workflows:
- Identification and Source:
name,version,description,identifier(such as a DOI), andcodeRepository(the URL of the public version control repository). - Attribution and Roles:
authorandcontributorobjects enriched with persistent researcher identifiers such as ORCID URIs, institutional affiliations, and specific contributor roles. - Scholarly Context:
citationorreferencePublicationproperties linking directly to peer-reviewed papers or benchmark articles describing the computational theory or methodology implemented by the tool. - Governance and Legal Terms:
license(typically expressed using SPDX license identifiers),developmentStatus(indicating whether the package is active, suspended, or mature), andissueTrackerfor bug reporting. - Sponsorship:
fundingandfunderfields capturing grant identifiers and supporting institutions, such as awards from the NSF CISE Directorate.
Relationship to CITATION.cff and Repository Crosswalks
Researchers often compare CodeMeta with the Citation File Format (CITATION.cff). While CITATION.cff utilizes human-readable YAML tailored specifically for reference generation and GitHub/Zenodo citation buttons, CodeMeta provides a comprehensive, semantic Linked Data representation encompassing the entire software lifecycle, build dependencies, and continuous integration environments.
Major scholarly repositories and software archives—including Software Heritage, Zenodo, and the Python/R packaging ecosystems—leverage CodeMeta crosswalk tables to translate metadata between formats losslessly. Software packages like codemetar enable automated generation and synchronization of codemeta.json directly from repository build configurations, ensuring that computational artifacts remain permanently discoverable and citeable.
Sources
- Boettiger, Carl, and Matthew B. Jones. “CodeMeta: Minimal Metadata Schema for Research Software.” CodeMeta Project, https://codemeta.github.io/. Read 2026-11-07.
- CodeMeta Working Group. “CodeMeta Vocabulary and Terms.” CodeMeta Specification, https://codemeta.github.io/terms/. Read 2026-11-07.
- CodeMeta Documentation Team. “CodeMeta User Guide.” CodeMeta Guidelines, https://codemeta.github.io/user-guide/. Read 2026-11-07.
Machine-readable encodings
Use in your systems
<role vocab="credit"
vocab-identifier="https://casrai.org/dictionary/"
vocab-term="CodeMeta"
vocab-term-identifier="https://casrai.org/dictionary/term/codemeta" />{
"@context": "https://schema.org",
"@type": "DefinedTerm",
"@id": "https://casrai.org/dictionary/term/codemeta",
"name": "CodeMeta",
"identifier": "https://casrai.org/dictionary/term/codemeta",
"description": "A standardized, machine-readable software metadata vocabulary and JSON-LD schema based on Schema.org, designed to establish a common crosswalk across code repositories, language registries, and scholarly data archives for research software discovery, preservation, and attribution.",
"inDefinedTermSet": "https://casrai.org/dictionary/domain/publishing#set",
"url": "https://casrai.org/dictionary/term/codemeta",
"license": "https://creativecommons.org/licenses/by/4.0/",
"publisher": {
"@id": "https://casrai.org/#organization"
},
"author": {
"@id": "https://casrai.org/#editorial-team"
},
"datePublished": "2026-11-07T21:00:04",
"dateModified": "2026-11-07T21:00:04",
"inLanguage": "en-GB",
"isAccessibleForFree": true
}






