May 26, 2020

Citing software with style

Software, and software source code in particular, is a pillar of modern research, and a stepping stone for Open Science. It must be properly archived, referenced, described and cited in order to build a stable and long lasting corpus of scientific knowledge.

Treating software as a first class citizen…

And yet, for a long time it has not been treated as a first class citizen in the scholarly world: there was no archive specifically designed for software source code and no system of identifiers specifically conceived with source code in mind. We are addressing these two important issues by building the Software Heritage archive, standardising Software Heritage identifiers (SWHID) and providing a detailed guide for researchers that is immediately actionable.

And last, but not least, there was no specific support in any common bibliographic style for citing software in research articles. We got used to work around this lack of dedicated support by citing the user manual, or an article related to a software artifact, or adding in the text or in a footnote urls pointing to a place where one could get the software: the project web page, or a code hosting platform.
That was profoundly unsatisfactory: by using proxies for the software artifacts themselves, we were just continuing to deny software its rightful place among the research outputs.

… and citing it with the biblatex-software style

Change is coming: we are delighted to announce the availability of the biblatex-software package, that adds support for properly managing software entries in bibliographies for BibLaTeX users.

You can find it on CTAN at:

biblatex-software introduces four specific bibliographic entries for describing respectively software, software versions, software modules and code fragments, designed by a dedicated task force at Inria composed of Pierre AlliezRoberto Di CosmoBenjamin Guedj, Alain Girault, Mohand-Said Hacid, Arnaud Legrand, Morane Gruenpeter, Xavier Leroy, Nicolas Rougier and Manuel Serrano.

The code fragment entry allows to precisely pinpoint excerpts of programs, and is particularly effective when used in conjunction with SWHIDs as detailed in the guidelines for archiving and referencing artefacts in Software Heritage: you can see a real world example in this recent replication study: Roberto Di Cosmo, Marco Danelutto [Rp] Reproducing and replicating the OCamlP3l experiment. ReScience C, 6 (1), 2020.

biblatex-software is actually a bibliography style extension, which means that one can add support for these four software entry types to any other BibLaTeX style used in documents typeset in LaTeX, like the biblatex styles for ACM articles. It requires the Biber back end, though, so do not try it with pure BibTeX.

We have prepared a video tutorial that provides an overview of the main features of biblatex-software and bring you up to speed on how to use it.

Full documentation and examples are included in the package, see in particular

This is an important first step: LaTeX users now have working support for software citation, and biblatex-software provides a reference implementation for developing software citation support in other bibliographic tools.

Let’s share the good news!

May 26, 2020