The software archivist 

INTERVIEW Jan Bernoth, Firas Al Laban, Ulrike Lucke

Millions of people worldwide work transparently and collaboratively in open source projects. Roberto Di Cosmo and his team have been working on making their work accessible for a long time, for example by building Software Heritage, a universal archive for software source code. He talks about best cases, the importance of learning the basics and the way his own background has shaped his approach to research data.

Roberto, you started off in theoretical computer science and mathematics. How has this shaped your approach to research data?

Very much! These are two fields where proof and transparency of methodology are essential. I later transferred these principles to the management of research software. In my earlier career, for example when developing a programming system together with Xavier Leroy, we placed great emphasis on making not only our research results but also the underlying source code and test data publicly available. The question of where to place our code, where to store our data and how to make our scientific work accessible, was always present. Although we recognized the importance of these aspects, we initially lacked suitable platforms to do this effectively.

Why is that? 

Particularly, the permanent storage of the source code was problematic back then. We wanted to ensure that our work could not only be used, but also validated and further developed, but placing source code on a file server or a web page turned out to be a dead end, as web links do not persist. The later emergence of collaborative code development platforms with SourceForge, and many others after it, including GitLab.com and GitHub, seemed a great alternative, and they were designed for source code development, making them much more useful than simple distribution platforms. But forges are not archives: projects can be renamed, moved or erased, and even big platforms can go away, like it happened to Google Code and Gitorious.org a few years ago. This made the challenge of long term code management apparent and led developers to use document management systems to deposit snapshots of source code. But this approach has big limitations, as it does not preserve the full history of development, which is needed for understanding and attribution. The final answer emerged with the creation of Software Heritage, a global nonprofit open and multi-stakeholder infrastructure designed specifically to collect, preserve and share all publicly available source code with its full development history.

Quote character

“As a researcher, you are not only a participant, but also a shaper in the process of scientific research!”
Roberto Di Cosmo

Roberto Di Cosmo

researches about theoretical computer science, with a focus on programming, languages, semantics and mathematical logic – in particular, tools that prove the correctness of programs. In the course of his career, he turned to software engineering to explore the processes behind the creation and maintenance of software, with a particular interest in the dynamics of free and open source software.

An important step for achieving the FAIR principles—and we’ve come a long way since then. Which tools are you currently using to implement these principles in your research?

One thing I do is to integrate machine-readable metadata files, such as codemeta.json, into my software projects. These files contain detailed descriptions of the software, the license and my contributions and can easily be filled in with a simple editor. This metadata is archived in Software Heritage alongside the source code, and can then be transparently imported into other scholarly infrastructure. In France, I use the national Open Access portal known as HAL, where I can easily reference the source code archived in Software Heritage in a few clicks, by entering the Software Hash persistent identifier (known as SWHID) and letting the system automatically populate the form for me, avoiding the usual copy/paste mistakes. This process concludes with a check by librarians who ensure the quality of the metadata. Such a system not only offers reproducibility and a simple citation method, but also relieves me considerably of administrative tasks.

How so? 

For example, annual reports on my software contributions no longer have to be laboriously compiled manually, but can be automatically pulled from the system, categorized according to various criteria such as institution, author and license. This saves time and significantly reduces the workload at the end of the year. This methodology represents a win-win situation: It not only promotes compliance with the FAIR principles, but also facilitates the daily work of researchers. Particularly young researchers should not underestimate the importance of metadata. It contains detailed information about your research, your identity and your institution. This metadata is valuable and should be handled carefully to ensure your productions can be easily found and referenced.

 

You have already voted for this poll.

Opinion

To what extent should researchers be required to publish their code alongside papers?

1: Not at all 5: Absolutely essential

What other recommendations do you have for young researchers who want to improve their research data management?

For people at the beginning of their career, it is essential to recognize that the outcome of their work is valuable and potentially reused, perhaps even in just a few weeks or months. As a researcher, you are not only a participant, but also a shaper in the process of scientific research! It is important that you learn the basics now so that you can uphold and advance these principles later in your career.

Software Heritage plays a central role in this, right?

Yes, exactly. It is a long term initiative that aims to permanently archive and make accessible the source code of all publicly available software. This ensures that anyone, at any time, can access the exact version and development history that is needed. The archive is managed by a non-profit foundation that is supported by UNESCO and many other partners ranging from industry to academia. We are constantly adding features: the last one is a simple and uniform way to obtain software citations for software you use. To specify the way to cite software you create, just add the proper metadata, and it will work for everybody, no matter where the software is developed, be it on GitHub, GitLab.com, a GitLab instance or any other code hosting or distribution platform.

Are there other projects that you consider best cases in research data management?

One example of excellent research data management that I know of comes from the Journal of Information Processing Online (IPOL). It was founded in 2011 with the precise aim of publishing research papers on image processing. The special feature of IPOL is that authors not only have to describe their algorithms, but also provide an open source implementation of their software. This implementation is systematically archived into Software Heritage and must also be adapted to function as a demo within the journal infrastructure. Visitors to the website can review the source code and test the software directly, by uploading images and changing the parameters to see the effects of the algorithm. This model allows anyone to verify the results and use them further.

 

What impact has this practice had on the scientific community?

A very positive one. More and more journals are asking for the source code to be made available for transformation and data management. But that also means you need someone to read and review it. In my area of computer science, we have artifact evaluation committees that check that the software artifacts linked to scientific publications are at least fundamentally functional and can reproduce the results described in the paper. In addition, there are initiatives in France such as the national prize for open science research software, which recognizes the importance of software as a valuable research output and awards researchers for it. These developments show a cultural shift in the scientific community that emphasizes the importance of good research data management and increases the willingness to invest in these processes. These efforts reconnect us with the basic principles of science, which aim to build and share knowledge rather than just produce publications.

What message would you give to your younger self? How could you have better prepared for today’s challenges?

Oh wow! A message to my younger self would be to appreciate the power of community. In my earlier career, especially in disciplines like theoretical computer science where people often work alone, I was not fully attuned to the importance of collaboration and collaborative research. The African proverb “Alone we go faster, but together we go further” sums it up. As a young researcher, I thought that working alone would lead to faster results. But true scientific progress is often a collective effort. It is important to share the results, make sure they are reusable, and integrate the contributions of others into your own work. This approach increases the reach and impact of your research. I would advise my younger self to recognize early on the importance of research data management and archiving source code. This will make research more accessible and strengthen the scientific community as a whole.

You have already voted for this poll.

How important is long-term preservation of software for future research?

1: Not important 5: Extremely important

About the project 

Software Heritage is an international nonprofit open initiative that aims to collect all publicly available software in source code form along with its development history, perserve it and share it with everyone who needs it.

You have already voted for this poll.

How valuable is community collaboration (vs. working alone) for advancing science?

1: Not valuable 5: Extremely valuable