Data formaten
Onderzoeksdata komen in veel vormen voor: tekst, numerieke data, modellen, software, multimedia en data die discipline specifiek zijn of karakteristiek zijn voor het instrument waarmee ze gemeten zijn.
Een data formaat of bestandsformaat is de vorm waarin informatie gecodeerd is. De informatie is op zo'n manier gecodeerd dat een programma of toepassing (application) de data kan herkennen, lezen en gebruiken.
Je kunt data op drie manieren verliezen:
- De bits verliezen
de drager, bit rot - De documentatie verliezen
versies, metadata - De weergavemogelijkheid verliezen
operating system, hardware, toepassing
The history of digital storage1 geeft een mooie blik op de vergankelijkheid van dragers van informatie. Als software/hardware in ongebruik raakt, kunnen data onleesbaar worden. Om dit te voorkomen, is het van belang een data formaat te kiezen dat niet gebonden is aan een bepaalde software leverancier. Geen proprietary software dus. Standaard formaten zijn zowel door mensen als door computers te lezen. De formaten die een lange levensduur het beste garanderen zijn standaard formaten, uitwisselbare formaten, open formaten.
Data archieven hanteren vaak een lijstje met voorkeursformaten waarin de data aangeleverd moeten worden. Dit2 is het voorkeurslijstje van DANS.
3TU.Datacentrum beperkt zich niet tot een lijst van toegestane dataformaten, maar moedigt wel het gebruik van open en bekende formaten aan. Hiernaast staat een lijst van formaten die op dit moment in 3TU.Datacentrum staan.
Bij het opdoen van kennis over dataformaten hoef je niet alle technische ins and outs te weten. Waar het wel om gaat is dat je een gevoel krijgt voor de factoren die er spelen en in het gesprek met de onderzoeker globaal weet in welk data formaat de onderzoeker zijn dataset het beste aan kan leveren. Als het dan te ingewikkeld wordt, kun je altijd nog doorverwijzen naar de expert op dit gebied. Je kunt in ieder geval uitleggen dat langdurige, duurzame opslag een bepaald data formaat vereist. Als onderzoekers hun data toch op een andere manier in willen leveren, dan kan dat in principe maar dan krijgen ze niet de garantie dat het langdurig bruikbaar wordt gehouden.
Dataformaten worden aangeduid met hun MIME type. Een MIME type wordt opgeschreven als twee aanduidingen gescheiden door een schuine streep (MIME type/subtype). Voorbeeld: text/plain is de MIME type voor gewone tekst. MIME staat voor Multipart (Multipurpose) Internet Mail Extention. MIME geeft een webbrowser informatie hoe het programma met een bestand dient om te gaan.
Misschien herken jij dataformaten meestal aan hun extensie. Dat zijn de drie of vier letters die na de naam van het bestand volgen. Een filmpje op je computer heeft bijvoorbeeld de extensie .avi. Het bijbehorende MIME-type is video/msvideo. Als het .avi filmpje op een website staat hoeft de URL niet op .avi te eindigen terwijl het wel om een .avi gaat. Het MIME-type is via een website wel altijd te achterhalen. Het is een bestandsformaat dat "onder water" wordt doorgegeven en ook leesbaar is voor computers.
Er staan drie formaten voor tekst in het lijstje: plain, html en xml. Plain tekst wil zeggen dat de tekst niet is opgemaakt. HTML (HyperText Markup Language) is een formaat dat aangeeft hoe de informatie er op een website uit komt te zien. Je kunt met code aangeven hoe de tekst eruit moet zijn: gedrukt bijvoorbeeld of cursief. Die opmaak is bij plain tekst niet aanwezig. In XML (eXtensible Markup Language) geef je niet de opmaak aan maar kun je informatie verschaffen over de inhoud van het bestand, bijvoorbeeld door metadata toe te voegen.
Bij het uitwisselen tussen programma's wil de opmaak nog wel eens verloren gaan of verschuiven. Om dit te voorkomen zijn er toepassingen (applications) die voor een universele weergave van het document zorgen. Neem PDF (Portable Document Format). Dat is een open en universeel bestandsformaat voor het elektronisch uitwisselen van documenten waarbij de opmaak behouden wordt. Fijn voor zender en ontvanger (Application/pdf) Strikt genomen zijn de applications data formaten die door een bepaalde toepassing worden gelezen.
De voorkeursformaten voor audiovisueel materiaal zijn .mpeg en .msvideo. Mpeg is een compressiestandaard voor video en audio bedacht door de Moving Picture Experts Group. Msvideo staat voor Microsoft Video. Dat lijkt geen open formaat (er staat tenslotte Microsoft in) maar is het wel omdat het inmiddels helemaal is ingeburgerd.
Afbeeldingen (images) slaat 3TU.Datacentrum bij voorkeur op als .png. PNG staat voor Portable Network Graphics. Het is een bestandsformaat waarbij je kunt kiezen voor verliesloze compressie.
Data kan in veel talen geschreven zijn.
Hoe universeler de taal, hoe makkelijker de uitwisseling
Application betekent dus dat het bestand gerelateerd is aan een bepaald type toepassing of programma. Neem bijvoorbeeld:
- Application/vnd.google-earth.kml +xml. De geografische data zijn op zo'n manier gecodeerd dat ze leesbaar zijn in een zogeheten Earth Browser zoals Google Earth, Google Maps, and Google Maps op je mobiel.
- Application/gml+xml staat voor Geographic Markup Language: een standaard manier om geografische informatie te omschrijven. Geografische data omschrijven de wereld in ruimtelijke termen, gewoon in platte tekst. Het is een taal die onafhankelijk is van enige vorm van visualisatie van die data. In een earth browser worden de data juist wel gevisualiseerd.
- Application/x-java-archive wil zeggen dat de dataset gerelateerd is aan de programmeertaal Java.
- Application/octet-stream geeft aan dat er sprake is van een algemeen type binaire data die niet nader gedefinieerd is. Het is een restcategorie voor alle datasets waarvan niet duidelijk is wat het is.
Numerieke data
HDF5 (Application/x-hdf5) en NetCDF (Application/x-netcdf) zijn allebei dataformaten die veelvuldig worden gebruikt om grote hoeveelheden numerieke data (gegevens in getalvorm) op te slaan. Een gegevensbestand met numerieke data wordt ook wel een binary file genoemd: een bestand met informatie bestaand uit nullen en enen. Binary digits worden samengevoegd tot de naam “bits”. De manier waarop je de nullen en enen combineert representeert de informatie. Die informatie kan eigenlijk alles zijn dat digitaal omschreven kan worden zoals geluidsgolven, hoge resolutie MRI-scans etc.
Voor de beeldvorming: In een eenvoudige tabel staan in twee dimensies grootheden tegen elkaar uitgezet. In veel datasets worden er echter drie, vier, vijf of nog meerdere dimensies tegen elkaar uitgezet. Je spreekt dan van een multidimensional array3. Je kunt je voorstellen dat de grootte van een file exponentieel toeneemt met het aantal gerepresenteerde dimensies. Deze dataformaten maken het mogelijk dat je metadata toevoegt aan een dataset als geheel, maar ook aan de variabelen en dimensies in de dataset. Binnen HDF5 en NetCDF bestaan standaard definities voor de grootheden die je op de assen neerzet.
Application/x-matlab-data is ook een voorbeeld van numerieke data: Matlab is een geavanceerd wetenschappelijk rekenpakket.
Over Application/zip, Application/x-gzip kom je meer te weten in module 3.
1. Vasilev, M. (2011). The history of digital storage. Retrieved 8-12-2011 from http://mashable.com/2011/10/08/digital-storage-infographic/
2. DANS. (2011). Overzicht van de Preferred Formats bij DANS. Retrieved 8-12-2011 from
http://www.dans.knaw.nl/sites/default/files/file/archief/Preferred%20formats%20NL.pdf
3. Folk, M., Kozial, Q. (1996). HDF - The next generation.Retrieved 8-12-2011 from
http://access.ncsa.illinois.edu/Archive/backissues/96.1/hdf-tng.html
