Onderzoekssoftware en reproduceerbaarheid

CodeMeta: hoe beschrijf je jouw software zodat machines het begrijpen

Lieke de Vries Lieke de Vries
· · 4 min leestijd

Stel: je hebt onderzoeksoftware geschreven. Goede software. Software die anderen kunnen gebruiken om hun eigen onderzoek te versnellen.

Inhoudsopgave
  1. Wat is CodeMeta eigenlijk?
  2. Waarom heb je CodeMeta nodig?
  3. Hoe werkt CodeMeta in de praktijk?
  4. CodeMeta en de Nederlandse Open Science community
  5. Begin vandaag nog met CodeMeta

Maar hoe zorg je ervoor dat die software ook écht gevonden wordt? Dat machines begrijpen wat je tool doet, wie het heeft gemaakt, en hoe je het kunt hergebruiken? Daar komt CodeMeta om de hoek kijken.

Wat is CodeMeta eigenlijk?

CodeMeta is een standaard om software te beschrijven met gestructureerde metadata. Simpel gezegd: het is een manier om informatie over je software op te slaan in een formaat dat zowel mensen als machines kunnen lezen.

Denk aan een soort digitale roepkaart voor je code. Het project is opgezet om een gemeenschappelijk vocabulaire te creëren dat werkt over verschillende platformen en community's. CodeMeta maakt gebruik van schema.org types en JSON-LD als serialisatieformaat.

Dat klinkt technisch, maar het idee is juist heel eenvoudig: één standaard die ervoor zorgt dat iedereen — en elk systeem — op dezelfde manier naar software-informatie kijkt. CodeMeta is ontstaan uit een samenwerking tussen onder meer het Mozilla Science Lab, Software Heritage, en verschillende onderzoeksinstellingen.

Het is geen bedrijf, geen product dat je koopt. Het is een open community-initiatief dat probeert een fundamenteel probleem op te lossen: software is onmisbaar in de wetenschap, maar we hebben geen goede manier om het te beschrijven.

Waarom heb je CodeMeta nodig?

Software is tegenwoordig een essentieel onderdeel van vrijwel elk wetenschappelijk onderzoek. Toch wordt software zelden behandeld als een volwaardig onderzoeksproduct.

Artikelen worden geciteerd, datasets worden gearchiveerd, maar software? Die staat vaak ergens op GitHub zonder verdere beschrijving. Dat leidt tot problemen.

Hoe vind je software die je kunt hergebruiken? Hoe weet je welke versie je moet gebruiken?

  • De naam van de software
  • De auteur(s) en hun organisaties
  • Een beschrijving van wat de software doet
  • De licentie
  • De URL van de repository
  • Versie-informatie
  • Gerelateerde publicaties

Wie heeft het eigenlijk geschreven? Zonder gestructureerde metadata is het zoeken naar bruikbare onderzoekssoftware vooral geluk. CodeMeta lost dit op door een gestructureerd bestand — meestal een codemeta.json — te koppelen aan je software.

Dit bestand bevat belangrijke informatie zoals: En het mooie: dit bestand is leesbaar voor machines. Dat betekent dat zoekmachines, onderzoeksdatabases en andere systemen automatisch kunnen begrijpen wat jouw software is en doet.

Hoe werkt CodeMeta in de praktijk?

Je plaatst een codemeta.json bestand in de root van je repository. Dit bestand is geschreven in JSON-LD, een formaat dat veel wordt gebruikt voor gestructureerde data op het web.

Hierdoor kunnen platforms zoals Zenodo, GitHub, en Software Heritage deze metadata automatisch lezen en verwerken.

Er bestaan tools die het genereren van een CodeMeta-bestand makkelijker maken. De CodeMeta generator bijvoorbeeld: je vult een formulier in, en je krijgt een geldig codemeta.json bestand terug. Ook kun je bestaande metadata uit andere formaten — zoals een DESCRIPTION bestand uit R packages of een package.json uit Node.js — omzetten naar het CodeMeta-formaat.

CodeMeta is ontworpen om compatibel te zijn met andere metadata-standaarden. Het vocabulaire overlapt met schema.org, wat betekent dat je CodeMeta-metadata ook begrepen kan worden door grote zoekmachines. Daarnaast sluit het aan bij de FAIR-principles — Findable, Accessible, Interoperable, Reusable — die steeds belangrijker worden in de wereld van Open Science.

CodeMeta en de Nederlandse Open Science community

In Nederland wordt steeds meer ingezet op Open Science en reproduceerbaarheid. Organisaties zoals de VSNU, DANS, en SURF werken aan richtlijnen en infrastructuur om onderzoekssoftware zichtbaarder en beter beschrijfbaar te maken.

CodeMeta past perfect in die beweging. Door CodeMeta toe te passen, maken onderzoekers hun software vindbaar voor anderen.

Dat versnelt wetenschappelijke vooruitgang, want je hoeft het wiel niet steeds opnieuw uit te vinden. Het helpt ook bij het voldoen aan beleidsvereisten: steeds meer fondsenvragers en uitgevers vragen om goede beschrijving van onderzoekssoftware.

Begin vandaag nog met CodeMeta

Je hoeft niet alles in één keer perfect te hebben. Begin met de basis: een codemeta.json bestand in je repository met de naam, auteur, beschrijving en licentie van je software.

Vanuit daar kun je het bestand verder verfijnen. De CodeMeta-community biedt documentatie, tools en voorbeelden, of je kunt een CITATION.cff bestand aanmaken om je software nog beter citeerbaar te maken.

En het mooie is: je draagt daarmee bij aan een bredere beweging waarin software de plek krijgt die het verdient in de wetenschap. Niet als bijzaak, maar als volwaardig onderzoeksproduct. Want laten we eerlijk zijn: als je software niet vindbaar is, wordt het niet gebruikt. En als het niet wordt gebruikt, heeft al dat werk minder impact. CodeMeta is een kleine inspanning met een groot resultaat.


Lieke de Vries
Lieke de Vries
Expert in Open Science principes

Lieke adviseert onderzoekers over het publiceren van FAIR data volgens de nieuwste normen.

Meer over Onderzoekssoftware en reproduceerbaarheid

Bekijk alle 28 artikelen in deze categorie.

Naar categorie →
Lees volgende
Waarom onderzoekssoftware ook FAIR moet zijn en niet alleen jouw data
Lees verder →