Skip to main content
To KTH's start page

Publishing other digital research objects

Research can result in many different kinds of digital objects, most commonly source code, but also models, visualisations or software. Although publishing them is profoundly important to the research endeavour, it is not always obvious how best to share them. Here you can learn more about how to publish other types of digital research material.

Graphics for linking research outcome

As a baseline recommendation, you should hyperlink the various digital research objects to/from the published paper, to ensure that all digital research outcomes pertaining from the published paper can be found and be part of the academic discourse. But note that not all platforms that offer to host your work guarantee long-term storage, which is an important factor to consider when choosing a repository.

Repositories that assign the digital object a permanent identifier such as a DOI have undertaken on themselves a duty to archive the work for a period of 10 years (sometimes even longer). A DOI also makes the digital research object machine-discoverable and makes it much easier for others to cite it.

If you intend to document or share the digital objects resulting from your research project we encourage you to use KTH Data Repository  at an early stage in your research project. If your digital object is interactive (for example, a web dashboard) you may want to create a metadata entry in the repository (optionally with source code) with a hyperlink to where the dashboard is hosted.

To ensure that digital research outputs can be reused in future research we strongly recommend that your adhere to the FAIR principles (Findable, Accessible, Interoperable, Reusable) in your work. Depending on your field of research there may also be other ethical considerations that apply.

Read more about the FAIR principles

Publishing source code or software

Before publishing source code or software we recommend you familiarize yourself with FAIR4RS (FAIR Principles for Research Software). Read more in the article Introducing the FAIR Principles for research software

The choice of how or where to publish your code/software can be dizzying due to the sheer volume of platforms or repositories offering such services. To help you, we suggest you carefully consider the following points:

  1. If your work was funded by project financing, what will happen to your software once the project ends?
  2. On which platforms do you plan to share your software?
  3. Do you need to consider ethical or legal questions when sharing your work via such platforms?
  4. Do you need to consider information security during development or when sharing the work? Do you need to consider terms of use?
  5. Does your work represent a valuable research outcome?
    In that case the source code should be archived, primarily on KTH Data Repository  or KTH Community on Zenodo .
  6. Do you intend to archive the source code publicly?
    Should you make the source code citeable (not a bad idea usually) or do you prefer that others cite your accompanying paper? Why or why not?

An advantage with publishing digital research outcomes on an academic platform that assigns DOIs is that your work integrates naturally with the academic citation system.

Tip: SciLifeLabs Serve  is an academic platform/repository for publishing software applications or machine learning models and is available free of charge for all KTH-affiliated researchers.

Read more about national guidelines for the publication of scientific code

Get a DOI for your software release

Both Zenodo and KTH Data Repository offer you the ability to claim a DOI for a software release from your GitHub repository (although the latter is currently not as easy to use). Once you have configured this integration, the software will get a DOI and each new release automatically gets its own DOI to allow others cite that specific version. If you want to do this we strongly recommend that you document your software using CodeMeta and/or CFF

Additionally, you may connect your ​​​​​​​ORCID iD on your GithHub profile ​​​​​​​.

Choose a license

When beginning a project, the single most important consideration is which license to use. Due to copyright law, all software is by default non-reusable. Your choice of license determines the reusability of your work, along a wide-ranging spectrum covering anything from "use it for anything as long as you allow anyone else to use your work" to "use it for anything, including commercial purposes". Without choosing a license, even the original authors may lose ability to fully use their software in the future.

For an academic work, the main consideration is the choice between a copyleft license or a permissive license.

  • A copyleft license means that any derivative works must also be equally open – this is used when one wants to ensure that derivative works stay free (as in freedom). The GNU General Public License  is a typical example.
  • A permissive license allows anyone to use the software for any purpose, even in derivative works with non-reusable licenses. The MIT License  is a typical example.

To help you choose choosealicens.com  provides a good starting point if you feel unsure about which license to use. And you are always welcome to ask KTH Research Data  for advice.

Help others find, use, and cite your work

The best way to help other researchers find and reuse your source code or software (and to cite it correctly) is to document its metadata using codemeta.json file and to create a CITATION.cff . Both of these files, assuming you want to use them, must reside in the root of your repository.

A CITATION file is like a title page for your software – it shows others (including machines) how to correctly cite your software project. A codemeta.json file is more like a passport for your software.

Note: It is a good idea to document your software using a codemeta.json file even if you already have a CITATION.cff file.

There are tools to generate a codemeta.json file for you, as well as tools to convert from one format to the other:

CodeMeta is a community standard with more than ten years of history and is actively supported by scientific repositories and many commercial platforms, including Zenodo, Invenio, Software Heritage, Figshare, and GitHub.

Read more about scientific software metadata: