Software Publishing
What is software publishing?
When we mention software publishing at VU Amsterdam, we mean the following:
Making research data, associated metadata, accompanying documentation, and software code (where relevant) accessible in a repository in such a manner that they can be discovered on the Web and referred to in a unique and persistent way (Inspired by the definition in the CODATA Research Data Management Terminology).
As stated in the Research Data and Software Management Policy, researchers are responsible for publishing all research software that leads to a published result (either in an article or other narrative form) for scientific reuse, meaning that these materials can be discovered on the Web and referred to in a unique and persistent way. This means that the existence of software is announced and that basic information about this software (like title, creator, moment of publication, version, etc.) can be found online, but it doesn’t necessarily mean that others will be able to access and download the actual software. If software contains (or will reveal) confidential information, information to which intellectual properties apply, and/or personal data, an assessment must take place to determine whether the software can be made available for reuse and if so, under which conditions. A custom licence (‘restricted’ or ‘closed’) will indicate if conditional access can be granted, and if so, what the conditions are.
Purpose
Publishing software is crucial for the accessibility of research output. It helps to make VU Amsterdam’s research visible, verifiable and, where possible, reusable. These are important goals for VU Amsterdam, as they contribute to a transparent reseach practice and enable other researchers to build on work that has been done by VU researchers. Publishing software means that researchers make their software known to the world, even if they cannot be accessed by others directly, but only after granting conditional access. This enables other researchers to reuse the software, leading to more impact of research that is carried out at VU Amsterdam. It may also result in new collaborations and citations. Another advantage is that it makes the work of a researcher more visible, going beyond the visibility of a publication alone.
Publication of research is not complete without the data used and the code written to clean and analyse it. Publishing data and software allows other researchers to use and build upon your work.
Requirements
At VU Amsterdam, we strive to make our research software FAIR. Publishing software is a crucial step in making it findable. As explained in the definition above, publishing means that you make software discoverable on the internet. As a result, other researchers can find out about the existence of your code and consider whether it may be useful for them in their own research.
A persistent identifier helps in making software findable, because it ensures that the persistent identifier always resolves to the correct digital object. Rich metadata also contribute to the findability of software. The more information you provide, the more likely it is that others will be able to find your software. It is beneficial to use terminology that is common in your discipline when filling out the metadata fields in a repository as well as key words in a key words or notes section of the metadata. Rich information about your software will also help other researchers determine whether your software is potentially relevant for them and is faster to assess than reading through the code itself.
Repositories provided by VU Amsterdam (Yoda and DataverseNL) will generate a Persistent Identifier for your software and they will ask you to fill out metadata fields. In this way, they contribute to making your software findable. This will also be the case for external trusted repositories (such as Zenodo).
When you publish your software, it is important to apply a licence to it. If you don’t do that, others will not be allowed to reuse your software. A licence is a legal instrument that tells others what they can and cannot do with your software and is therefore an important aspect of making software reusable.
Since code can be written in any number of ways to solve a problem, the absolute minimum that should be published to ensure verification is a (working) copy of the code/workflow that uses the raw data to produce the end result you have presented in your research and a list of the dependencies and their versions.
How does software publishing work in practice?
As mentioned above, software publishing must happen through a repository. These can be provided by VU Amsterdam or third parties.
- VU Amsterdam:
- External:
Often, code can also be published through software developing platforms.
Some of these provide an integrated option to get a DOI for your software or have documentation on how to include one within their recommended workflow.
Note that OSF can be used to publish code as well, but that you cannot assign a DOI to your software files specifically. You can assign a DOI at project level, but currently it is not possible in OSF to create an immutable copy of a file with its own DOI. For that reason, OSF is not the most suitable option for publishing software. If you do prefer to make your research output visible through OSF, you can consider having an additional copy of your code in the Yoda vault or connecting published software in DataverseNL to your OSF project, so that it can be viewed in OSF.
Detailed workflows addressing publishing software can be found in the guide about making your software FAIR and the topic about archiving software.
How does this help you in your research?
Formally published software is not always expected from research, but it can have many benefits. Publishing your software will not only allow for more citations, but it will also help you to reach broader audiences and provide more opportunities for collaboration both outside your field and institution. Although not always needed, publishing your software can help with grant applications and foster a community norm of sharing code in your field speeding up research by avoiding duplication.