cffinit: NOW is the time to get more recognition for your software!
Creating software citation files using cffinit
by Abel S. Siqueira and Faruk Diblen (Netherlands eScience Center)
Let’s think about your favorite movie. What is so good about it? The story? The animations? Sound effects? Maybe you only like the actor or actress? There must be something special about the movie that makes you feel different.
We move on to our next question: do you know of those involved in making your favourite movie? You may know the director and the main actor or actress, but what about the others? For example, do you know the artist who composed the soundtracks? Do you know the person who spent endless hours editing the movie? What about costume and make-up? We often refer to movies as ‘the movie director X directed’ or ‘the movie with Y in it’. Although a lot of people work in movie production, only a few people get credit and share the fame. But what would happen if the most striking scene wouldn’t have a soundtrack or visual effects?
We have a similar story to modern research. In many research fields today, doing research without software is impossible. Researchers find an interesting problem, they devote their time to finding the answer and they rarely actually do it alone. Most of the time, they collaborate with many other people. For example, researchers need software that can make smart decisions (like an AI algorithm) or process a huge amount of data in a very efficient way. Finally, they get their research article published and are announced as the owner of the work. But wait! What happened to the people who developed the software? Are they included in the paper? Did they receive credit for the software they developed? In the best scenario, the software developers spent time creating a software paper and published it in a specialized journal. If there is no publication about the software, the developers don’t usually receive credit or are only added to the acknowledgement section.
Citation File Format
This was a big issue until a few research software developers, from the Netherlands eScience Center and the German Aerospace Center (DLR) introduced the idea of Citation File Format[1]. The Citation File Format helps you add machine-readable metadata for software or datasets. After adoption by GitHub, Zenodo, GitLab, Zotero, and JabRef, we believe it will be a standard format in the near future. You can read more about the story here. Thanks to GitHub’s recent feature, if you have a CITATION.cff in your GitHub repository, your software can be cited correctly and easily. Yaaay for recognition!
cffinit: a tool to generate CITATION.cff files
To support the growing adoption of the Citation File Format, there is now a dedicated tool to create these files from scratch: cffinit[2]. cffinit is a web application that helps you create a CITATION.cff file. The application provides guidance for each field of the CFF schema and does the validation automatically. When there are issues, cffinit will provide visual feedback on relevant fields. The cffinit has a few advantages compared to manual editing such as:
- no need for installing extra tools such as conversion and validation tools;
- no need for further validation;
- guidance for each field;
- visual feedback to indicate issues.
Recently, the Netherlands eScience Center has released version 2.0.0 of the tool. This version handles the most up-to-date Citation File Format specification (1.2.0), and can help you easily create your CITATION.cff file.
The Netherlands eScience Center also took part in The Turing Way November 2021 sprint and created a section about software citation with CITATION.cff with an overview of all this information. In addition, we have created a tutorial on how to create a CITATION.cff using cffinit to help you get your software to the next level of recognition. Instead of copy-pasting all of it here, we summarize a few of the points in The Turing Way and recommend that you follow the tutorial.
Steps to Make Your Software Citable with cffinit
To make your software citable, you only need to follow the two steps below:
Step 1. Create a CITATION.cff File:
Use cffinit to create a CITATION.cff file. For more details on using cffinit see the tutorial on The Turing Way’s website.
Step 2. Add Your CITATION.cff to a Public Code Repository:
After creating a valid CITATION.cff file, you will need to add it to the root of your code or data repository so that it can be easily found and cited.
Updating your CITATION.cff file
When you need to update your CITATION.cff file, for example, to add an author or to change the information about releases, you will need to edit the file manually. It is recommended to update your CITATION.cff file before making a software release.
Spoiler: we are working on adding this feature to cffinit.
How to Cite Using CITATION.cff
If you have found software or datasets that contain a CITATION.cff, there are a few ways to obtain the reference information to cite in your publication.
- You can use one of the tools, such as the cffconvert command-line program, to convert your CITATION.cff file to one of the supported formats, such as APA, BibTeX or EndNote.
- Alternatively, if the software or datasets you want to cite are available on GitHub, you can use GitHub’s interface to copy the reference in either APA or BibTeX formats by clicking the “Cite this repository” button. See the green area in the image below for an example.
Note that the “Cite this repository” button only appears when there is a CITATION.cff file in the repository.
For more details on software citation on GitHub, please see GitHub’s guide on software citation.
References
[1] Druskat, S., Spaaks, J. H., Chue Hong, N., Haines, R., Baker, J., Bliven, S., Willighagen, E., Pérez-Suárez, D., & Konovalov, A. (2021). Citation File Format (Version 1.2.0) [Computer software]. https://doi.org/10.5281/zenodo.5171937
[2] Spaaks, J. H., Verhoeven, S., Diblen, F., Druskat, S., Soares Siqueira, A., & Garcia Gonzalez, J. (2021). cffinit (Version 2.0.0) [Computer software]. https://github.com/citation-file-format/cff-initializer-javascript
How can you help?
You can help us in many ways. The first and easiest would be creating a CITATION.cff file for your software. If you encounter any issues or if you have suggestions, you can create tickets on our GitHub repository. Finally, you can contribute to the code and help us make it even better.
Get in touch with us
cffinit 2.0 was developed by Abel S. Siqueira, Faruk Diblen, Jesus Garcia González, Jurriaan H. Spaaks and Stefan Verhoeven. We thank Stephan Druskat for the very useful feedback during the development of the tool and also our proofreaders Lieke de Boer, Veronica Pang and Tom Bakker.
If you have suggestions or questions, please feel free to reach us at generalization a-t esciencecenter.nl.