Sist endret: 04.02.2021

Åpen kildekode (Open Source)

En viktig del av åpen og reproduserbar forskning er åpen kildekode. Det muliggjør testing og validering av blant annet analyser og modeller, og legger til rette for gjenbruk og videre utvikling av koden eller programvaren. God praksis for datahåndtering er i stor grad overførbar til kildekode, men det er noen hensyn og aspekter som er spesifikke for kildekode og programvare.

Kildekode og programvare som utvikles i forskningsprosjekt og annen akademisk virksomhet, bør inkluderes som en del av publiserte forskningsresultater. Det er mye samme praksis som ved håndtering og publisering av data. Dette inkluderer versjonering, dokumentasjon og metadata som sørger for at forskningsresultatene blir mest mulig FAIR, åpne og reproduserbare. I tilllegg kan fagfellevurdering av kode, både underveis i prosjekter, samt ved publisering, være et viktig ledd for kvalitetssikring. Se gjerne kommentarartikkelen A FAIRer future av R. Bast (Nature Physics, 2019), om publisering, gjenbruk og fagfellevurdering av kildekode.

Begrepsbruk og terminologi knyttet til åpen kildekode og programvare har en lang historikk, og det kan være nyttig å kjenne til noen av de viktigste av disse. Uttrykket «Free software» (fri programvare) ble tatt i bruk på 80-tallet av the Free Software Foundation. Her brukes uttrykket «free» i betydningen fri, og ikke gratis. Fri programvare skal garantere «fire essensielle friheter»: frihet til å bruke, studere, dele og forbedre programvaren. Senere ble uttrykket «Open Source» (åpen kildekode) tatt i bruk av The Open Source Initiative, som har definert et sett av ti prinsipper som definerer åpen kildekode. Det er mange likheter og mye overlapp mellom fri programvare og åpen kildekode. Hovedforskjellen er i utgangspunktet mye knyttet til filosofisk og etisk begrunnelse, mens praksis ofte kan være lik, og de mest brukte åpne lisensene er godkjent av begge organisasjoner. Les gjerne mer om historikk, forskjeller og likheter her eller her.

Begrepene FOSS (Free Open Source Software) og FLOSS (Free, Libre Open Source Software) har blitt tatt i bruk for å være nøytrale betegnelser som inkluderer begge initativene.

Publisering av kildekode

Flere nyttige verktøy og tjenester for å samarbeide om utarbeidelse av kode og versjonshåndtering brukes også for å gjøre kildekode og programvare åpent tilgjengelig. Noen eksempler på slike som er mye brukt inkluderer GitHub, GtiLab.com og Bitbucket. I tilllegg til å gjøre kode/programvare tilgjengelig gjennom slike tjenester, vil publisering i et egnet arkiv gjøre at den blir siterbar og mulig å gjenbruke, samt sikre langtidsbevaring. Et eksempel på et praktisk og nyttig løsning for dette, er integrasjon slik at materiale på GitHub kan arkiveres i Zenodo.

Mange av arkivene for forskningsdata kan også brukes for å arkivere og publisere kode og programvare. I tillegg er det en mulighet å publisere i egne tidsskrift for programvare, et eksempel er Journal of open research software. MIT libraries har utfyllende informasjon og råd om hvor og hvordan kode og programvare kan publiseres. 

Lisensiering av kildekode

Åpne lisenser for kildekode og programvare skiller seg fra lisenser som gjerne anbefales for vitenskapelige publikasjoner eller data, og det er et stort sett av ulike åpne eller frie lisenser å velge mellom. Det anbefales å bruke en de dedikerte lisensene for programvare, da disse er utarbeidet spesifikt med tanke på kode og hvordan denne kan endres og viderebrukes. En del lisenser tar også hensyn til mulige patentrettigheter i tillegg til opphavsretten. Se også Creative Commons sin FAQ om hvorfor CC-lisenser ikke bør brukes på programvare.

Siden det er et stor antall ulike åpne lisenser, presenteres her kun noen får av de vanligste og mest aktuelle programvarelisensene for publisering av kode utviklet i forskningsprosjekt. Et av de viktigste aspektene å ta hensyn til, er hvor «streng» en lisens er med tanke på betingelser for gjenbruk, og da særlig «copyleft». Copyleft er betingelser knyttet til at videre kopier og bearbeidelser gis tilsvarende muligheter og rettigheter som i den opprinnelige lisensen (tilsvarende Share Alike/Del på samme vilkår i noen av Creative Commons-lisensene). 

MIT License

En helt kort og konsis lisens som er blant de aller mest «tillatende» (ikke en copyleft-lisens), og har kun krav om at opphaveren krediteres og at lisensteksten inkluderes. Det regnes som en «akademisk» lisens, og er mye brukt i forskningsmiljøer. Lisensen kalles også «Expat License» og er nesten identisk med X11-lisensen (disse to beskrives av noen som varianter av MIT-lisensen).

Apache License 2.0

Dette er også en «tillatende» (permissive) lisens, men sammenlignet med MIT-lisensen kreves det i tillegg at endringer skal indikeres. Dette er en mer omfattende og «juridisk» lisens, som også dekker eventuelle patentrettigheter.

Mozilla Public License 2.0

MPL er en «svak» copyleft-lisens. Den har som betingelse at kildekoden og eventuelle endringer publiseres under en tilsvarende lisens, men hvis andre filer inngår som del av arbeidet er ikke disse nødt til å ha samme lisens.

European Union Public License (EUPL) 1.2

Dette er en relativt ny lisens utviklet av EU. Den er copyleft, men har en tydelig definert liste over hvilke lisenser som er kompatible, og tillater sammenslåing med arbeider under disse andre lisensene. Dette kan være en fordel sammenlignet med andre mye brukte copyleft-lisenser, eksempelvis GNU GPL (GNU General Public License 3.0).

Nyttige ressurser

Med det store antallet ulike typer lisenser kan det være litt utfordrende å få oversikt over hva som er relevante forskjeller, hvordan man kan velge lisens og hva man har mulighet til å gjøre med andres kode. Flere gode ressurser sammenligner ulike lisenser, og gir innføring i noen av de viktigste aspektene som skiller mellom dem.