ABIS Infor - 2014-03
Over formaten - en het belang van metadata
Samenvatting
Ongetwijfeld hebt u reeds data van de ene applicatie moeten importeren in een andere. Hoe hebt u dat gedaan? Welke keuzes hebt u dan gemaakt? En van welke veronderstellingen bent u uitgegaan? Hebt u bijvoorbeeld aan metadata gedacht?
De context
Het is vaak nuttig en nodig data verwerkt in één applicatie toe te voegen aan data beschikbaar en/of verwerkt in een andere applicatie; denk bijvoorbeeld aan uw wekelijkse bankafschriften. Bewaart u deze op papier, elektronisch in pdf, of misschien in een formaat handig om door spreadsheets te worden verwerkt - bijvoorbeeld om op basis hiervan uw uitgavenpatronen makkelijker te kunnen analyseren?
In een ideale wereld is data perfect uitwisselbaar tussen applicaties onderling; en zijn databestanden aangemaakt door een eerste applicatie dus perfect bruikbaar door een andere. Maar een ideale wereld bestaat natuurlijk niet.
Het belang van metadata
Om data te kunnen uitwisselen tussen applicaties onderling - te laten interpreteren door een derde applicatie - is het nodig in eerste instantie de 'betekenis' van deze data grondig te beschrijven. Op basis van deze betekenis moet de derde applicatie immers tot interpretatie (en mogelijk interne conversies) overgaan. Het beschrijven - documenteren - van de betekenis van deze data moet gebeuren door de bronapplicatie; de bronapplicatie dient metadata aan te maken.
Metadata kan dus best worden gedefinieerd als een beschrijving van de eigenschappen en de kenmerken van de data zelf. Het is data omtrent data. Merk op dat metadata niet enkel belangrijk is voor data uitwisseling; ook het zoeken naar voor ons relevante data kan door de aanwezigheid van metadata sterk vergemakkelijkt worden (bijvoorbeeld, zoeken op auteursnamen, aanmaakdata, ...).
Vaak maakt men een onderscheid tussen inhoudelijke metadata, en technische metadata:
- inhoudelijke metadata: beschrijft de betekenis van de data zelf, wat de data voorstelt;
- technische metadata: beschrijft hoe deze data moet worden geïnterpreteerd, wat de mogelijk gehanteerde conventies zijn bij het weergeven van deze data - dus tegen welke achtergrond deze data dient te worden geïnterpreteerd. Dit kan heel ver gaan: van een beschrijving van data componenten tot bijvoorbeeld de specificatie van de gebruikte code-pages;
Onderstaande voorbeelden lichten e.e.a. verder toe.
Voorbeeld 1.
Data element - '07:02:02'
- inhoudelijke metadata: data element betreft een boekingsdatum van een verkoop
- technische metadata: data element heeft als structuur maandummer:dagnummer:jaaroffset na 2005
Het is niet mogelijk bovenstaande boekingsdatum juist te interpreteren - 2 juli 2007 - zonder over deze specifieke technische metadata te beschikken!
Voorbeeld 2.
Data rij - '01/02/2004;G;700000 ;VERKOPEN;Cursus 100;0.00 ;3 500.00 ; ;; '
Veronderstel dat we in deze enkel over de inhoudelijke metadata beschikken (bovenstaande data rij betreft een journaalboeking). Vermits bijkomende informatie ontbreekt dienen we vervolgens omzichtig de details te interpreteren.
Het betreft hier specifiek een boeking op 1 feb 2004 t.g.v. een verkoop van een cursus, ter waarde van 3500 EUR. Blijkbaar is er hier voor gekozen als decimale separator de punt te gebruiken i.p.v. de komma; en als groepseparator de spatie i.p.v. de punt (of niets). Eerder een angelsaksische benadering, niet? Is het tegen deze achtergrond dan niet nodig toch opnieuw even stil te staan bij de interpretatie van de boekingsdatum? Zijn we wel zeker dat het hier 1 feb 2004 betreft, en bijvoorbeeld niet 2 jan 2004? Of is het gebruik van de '/' i.p.v. de '-' dan weer voldoende 'Europees' om toch maar voor 1 feb 2004 te gaan?
Conclusie: eigenlijk weten we het niet - eigenlijk ontbreekt het ons aan metadata!
Formaten voor data uitwisseling
In de praktijk worden een relatief beperkt aantal formaten zeer vaak gebruikt voor data uitwisseling; het exporteren en importeren dus van data. Belangrijk bij de weerhouden keuze van formaat is na te gaan hoe met metadata wordt omgesprongen. Concreet: bevat het resultaat van de data export alle metadata (al dan niet in een extra, afzonderlijke file) nodig om de import (quasi- automatisch) en successvol te laten verlopen?
Een aantal vaak gehanteerde formaten worden in wat volgt kort aangehaald.
- het formaat XLS(X) - MS Excel filestructuren
Vaak gebruikt en makkelijk, al is het maar omdat het resultaat vaak onmiddellijk door MS Excel kan worden gelezen en geïnterpreteerd. Metadata wordt beperkt overgenomen uit de bron data: kolomnamen, mogelijk enkele veldeigeneschappen en/of velddefinities - datatypes.
- het formaat CSV - (veld/lijn) separated formaten
Mogelijk één van de meeste voorkomende formaten - ook één van de meest moeilijke om te hanteren wegens een gebrek aan metadata. Vaak beperkt de metadata zicht tot de aanwezigheid van titels - beperkte inhoudelijke metadata dus. Door het ontbreken van technische metadata is het noodzakelijk de inhoud van de data grondig zelf, en manueel, te interpreteren voorafgaand aan het importeren.
Bijkomende moeilijkheid: de keuze van een logische separator (welke hanteer je), en de problematiek van de interpretatie van de separator. Een mogelijk logische keuze is de vertikale streep - de '|'.
- het formaat text - vaak voor vaste lengte velden
Ook hier is interpretatie van inhouden niet evident - als kolomnamen aanwezig zijn in het exportformaat is dat al veel; interpretatie van data dient manueel te gebeuren, en vaak is het een uitdaging een verschil te maken tussen vaste en variabele lengte velden. Gebruik waar mogelijk vermijden; mogelijk is het handiger voor een CSV formaat te kiezen.
- het formaat PDF - output formaat, print formaat
Niet geschikt als formaat voor data uitwisseling.
- het formaat XML - Extensibe Markup Language
Interessant formaat voor data uitwisseling door de uitzonderlijke wijze waarop data en metadata - de z.g.n 'tags' - wordt gecombineerd tot één geheel. Formaat is voldoende open om te voorzien in de generatie van bijkomende informatie die een volledige beschrijving van de benodigde metadata inhoud. Dit wordt evenwel vaak nog niet gedaan, en hangt voornamelijk af van de gehanteerde (export/import) tools.
XML documenten zijn vaak omvangrijk.
Uiteraard zijn er nog andere formaten beschikbaar. Veel hangt af van de omgeving waarin data uitwisseling zal plaatshebben, en van de in deze omgevingen gehanteerde tools.
Tot besluit....
De kwaliteit van data en data uitwisseling tussen applicaties onderling hangt onlosmakelijk samen met de mogelijkheid die wordt geboden die data op een correcte manier te beschrijven en te interpreteren. Kies daarom - als de keuze wordt geboden - enkel die formaten die alle metadata behouden voor latere interpretatie en verwerking vereist.
Voor meer informatie en achtergronden verwijzen we graag naar onze opleiding 'Datawarehouse Concepten' - het belang van metadata wordt er uitgebreid besproken.