Constructieprincipes voor de informatiekundige: (8) Data en metadata scheiden in opslag en verwerking
Data is hot. Iedereen wil datagedreven werken en AI werkt alleen op grote hoeveelheden data. Kortom, data is het nieuwe goud! Maar wat is data precies? In de vorige blog heb ik aangegeven dat er verschillende categorieën data zijn en die ging specifiek over de omgang met stamdata en transactiedata. In deze blog sta ik stil bij metadata en de noodzaak om dat te onderscheiden van de data zelf en gescheiden te verwerken. Anders ontstaat een spaghetti in het systeemlandschap en wordt zoeken naar specifieke data de spreekwoordelijke speld in de hooiberg.
Wat is Metadata?
Metadata is informatie over de data of de verwerking daarvan. Is het onderwerp waarover de data gaat zelf data, een datadrager (document, media etc) of een informatie-verwerkend proces? Dan is die data daarover de metadata of metagegevens.
Van een document zijn dat bijvoorbeeld de opsteller, het aantal woorden, creatiedatum, opslaglocatie, bestandsformaat etc. Maar het kan nog veel meer zijn en is afhankelijk van de metagegevens die je wil vastleggen. Zo zijn bijvoorbeeld de gegevens over een wijziging in een registratie ook metadata; wanneer de wijziging is doorgevoerd en door wie (logging). Maar ook het aantal fouten in een bestand of het aantal objecten in een verzameling. Of de tijdsduur om een formulier in te vullen.
Tenslotte zijn datamodellen ook een vorm van metadata. Semantische modellen, een ontologie, begrippen etc.
Een Meta-informatiesysteem
Informatiekundig beschouwen we gegevens als een afbeelding van iets in de werkelijkheid (een gebeurtenis, transactie of situatie). Dan is metadata dus een afbeelding van die informatie (-verwerking). Zo bezien is sprake van een informatiesysteem dat (een deel van) de werkelijkheid (of handelingen in de werkelijkheid) kan vastleggen en kun je spreken van een meta-informatiesysteem als dat de verwerkingen door het informatiesysteem vast legt.
Waarnemingen van het meta-informatiesysteem zijn bijvoorbeeld geconstateerde fouten, meten van gebruik, aantal transacties etc. En op basis hiervan kunnen dan weer handelingen in de werkelijkheid worden uitgevoerd zoals correcties.
Waarom scheiden?
Metadata heeft een geheel eigen begrippenkader , eigen kwaliteitseisen en vaak een andere dynamiek dan het informatiesysteem zelf. Dan is het verstandig om de metadata onafhankelijk van de data in het informatiesysteem te onderhouden (ontwerpen, vastleggen en verwerken en wijzigen).
Daarnaast leidt het bijhouden van data en meta-data in één opslag tot verwevenheid en onzichtbare koppelingen. Daardoor neemt de onderhoudbaarheid van het gehele systeem sterk af (zie constructieprincipe 2 over ontkoppelen ).
Tenslotte is metadata van groot belang voor indexeren en zoeken van data. Het vormt de inhoudsopgave van de dataverzameling en over verzamelingen heen.
De scheiding manifesteert zich voor de informatiekundige op meerdere niveaus. Op planningsniveau kunnen de verschillende systemen worden geïdentificeerd die zorgen voor de verwerking enerzijds en besturing van de verwerking anderzijds. Op systeemniveau kan onderscheid worden gemaakt tussen verschillende opslaglocaties en verwerkingsprogrammatuur. Op objectniveau ontstaat een duidelijk verschil tussen de inhoud van de informatie (bijvoorbeeld de brief of het bestand) en de metadata daarover (de informatie over de brief, het bestand)
In de praktijk
In de praktijk wordt de regel van scheiden soms wel en soms niet consequent toegepast. Het is algemeen bekend dat het verstandig is om logbestanden van een verwerkend systeem apart op te slaan, al was het maar om de mogelijke gevoeligheid van de informatie. Maar ook omdat de onderhouds- en release cycle van de loggingsfunctionaliteit een andere is dan die van het systeem dat wordt gelogd.
Veel organisaties scheiden de data in transactiesystemen (de registratie) van de data voor business-intelligence verwerking. BI verwerkt data en meta-data die weer leidt tot nieuwe data (analysedata, zie de vorige blog). Die scheiding helpt om de systemen te ontkoppelen en onderhoudbaar te houden en ook om ze afzonderlijk te kunnen vernieuwen.
Een ander voorbeeld zien we bij document management systemen. DMS’en brengen een scheiding aan in de opslag van de documenten en de opslag en verwerking van de metadata daarvan. Ook hier is onderhoudbaarheid en doorzoekbaarheid een belangrijke reden zoals het feit dat een nieuw DMS vaak kan worden gekoppeld met een bestaande documentopslag. De verzameling meta-data vormt dan een index die met een sleutel verwijst naar de inhoudelijke data.
Bij de huidige inrichting van de BasisRegistratie Personen (BRP) lopen data en metadata nog wel eens door elkaar. In de BRP zelf wordt bijvoorbeeld ook bijgehouden wanneer een wijziging is opgetreden en zelfs transacties (huwelijk, scheiding, adreswijziging, kiesrecht) worden in dezelfde opslag verwerkt als de stamdata van een persoon. Het is op zich niet ongebruikelijk om bij de data zelf ook op te slaan wie het record heeft aangemaakt en wanneer het voor het laatste is gewijzigd maar daarmee is de BRP een lastig onderhoudbaar en zeker lastig vernieuwbaar systeem geworden! De wijzigingshistorie is een apart (meta)gegeven en door dat apart in een index bij te houden pas je het scheidingsprincipe zuiver toe en kun je veel vragen over dat gegeven los van het opgeslagen gegeven zelf beantwoorden. De registratie van het basisgegeven komt dan los te staan van de registratie van het proces om dat gegeven te bevragen , te wijzigen en te onderhouden.
Dit zijn allemaal nog vrij conventionele toepassingen maar hoe zit het met het Data lake en AI-toepassingen? Ook daar blijkt dat zonder metadata het lastig zoeken wordt naar de toepasselijke data! AI maakt gebruik van vele indexen (metadata) die verwijzen naar de bronnen waar de data zelf is opgeslagen. En om een waarde toe te kennen aan die data moet ook bekend zijn hoe actueel die is, hoe vaak gebruikt, door wie geplaatst en in welke taal etc. Allemaal metadata die het zoeken veel sneller maakt.
Als die metadata verweven met de bronnen zelf zou zijn opgeslagen was CHATGPT nog sciencefiction…… want dat moet je zoeken in de hele hooiberg in plaats van in de indexen ervan. Bij Data lake analyse is er altijd het werk van de data-analist om in het data lake structuur aan te brengen (achteraf).
De informatiekundige moet bij het ontwerp van een registratie rekening houden met het scheiden van data en meta-data. Wat zijn de stamgegevens, wat zijn de transactiegegevens en wat zijn de metagegevens? Welke analyses wil men op de registratie uitvoeren? Welke indexering is gewenst en welke zoekvragen? Met metadata wordt de eigenlijke data onderhoudbaar, vindbaar, toegankelijk en interoperabel[1].
[1] Ook wel de FAIR principes (https://www.go-fair.org/fair-principles/). Het voert te ver om hier in deze blog op in te gaan.
Lees hier de andere informatiekundige principes:
- Betekenisloze identiteitsaanduiding, lees hier.
- Ontkoppelpunten voor complexiteitsreductie en flexibiliteit, maximale onafhankelijkheid van delen, lees hier.
- Consistentie van taal, lees hier.
- Duidelijke verantwoordelijkheidsverdeling en functiescheiding voor de administratie, lees hier.
- Beslissingsbevoegdheid voor de uitvoering zo laag mogelijk beleggen, lees hier.
- Autorisatie loskoppelen van identificatie/authenticatie, lees hier.
- Enkelvoudige vastlegging van stamdata, lees hier.
- Data en metadata scheiden in opslag en verwerking, lees hier.
- Standaardpatronen toepassen zonder afwijkingen, lees hier.
- Applicatiefunctie en dataopslag scheiden, lees hier.
- Apparaat onafhankelijk ontwikkelen, lees hier.