Description
Creating a codemeta.json file is like giving your software a passport.
It makes your project easy to find, cite, and use.
This file helps others understand what your software does and who contributed to it.
Considerations
When you’re setting up a codemeta.json file, keep these things in mind:
- Keep It Current: Update the file whenever your software changes. New version? New contributor? Make sure it’s reflected.
- Check for Errors: Use a JSON-LD validator to catch any mistakes, e.g., JSON-LD validator.
- Use Persistent Identifiers: Add a Digital Object Identifier (DOI) for the software release itself for long-term citation (e.g., from Zenodo). Ensure ORCID iDs are included for all people.
- Link to the Paper: Use the
referencePublicationproperty to link to the corresponding journal article, including the paper’s DOI as itsidentifier. - Detail Contributors: Use the
Personschema and include ORCID iDs (the persistent identifier for people) for authors and contributors. - Clarify Licensing: Use a Software Package Data Exchange (SPDX) identifier to make the license clear.
- Acknowledge Funders: Include funder details with identifiers like Crossref Funder IDs.
For more on software metadata, check out the Software Metadata page.
Solutions
- Do It Yourself: You can manually create the file using the CodeMeta schema. Check out the example below.
- Use Tools:
- CodeMeta Generator for a form-based approach
- SOMEF for command-line generation
- Auto CodeMeta generator for an interactive tool that guides you through creating a
codemeta.jsonfile step by step. - NB Always review and add details like ORCID iDs and funder info.
- Archive Your Work: Release your software on a platform that assigns DOIs, like Zenodo. Add the DOI to your
codemeta.jsonas anidentifier. - Validate: Use a service like JSON-LD validator to ensure everything is correct.
Example Template
Here’s a sample codemeta.json file to get you started:
{
"@context": "https://doi.org/10.5063/schema/codemeta-3.1",
"@type": "SoftwareSourceCode",
"name": "Your Software Name",
"description": "A brief description of your software.",
"version": "1.0.0",
"referencePublication": {
"@type": "ScholarlyArticle",
"headline": "A New Algorithm for Applied Mathematics using Python and NumPy",
"identifier": "https://doi.org/10.1016/j.jsc.2023.10.001",
},
"author": [
{
"@type": "Person",
"givenName": "First",
"familyName": "Author",
"email": "first.author@example.com",
"identifier": "https://orcid.org/0000-0002-1825-0097",
"affiliation": {
"@type": "Organization",
"name": "University of Edinburgh"
}
},
{
"@type": "Person",
"givenName": "Second",
"familyName": "Author",
"identifier": "https://orcid.org/0000-0003-0000-0000"
}
],
"contributor": [
{
"@type": "Person",
"givenName": "Key",
"familyName": "Contributor",
"identifier": "https://orcid.org/0000-0001-9999-9999",
}
],
"license": "https://spdx.org/licenses/MIT",
"codeRepository": "https://github.com/yourusername/your-repo",
"issueTracker": "https://github.com/yourusername/your-repo/issues",
"programmingLanguage": "Python",
"keywords": ["software", "example", "codemeta"],
"dateCreated": "2023-10-01",
"dateModified": "2023-10-10",
"softwareRequirements": [
"numpy",
"pandas"
],
"relatedLink": "https://yourwebsite.com",
"identifier": "https://doi.org/10.1234/exampledoi",
"funder": [
{
"@type": "Organization",
"name": "Funder Name",
"identifier": "https://doi.org/10.13039/100000001"
}
]
}
By following these steps, you can provide complete bibliographic metadata for your software project in a CodeMeta file, enhancing its discoverability and citation.
Related pages
Training
EVERSE TeSS search results:
Tools and resources on this page
| Tool or resource | Description | Related pages |
|---|---|---|
| Auto CodeMeta generator | The Auto CodeMeta generator is a web application designed to simplify the creation of codemeta.json files, which are used to provide structured metadata for research software and code. | |
| CodeMeta Generator | A free, open-source project that creates a minimal metadata schema for research software and code | Software metadata |
| JSON-LD validator | Service to validate JSON-LD files | Software metadata |
| SOMEF | Software Metadata Extraction Framework (SOMEF) is a command line tool for automatically extracting relevant software information from README files | Creating a good README Software metadata |
| Zenodo | Zenodo is a general-purpose open repository developed under the European OpenAIRE program and operated by CERN. It allows researchers to deposit research papers, data sets, research software, reports, and other research-related digital artefacts. | DOME Registry Phoenix2 Archiving software Documenting code Adopting FAIR research... Releasing software Software identifiers Software metadata |