Gå direkt till huvudinnehåll
Researchdata.se

Mappstruktur, filnamn och versionering

En förutsättning för att det forskningsmaterial du arbetar med ska vara välorganiserat är att du har en genomtänkt mappstruktur. Det är bra att ha en mappstruktur på plats redan i början av forskningsprojektet, innan data börjar samlas in. Det är också bra om de filer som används är organiserade på ett sådant sätt att även en person som inte är så insatt i projektet kan ta del av informationen.

Tips! När du startar ett projekt:

  • Bestäm vilka riktlinjer för versionering, mappstruktur och namngivning av filer som gäller i projektet
  • Uppdatera och dokumentera eventuella förändringar av eller avsteg från riktlinjerna
  • Om ni är många som arbetar i projektet: ge en person ansvaret för att se till att riktlinjerna för namngivning och versionering följs.

Mappstruktur

En bra mappstruktur gör det lätt för alla inblandade att se vad som finns var och fungerar dessutom som en mall för hur man ska spara och organisera data inom projektet.

Ett tips är att i den översta mappen i mappstrukturen lägga en README-fil i .txt-format som beskriver strukturen och hur du har valt att tänka även kring filnamn och versionering av filer. Om du senare behöver ändra på mappstrukturen dokumenterar du det i README-filen. 

I projekt där data samlas in i omgångar kan du skapa en mapp för varje insamlingsomgång med enhetliga namn på vad som samlas in, insamlingskontext och datum.

Mappar bör:

  • följa en struktur med mappar och undermappar som motsvarar projektarbetets upplägg och arbetsflöde
  • ha självförklarande namn som inte är längre än nödvändigt
  • ha unika namn (undvik att ge samma namn till både en mapp och en undermapp).

Filnamn

Det kan snabbt bli många filer i ett forskningsprojekt, så bestäm i förväg hur filerna ska namnges. Detta gäller inte minst om det är flera personer som skapar och namnger filer.

Ett filnamn bör:

  • vara unikt inte bara i sin mapp, utan helst i hela projektet. Om en fil råkar trilla ur sin mapp så ska man av filnamnet veta till vilken mapp den hör
  • ge en uppfattning om innehållet
  • vara ganska kort
  • ha versionsnumret direkt i namnet.

Versionering  

Forskningsarbete kräver ofta att datafiler bearbetas, ibland upprepade gånger. Efter att data har samlats in måste de rensas och bearbetas tills den slutliga datamängden skapas.

Det enklaste sättet att spåra sådana ändringar är att skapa versioner (lokala arbetskopior) av datafilerna. Det innebär att datafilerna inte ändras, utan resultaten av upprepade bearbetningar sparas som nya filer. Den ursprungliga versionen av data är vanligtvis från datainsamlingen och varje ny version av data får ett nytt versionsnummer (till exempel v01, v02, v03) eller markeras med datumet (i ISO-format, t.ex. 2023-08-28) då filen skapades. Med en praxis för hur filversioner namnges kan du snabbt hitta den senaste versionen av en datafil, dokumentera de olika versionerna och förstå var en viss fil finns i arbetsflödet.

Tänk dig att du har följande datafiler i ett projekt:

  • PeterS_ordlista_17jun.doc
  • talare1_ord_slutlig.doc
  • talare1_slutlig2.doc
  • talarePS_ord_ren.doc

Vad ser du här? I vilken ordning har filerna samlats in? Vad innehåller de? Hur förhåller de sig till varandra? Är Peter S. samma person som talare 1?

Anta att filerna i stället namnges på följande sätt:

  • talare1_ordlista_v00_orig.doc
  • talare1_ordlista_v01_ren.doc
  • talare1_ordlista_v02_ren.doc
  • talare1_ordlista_v03_ren_slutlig.doc

eller så här:

  • talare1_ordlista_2023-03-11_orig.doc
  • talare1_ordlista_2023-03-15_ren.doc
  • talare1_ordlista_2023-03-15_ren_v2.doc
  • talare1_ordlista_2023-03-16_ren_slutlig.doc.

Nu ser du att samtliga filer innehåller talare 1:s läsning av en ordlista. Filerna är versioner av varandra: originalfilen ligger överst och de andra är rensade versioner av denna, med den slutliga versionen nederst.

Versionskontroll

Genom att föra en logg över ändringar där du dokumenterar när och hur varje filversion skapas blir det enklare att återställa filer från säkerhetskopior. I en logg kan du också redogöra för hur materialet har bearbetats om någon senare ifrågasätter projektets data eller slutsatser, eller om du själv behöver gå tillbaka och modifiera analyskedjan.

Versionskontroll innebär att du arbetar mot ett centralt datalager där alla förändringar sammanställs. Det ger ett mer sofistikerat sätt att hantera versioner av data. Varje ändring av en datafil dokumenteras och ändringar i flera filer kan paketeras tillsammans. Flera användare kan samarbeta om att ändra filer, med möjlighet att slå ihop samtidiga ändringar och lösa eventuella överlappningar. Användare kan också skapa lokala kopior och testa ändringar.  

Git och Subversion är två vanligt förekommande öppna verktyg för versionskontroll av källkod och textbaserade datafiler (.txt, .csv, .md). Versionskontroll av programspecifika filer (till exempel .xlxs) kan däremot kräva en kommersiell lösning. 

Några exempel på molnbaserade plattformar som erbjuder lagring av kod, kontroller och samarbetsverktyg är GitHub, BitBucket och GitLab. Ett kodlager kan också sparas lokalt på din egen dator eller under en Git/Subversion på servrar som används i din forskargrupp. 

Programmatisk versionshantering

Ett alternativ till versionshantering med filnamn är att skapa ett skript eller en körbar fil som läser originalfilen och modifierar data. Detta är en vanlig metod för statistiska analysprogram som STATA, R och SAS.  

Du bör i så fall dokumentera analyskoden noggrant så att andra användare kan förstå bearbetningsstegen. Du kan även publicera skriptet tillsammans med data. Observera att vissa högt rankade tidskrifter kräver att analyskoden görs tillgänglig.