Publicatie:Data schonen

Uit Meemoo Kennisbank
Naar navigatie springen Naar zoeken springen


Samenvatting

Data zijn in meer of mindere mate vuil wanneer ze fouten bevatten, onvolledig zijn of inconsistent opgebouwd zijn. Verschillende soorten informatie zijn niet van elkaar gescheiden door een scheidingsteken, gelijkaardige data zijn in diverse velden weggeschreven, er is een ongecontroleerde meertaligheid, informatie staat dubbel in een database zonder dat duidelijk is welke informatie de juiste is, de data zijn niet geactualiseerd, ... Het is efficiënter en aangenamer werken als je die vervuiling tot een minimum beperkt blijft. Eenvoudige dataschoningsacties kun je doen op basis van een csv-export in een spreadsheetsoftware. Voor een meer doorgedreven dataschoning kun je software als OpenRefine gebruiken.


Referentie
Titel Data schonen (Voorkeurstitel)
Locatie META nummer 2020/2
Uitgever
Jaar van uitgave 2020
Rechten CC-BY-SA
Persistent ID


Auteur

Bart Magnus (meemoo, Vlaams instituut voor het archief)

Vuile data?

Data zijn in meer of mindere mate vuil wanneer ze fouten bevatten, onvolledig zijn of inconsistent zijn opgebouwd. Om goed met je data te kunnen werken, is het belangrijk om ze maximaal schoon te krijgen en te houden. Maar hoe raken data vervuild en hoe krijg je ze weer schoner?

Heel wat collectiemetadata zijn in zekere mate vervuild. Net zoals een kraaknette woning, een leeg bureaublad en een lege to do-lijst zijn 100% op en top propere data in de meeste gevallen een illusie. Toch is het efficiënter en aangenamer werken als je de vervuiling tot een minimum beperkt.

Velden en mensen

Je data kunnen om verschillende redenen vervuild geraken. Soms werken het gehanteerde datamodel en de gedefinieerde datavelden vervuiling in de hand. Zo kunnen data te weinig gestructureerd zijn, waardoor verschillende types informatie in één veld terecht moeten komen. In het beste geval zijn verschillende soorten informatie van elkaar gescheiden door een scheidingsteken (separator) zoals een puntkomma (;) of sluisteken (|). In dat geval kun je de informatie achteraf vaak nog geautomatiseerd uit elkaar halen. Wanneer er geen strikt toegepast scheidingsteken is of het scheidingsteken ook opduikt in de data zelf (bv. een koppelteken) vraagt het veel manueel werk om de data weer te scheiden. Wanneer je de data in lange vrije tekstvelden wegschrijft en er meerdere mensen data invoeren, riskeer je een onoverzichtelijke en weinig logische of bruikbare datastructuur.

Ook wanneer de data wel sterk gestructureerd zijn, kan het fout gaan. Veldnamen en procedures om data in te voeren kunnen best duidelijk gedefinieerd en goed gedocumenteerd zijn. Als dat niet zo is, ontstaat het risico dat verschillende mensen gelijkaardige data in diverse velden wegschrijven. Een ander risico op vervuiling is ongecontroleerde meertaligheid. Wanneer in je database zonder reden verschillende talen door elkaar gebruikt worden om bv. geografische entiteiten aan te duiden (zoals Gent, Gand of Ghent), vraagt het achteraf heel wat werk om die weer bij elkaar te brengen. Een manier om dit op te lossen is om zo veel mogelijk met gecontroleerde termenlijsten te werken, waar al dan niet verschillende taalversies aan zijn gekoppeld. Bovendien kun je je gecontroleerde lijsten ook koppelen aan externe gecontroleerde termenlijsten, van zeer specifieke (bv. VIAF voor personen) tot zeer algemene (bv. Wikidata voor allerhande concepten).

Dubbels

Foto: CEphoto, Uwe Aranas / CC BY-SA

Soms staat informatie dubbel in een database en is het niet meer duidelijk welke informatie juist is. Bij de migratie naar een nieuwe database kan een dataveld (bv. creatiedatum) meegenomen worden terwijl men achteraf besluit om de creatiedatum voortaan in een ander veld te registreren. Soms gebeurt dat ook nog eens in verschillende datumformaten. Het harmoniseren van de formaten waarin gelijkaardige informatie weggeschreven wordt is dus ook een vorm van dataschoning. Daarbij is niet enkel een beslissing over het te hanteren formaat nodig, maar ook duidelijke communicatie met en procedures voor iedereen die data invoert. Anders bestaat het risico dat sommige invoerders alsnog het oude veld blijven gebruiken om correcties aan te brengen of nieuwe data in te voeren, terwijl anderen het nieuwe veld (en een ander formaat) gebruiken. Het is dan onduidelijk welk veld de juiste informatie bevat en bovendien kunnen beide velden elkaar tegenspreken.

Up-to-date?

Een laatste type vuile data is data die niet bijgewerkt zijn, waardoor een gebruiker foutieve informatie te zien krijgt. Een voorbeeld is de auteursrechtelijke status van een werk. Elk jaar komen er nieuwe werken in het publiek domein. Rechtenmetadata die deze realiteit niet volgen, zijn dus fout.

Vuil, en nu?

“Garbage in, garbage out”, luidt de spreuk. Inderdaad, op basis van schone data lever je betere kwaliteit. Je data zijn immers beter doorzoekbaar en zowel intern als extern bruikbaarder. Daardoor kunnen zowel interne als publieksgerichte processen verbeteren.

Vervuilingen in je data opsporen lukt het beste op basis van een export. Eenvoudige acties kun je al op basis van een csv-export in een spreadsheetsoftware (bv. Microsoft Excel, LibreOffice Calc of Google Sheets) uitvoeren. Denk bijvoorbeeld aan onlogische jaartallen, lege velden. Afhankelijk van je collectiebeheersysteem kun je mogelijk de metadata in het csv-bestand aanpassen en vervolgens de gewijzigde metadata weer uploaden.

Voor een meer doorgedreven dataschoning kun je open source software als OpenRefine gebruiken. Ook hier werk je op basis van een export van je metadata. OpenRefine laat je onder meer toe om overtollige witruimte te verwijderen, data uit te splitsen over verschillende kolommen of externe authorities te koppelen. Wie technisch iets meer onderlegd is, kan overwegen om schoningsacties rechtstreeks via scripts op de data uit te voeren.