Software citation is key to research reproducibility, and software is increasingly being published and cited. And herein lies the problem: that software is not accounted for with a standardised method of citing, thereby making it difficult to give credit to the sources it is based on. This means that neither software packages or library dependencies, nor data sources or research papers containing algorithms implemented in that software, are credited, often being difficult to even identify.
We envision a tool that can be incorporated into software to record the references used, wherein the code information from those references was applied, as well as any other relevant information related to those references – such as specific parameters employed to execute that part of the code. Our solution will also produce a summary of the references in a standardised format, such as Zenodo or citation file format (CFF), and register it with an indexed online repository. Finally, the tool should provide the references used during a particular run of the software, enabling researchers to incorporate that information when publishing their results, supporting its reproducibility.
Work at the Sprint
The Research References Tracking Tool (R2T2) provides a basic proof of concept of what such a desirable package should look like in Python. We would like to bring R2T2 up to a state of development fit for purpose according to the solution described above. Specific issues to tackle include:
- Implementing the possibility of adding the references in a range of different formats (DOI, plain text, Latex key and so on) to ease the adoption of the tool and range of possible cited objects
- Recording relevant runtime information to provide a comprehensive report
- Providing the summaries in a standardised format, which is machine and human-readable, and with the possibility of registering them with an indexed online repository
Moreover, it will be desirable to develop equivalent sister tools for the other common programming languages used in research, such as R, Julia, Fortran or C/C++.
We are looking for…
Contributors with experience in any programming language commonly used in research: Python to contribute to the existing R2T2; and R, Julia, Fortran or C/C++ to start one of the sister projects. We are also looking for developers of other projects willing to adopt the tool into their own work and guide its development towards a solution that works for them; and experts in open research, citation index systems or online data and software repositories, to help to implement an output format that can be easily used by other third-party tools.