What is software citation?
Software citation refers to the practice of giving proper credit to software used in research, just as researchers cite articles, books and datasets. It involves including a structured reference to the software in publications, ensuring that the creators and contributors receive recognition for their work.
A software citation typically includes:
- software title
- specific version used in the research to ensure reproducibility
- authors/creators (people who developed or contributed to the software)
- a digital object identifier (DOI) or another stable reference link to the software (e.g. Zenodo)
- software repository or URL where the software can be accessed (e.g., GitHub, Zenodo, institutional repositories).
Why does software citation matter?
Proper software citation supports the integrity of research and ensures that software developers receive appropriate acknowledgement for their contributions. It ensures that future researchers can use the exact version of the software to replicate results and encourages continued development and maintenance of research software if it is important for research. It helps with impact measurement as it enables tracking the impact of software in research through citation metrics. Finally, acknowledging software use is part of good research (ethical and professional) practice.
Solution
To provide citation information for your software, typically you add a citation file to the root of your software repository or software package. A citation file can be a plain text (CITATION.txt) or a Markdown file (CITATION.md), but there are certain benefits to using use a special file format called the Citation File Format (CFF) in your citation file CITATION.cff, which provides a standard way to include richer metadata about your code, making it easy for both humans and machines to use this information.
We will cover Citation File Format in more detail below.
What is the Citation File Format?
The Citation File Format lets you provide citation information for software by creating a CITATION.cff file in your source code repository.
A CITATION.cff file is a plaintext file that uses a special and structured metadata format that allows you to list a number of predefined properties for your software that is easy to read by both humans and machines.
Why do you need a CITATION.cff file?
Correctly citing a paper is easy. All the necessary information (the metadata) can be found on the title page of the paper or the website of the publisher. You can often download this information in various ready-to-use formats.
Software has no title page, however. The relevant information to cite software is often less obvious and harder to find. What is the official name of the software? What is the appropriate set of people that should be cited as authors? What version of the software should be cited? Is there a paper about the software that should be cited instead? If you want people to cite your research software, you will need to help them do it properly.
By adding a CITATION.cff file in your source code repository, you can provide all relevant citation information in a concise and structured way.
Not only does this give your users all the right information to cite your software correctly, but is also enables other tools and services, such as GitHub, Zenodo and Zotero to reuse the citation metadata you provide
For example, see GitHub’s citation documentation and Zenodo’s citation documentation pages.
Solutions
To create a CITATION.cff file for your software:
- use the CFFINIT Generator online tool to create a valid
CITATION.cfffile which you can download, or - manually copy and paste an example snippet
into your
CITATION.cfffile and adapt it to your needs, then use cffconvert to validate yourCITATION.cfffile.
Once you have created a correct CITATION.cff file, can add it to the root directory of your source code repository.
You can also use CFFINIT Generator to update an existing CITATION.cff file by pasting its contents in the tool’s online form, updating the fields and saving it.
A more detailed description on how to create CITATION.cff files can be found in the Turing Way’s Handbook for Open and Reproducible Research.
You can find a list of additional tools to create, validate and convert CITATION.cff files in the CFF GitHub Repository.
Related pages
Training
Tools and resources on this page
| Tool or resource | Description | Related pages | More about tool on TechRadar |
|---|---|---|---|
| cffconvert | Command line program to validate and convert CITATION.cff files. | ||
| CFFINIT Generator | Generate software citation metadata files with ease. CITATION.cff files are plain text files with human- and machine-readable citation information for software (and datasets). | View on TechRadar ↗ | |
| GitHub | GitHub is a platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control. GitHub provides access control, bug tracking, software feature requests, task management, continuous integration, and wikis for every project. | Research Software Stor... APICURON - The platfor... DOME Registry Research Software Stor... Research Software Stor... Archiving software Performing a code review Computational workflows Documenting code Documenting software p... Documenting software u... Adopting FAIR research... Using organisational G... Packaging software Releasing software Using version control | |
| 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 Creating bibliographic... Documenting code Adopting FAIR research... Releasing software Software identifiers Software metadata | View on TechRadar ↗ |
| Zotero | Free and open-source reference management software to manage bibliographic data and related research materials, such as PDF and ePUB files. |