In de vorige blog introduceerden we de Metadata Timeline als manier om enkele hardnekkige problemen bij het delen (en aggregeren) van metadata te voorkomen.
In deze blog leggen we uit hoe je een metadata timeline kunt maken en welke drie essentiële eigenschappen je metadata daarvoor moet hebben.
Je metadata wordt hierdoor inherent deelbaar zodat je niet meer afhankelijk bent van toolchains om de consistentie te waarborgen.
Records
We zullen hierbij spreken over records: een aantal gebundelde eigenschappen die betrekking hebben op hetzelfde onderwerp of voorwerp. Bijvoorbeeld de titel, een datum en een auteur van een boek vormen een record, maar het kan ook (heel) complex zijn.
Welke eigenschappen er precies zijn en hoe ze beschreven en gebundeld zijn doet er nog niet toe. Ook de manier van uitwisselen doet er op dit moment nog niet toe.

Het doel
Het doel is om records zelfstandig te maken zodat ze buiten een systeem (of toolchain) kunnen overleven. We willen een data-centric oplossing die de records onafhankelijk maakt van techniek en protocollen en dergelijke. Records die je kunt delen, opnemen in portals, posten op een willekeurige site, of zelfs overschrijven op papier zonder dat dat de bruikbaarheid beïnvloed. Dus: je kunt kopiëren zoveel je wilt.
De drie stappen
Om deelbare metadata te krijgen zet je de volgende stappen:
1. Identifier
Geef de metadata een identifier zodat je er naar kan verwijzen. Gebruike een moderne identifier zoals een hash of een UUID want de nieuwe records kunnen zich overal bevinden en zijn ontkoppeld van welke toolchain dan ook. Een hash heeft de voorkeur vanwege de ingebouwde consistency-check.
2. Gebeurtenis
Zie een metadata-record als een gebeurtenis en label het als zodanig. Tag een record wat je voor het eerst publiceert met create en als het een wijziging betreft met update.
3. Basis
Geef elke update een link (basis) die verwijst naar het record waarop de update van toepassing is. Hiervoor gebruik je uiteraard de identifier uit stap 1.
Als je bovenstaande stappen hebt gezet is je metadata inherent deelbaar geworden. Metadata records zijn nu expliciet gerelateerde gebeurtenissen geworden die altijd geldig zijn en blijven. We praten namelijk niet meer over passieve records maar over gebeurtenissen.
Gouden Regel
Wijzig gebeurtenissen niet achteraf. Eens gepubliceerd blijft gepubliceerd. Geschiedenis kan niet wijzigen, maar je kunt altijd updates publiceren.
Hoe dan?
Als we even terug gaan naar een eenvoudig voorbeeld van een record, dan zien we het volgende:

De vetgedrukte elementen zijn hierin nieuw. De rest van het record kan zo blijven. Als we een wijziging hebben publiceren we een update met een verwijzing:

We gaan er voor nu even vanuit dat de update eenvoudigweg enkele eigenschappen overschrijft. Deze vorm van integratie is echter voldoende om aan de slag te gaan en te profiteren van de voordelen van een timeline.
Hoeksteen
Read-only objecten die naar elkaar verwijzen zijn een hoeksteen van menig schaalbaar, decentraal, data-georiënteerd systeem. Een goed voorbeeld is e-mail: de envelop van een reply bevat een vergelijkbare informatie zoals hierboven. Het is niet afhankelijk van of je e-mails direct verstuurd of eens per dag of per week. Tevens is e-mail zeer schaalbaar en … decentraal!
Metadata Integratie
Wat mist in e-mail is integratie. De meeste e-mail readers doen hun best om replies te integreren met het oorspronkelijke bericht, maar dit gaat vaak fout. Wat wij ook graag zouden willen hebben is een manier om automatisch en 100% gegarandeerd updates te integreren met de oorspronkelijke create.
Dat is het onderwerp voor de volgende blog.
Ondertussen: schrijf je in (onderaan de pagina) zodat je niets mist!
Pingback: Updates op deelbare metadata -