Conceptueel model van een betrouwbaar register
Beschrijving van het conceptueel model
In het kort
De hoofdlijn van het model is te lezen van links naar rechts. Een uit een externe bevinding vertaald of rechtstreeks aangeboden commando komt 'onze' bounded context binnen. Optekenen produceert op basis van het commando één of meerdere gevolgen, opgebouwd uit gevolgdelen, met herkomst en tijd, en voegt dat toe aan het journaal. Projecteren leidt uit dat journaal projecties af - elk met een eigen bereik en vorm - waarin zekerheid en onderschrijving zichtbaar zijn. Deze projecties zijn de bron voor verstrekkingen aan afnemers met referenties die verificatie en herlevering mogelijk maken. Langs deze verstrekkingskant kunnen ook terugmeldingen worden aangeboden, die als betwijfeling het journaal ingaan en als zekerheidsindicatie verstrekt worden.
Bewering als bouwsteen
Een register bevat beweringen. Zo'n bewering is een eenheid van gegevens die op basis van herkomst en tijd als geheel wordt beschouwd en waarvan de juistheid als geheel staat of valt. Een bewering valt dus niet uiteen in delen waarvan de juistheid afzonderlijk zou kunnen worden beoordeeld. Wat samen wordt vastgelegd, wordt samen betwist en samen ingetrokken.
Een gegeven is het kleinste betekenisdragende onderdeel van een bewering. Losse gegevens komen in het register niet voor; een gegeven bestaat alleen binnen een bewering en ontleent daaraan zijn herkomst en zijn plaats in de tijd.
Een bewering kan twee beschrijvingsvormen aannemen. Iets kan worden beschreven als iets dat op ieder bestaansmoment een toestand heeft; dat is een continuant. Iets kan ook worden beschreven als een gebeuren dat zich in de tijd voltrekt; dat is een occurrent.
Bounded contextmodel
Een register beweert binnen een afgebakend domein in een gemeenschappelijke taal over een beperkt aantal soorten dingen. Dat geheel heet het bounded contextmodel: het model dat beschrijft wat er gebeurt als een bewering wordt opgenomen. Het beschrijft welke toestand verandert, vanaf wanneer en wat daarmee ophoudt te gelden.
De beweringssoort geeft aan welke soorten beweringen het register kan produceren en welke gegevenssoort daarbinnen kan voorkomen. De waardelijst begrenst het waardenbereik van een gegevenssoort. De beweringssoort is ook de basis voor betekenis, die bepaalt wat beweringen van dezelfde soort uitdrukken.
Het entiteittype geeft aan over welke soorten dingen het register kan beweren en welke gegevenssoort een ding van dat type identificeert.
De inwerkingsregel verbindt beweringssoort en entiteittype, en beschrijft of een bewering een entiteit doet ontstaan dan wel het bestaan daarvan veronderstelt, en hoe zo'n bewering doorwerkt in wat over die entiteit beweerd wordt.
Entiteit
Het register beschrijft dingen: personen, gebouwen, huwelijken, voertuigen. In het model heten die entiteit. Dat het begrip in het cluster kernconcepten staat en niet in een van de concrete clusters, is geen toeval. Het register houdt geen entiteiten bij; het houdt beweringen bij over entiteiten.
Wat die beweringen met elkaar verbindt, is de identiteit. Het register geeft, als onderdeel van een identiteitsverlenend gevolgdeel, een identificerend kenmerk uit waarmee beweringen die één entiteit beschrijven aan die entiteit kunnen worden gerelateerd. Wat het register over een entiteit beschikbaar heeft is het geheel van beweringen die naar dezelfde identiteit verwijzen.
Commandoverwerking
Registers werken zelden in isolatie. Ze ontvangen informatie van andere registers, van andere overheidsorganisaties en van burgers, en die informatie gebruikt de begrippen van een andere context. Bijhouding vindt plaats in de taal van de eigen bounded context en overname vraagt dus om vertaling.
Wat van buiten binnenkomt, is een externe bevinding: een uitspraak die buiten de bounded context van het register is ontstaan. Een vertaalregel beschrijft hoe die met behoud van betekenis wordt omgezet naar een contexteigen commando, een opdracht aan het register om een gevolg op te tekenen. De functie die de omzetting uitvoert heet Overzetten.
De vertaalregel maakt ook duidelijk wat achterblijft. Een geboorteakte bevat een tijdstip van geboorte; een register dat alleen geboortedata kent, neemt dat tijdstip niet over. Deze regel maakt de capability Expliciteren van contextovergangen, ofwel het vermogen inzichtelijk te maken hoe bevindingen van buiten de registercontext daarbinnen bruikbaar worden gemaakt, mogelijk.
Gevolgenjournaal
Een gevolg is een bewering waarmee een daartoe bevoegde actor performatief handelt, die binnen een bepaalde context een basis vormt voor vervolghandelingen en waarop betrokkenen die actor kunnen aanspreken. Het gevolg beschrijft altijd iets dat zich heeft voltrokken.
Performatief betekent dat de uitspraak niet iets beschrijft maar iets tot stand brengt. Dat de gemeente vastlegt dat iemand op een adres woont, maakt dat hij daar voor de overheid woont, met de rechten en verplichtingen die daaraan verbonden zijn. Een gevolg hoeft daarvoor geen bijzondere grammaticale vorm te hebben. "Persoon p1 is verhuisd naar adres a1" is een mededelende zin en toch performatief, omdat het optekenen ervan door de bevoegde actor het institutionele feit vestigt. Bepalend zijn de bevoegdheid en de context, niet de vorm van de zin.
Een gevolg is een primair feit, dat niet opnieuw uit zijn invoer af te leiden is. Wie hetzelfde commando opnieuw zou aanbieden, handelt opnieuw performatief en krijgt dus niet hetzelfde, maar een nieuw gevolg.
Gevolgen worden vastgelegd in het gevolgenjournaal: een onveranderlijke en geordende vastlegging van alle gevolgen die binnen een bepaalde context zijn geproduceerd.
Voor meer details, zie de verdieping.
Hoe een gevolg tot stand komt
De functie Optekenen produceert op basis van commando's gevolgen uit gevolgdelen en voegt die toe aan het register. Optekenen leest daarvoor drie dingen: het commando, de vormingsspecificatie die beschrijft welke gevolgen op basis van het commando moeten worden geproduceerd en uit welke gevolgdelen die worden opgebouwd, en de opnametoestand.
De opnametoestand is een uit het gevolgenjournaal afgeleide toestand waartegen wordt vastgesteld of een commando tot gevolgen kan leiden, en waaruit voor de inhoud van die gevolgen gegevens worden overgenomen. De opnametoestand vervult dus twee functies: toetsing, bijvoorbeeld op de vraag of de persoon over wie het commando gaat bestaat en of de akte niet al eerder is verwerkt, en levering van gegevens. Wanneer een persoon ingeschreven wordt in het bevolkingsregister, komen de persoonsgegevens uit de opnametoestand en niet uit het commando (zie het inschrijving op geboortedatum voorbeeld).
Een gevolg wordt opgebouwd uit gevolgdelen. Een gevolgdeel is een bouwsteen die wordt gebruikt binnen het productieproces van gevolgen en daarbuiten niet bestaat. Gevolgdelen verlaten het cluster niet en zijn na productie niet zelfstandig aanwijsbaar; wat in het journaal staat en waarnaar later kan worden verwezen, is het gevolg. Het model kent drie soorten, elk met een eigen functie.
Een identiteitsverlenend gevolgdeel verleent een entiteit binnen het register identiteit en maakt die daarmee aanwijsbaar. De bijbehorende functie is Identiteit verlenen.
Een primair gevolgdeel omvat een bewering uit het domein over een entiteit. De bijbehorende functie is Opstellen.
Een beweringsgericht gevolgdeel gaat over een bewering. Het verandert niets aan wat het register over het domein zegt, maar aan de houding die het register inneemt tegenover een eerdere vastlegging. Er zijn drie soorten: een betwijfeling trekt de juistheid van een bewering in twijfel, een betwijfelingsopheffing neemt die twijfel weer weg, en een onttrekking trekt de onderschrijving van een bewering in. De bijbehorende functies zijn Betwijfelen, Betwijfeling opheffen en Onttrekken.
Correcties
Correctie is geen apart mechanisme in dit model. Een correctie ontstaat doordat de bestaande functies binnen één optekening worden aangeroepen in de samenhang die het geval vraagt, bijvoorbeeld een onttrekking van de onjuiste bewering en een primair gevolgdeel met de juiste inhoud, samen in één gevolg.
Voor meer details, zie de verdieping. Zie de correctie van een verhuizing voor een eerste voorbeeld.
Herkomst en tijd
Elke bewering kent herkomst en tijd.
Herkomst beschrijft welke bron aan een bewering ten grondslag heeft gelegen, wie voor de productie verantwoordelijk is, welke legitimering daarbij is toegepast en welke werkwijze is gevolgd. De bron is de grond waarop de bewering rust: een eerdere bewering, een eigen waarneming of een getuigenis. Het model legt daarbij één stap terug vast en niet de hele keten. Wanneer een register een eigendomsovergang opneemt op grond van een notariële akte, is die akte de bron; de overeenkomst die aan de akte voorafging, hoort bij de herkomst van de akte. Wie de hele keten wil volgen, doet dat stap voor stap, omdat elke schakel een eigen herkomst heeft.
De verantwoordelijke identificeert wie voor de productie instaat, ook wanneer de uitvoering geautomatiseerd is verlopen; automatisering verplaatst de verantwoordelijkheid niet naar het systeem. De legitimering geeft het kader aan op grond waarvan is geproduceerd en hoe dat kader is toegepast, inclusief eventuele discretionaire afwijkingen. De werkwijze legt vast volgens welke procedure of welk algoritme, en in welke versie, een bewering tot stand kwam. Waar de bron in een document is vastgelegd, verwijst het model daarnaar.
Tijd valt uiteen in twee soorten. De domeintijd is het punt of de periode die onlosmakelijk hoort bij wat een bewering beschrijft. De systeemtijd is het punt dat het register bij het vastleggen toevoegt. De geboortedatum van een op 3 maart geboren kind is een moment in een domeintijdsdimensie. Het moment (bijvoorbeeld 5 maart) waarop het inschrijvingsgevolg met die geboortedatum door het register wordt opgenomen is een moment op de systeemtijdlijn. In de voorbeelden is een adoptievoorbeeld te vinden waarop verschillende domeintijdstippen per projectie een rol spelen.
Waar aan de domeintijdkant meerdere tijdsdimensies kunnen bestaan — bijvoorbeeld een geldigheidsperiode naast een moment van inwerkingtreding — is er één systeemtijddimensie. Die dimensie manifesteert zich op twee plekken: aan de journaalkant als gevolgtijdstip (het moment waarop een gevolg in het gevolgenjournaal wordt vastgelegd) en aan de projectiekant als projectietijdstip (het moment waarop een projectie-element beschikbaar komt voor afnemers). Tussen deze twee momenten zit verwerkingstijd. Het zijn twee verschijningsvormen van dezelfde as, niet twee onafhankelijke dimensies.
Voor meer details over de verschillende soorten tijdstippen, zie de verdieping over tijdstippen en geldigheid.
Rol van projecties
Het gevolgenjournaal is heel geschikt voor verantwoording, maar in veel gevallen geen praktische bron voor bevragingen. Wie wil weten waar iemand nu woont, wil voor een antwoord niet alle adreswijzigingen sinds 1994 moeten afspelen. Dus maken we voor het beantwoorden van dit soort vragen projecties. Een projectie is een uit het gevolgenjournaal afgeleide, op de informatiebehoefte van afnemers toegesneden verzameling van projectie-elementen.
Die afstemming op de informatiebehoefte van afnemers vereist dat één journaal meerdere projecties kan voeden, elk met een eigen bereik en een eigen vorm. De bijbehorende capability is Onderhouden van projecties op maat: het vermogen meerdere projecties te onderhouden die aansluiten bij de informatiebehoefte van specifieke doelgroepen.
Soorten projecties
Een projectie heeft één van twee hoofdvormen. Een toestandsprojectie beschrijft entiteiten als iets dat een toestand heeft, een gebeurenprojectie als gebeuren dat zich in de tijd voltrekt. Dit onderscheid bepaalt de vragen die een afnemer aan een projectie kan stellen. Op basis van een toestand kan worden gevraagd wat er op enig moment gold; van een gebeuren kan worden gevraagd wanneer het plaatsvond en wat eraan voorafging. Met deze hoofdvormen als basis van kunnen vijf archetypische projecties worden onderscheiden.
Aan de toestandskant zijn dat er drie:
- De actueel geldige toestand bevat de elementen die het register nu onderschrijft en die in de domeintijd actueel gelden.
- In domein geldige historische toestanden bevat de elementen die het register nu onderschrijft en die in de domeintijd ooit geldig waren.
- Alle historische toestanden bevat de elementen die het register ooit heeft onderschreven, dus ook wat later is ingetrokken. Die laatste is nodig voor verantwoording: een afnemer die handelde op basis van een gegeven dat later onjuist bleek, moet kunnen aantonen dat het register dat gegeven ooit juist achtte.
Aan de gebeurenkant zijn er twee projectie-archetypen:
- Het onderschreven verloop bevat de gebeurenelementen die het register nu onderschrijft.
- Het volledig verloop omvat aanvullend de elementen het ooit wel onderschreef, maar inmiddels niet meer onderschrijft.
Projecties opbouwen
Een projectiespecificatie beschrijft per projectie hoe gevolgen daarin doorwerken en operationaliseert daarmee de inwerkingsregels uit het contextmodel. De functie Projecteren leest een gevolg en werkt op basis de inhoud daarvan en de projectiespecificatie de projectie bij. Projecteren bestaat uit vier deelfuncties: Openen opent een reeks voor een entiteit die nog niet voorkwam, Bijwerken legt een nieuwe toestand vast in een toestandsprojectie-element, terwijl Bijschrijven een gebeurenprojectie-element aan de projectie toevoegt. Bijstellen legt een veranderd oordeel over de inhoud van een projectie-element vast.
Een reeks is het geheel van projectie-elementen binnen één projectie over dezelfde entiteit. De reeks groepeert wat over hetzelfde ding is vastgelegd en is daarmee de plek waar de identiteit uit het gevolgencluster doorwerkt.
Door het bijwerken van projecties te laten verlopen via deze vier standaardoperaties — ongeacht het soort gevolg dat wordt verwerkt — verkleint het register de kans op verwerkingsfouten. Elke verwerking volgt hetzelfde patroon; alleen de projectiespecificatie bepaalt hoe een concreet gevolg doorwerkt. Deze standaardisatie is een aanbevolen ontwerppatroon voor robuuste projectieopbouw.
Voor meer details, zie de verdieping voor temporaliteit in projecties en het bijwerken van projecties.
Zekerheid en onderschrijving
Projectie-elementen hebben twee metagegevens die gevolgen niet hebben.
Zekerheid geeft aan of het register de juistheid van een projectie-element betwijfelt. De betwijfelingen en betwijfelingsopheffingen in het gevolgenjournaal vormen daarvoor de basis. Een betwijfeld element wordt nog steeds geleverd, met de vermelding dat het register aan de juistheid twijfelt. Dat helpt een afnemer te bepalen of het element nog geschikt is als basis voor gevolghandelingen. zie de twijfelvoorbeelden in de WOZ casus.
Onderschrijving geeft aan of het register een projectie-element onderschrijft. Een in het gevolgenjournaal opgetekende onttrekking vormt daarvoor de grond. Een niet-onderschreven element verdwijnt uit de projecties die alleen onderschreven elementen tonen. Zie onttrekkingen in de WOZ casus.
Verstrekken
Een verstrekking is een geheel van projectie-elementen dat het register in een bepaalde vorm uitgeeft. Het model onderscheidt twee soorten. Een notificatiebericht geeft het register op eigen initiatief uit, terwijl een antwoordbericht op aanvraag van een afnemer wordt geleverd. De bijbehorende functies zijn Melden en Bevraging beantwoorden.
De capability Betekenisvol notificeren houdt in dat het register notificaties kan leveren die informatie omvatten over de aanleiding voor en de betekenis van de beweringen waarover wordt genotificeerd. Het gebeurtenisachtige karakter dat daarvoor nodig is, betekent dat melden altijd gebeurt op basis van een gebeurenprojectie. Zie voor een privacybeschermend voorbeeld de adoptiecasus in de BRP voorbeelden.
Elke verstrekking bevat een verstrekkersreferentie: een metagegeven dat verwijst naar die specifieke verstrekking, te gebruiken om de inhoud te laten verifiëren of om die opnieuw te ontvangen. Daarop rusten twee capabilities.
Herleveren op aanvraag is het vermogen een eerder uitgegeven verstrekking met dezelfde inhoud in identieke vorm opnieuw te verstrekken. Attesteren is het vermogen een verklaring uit te geven die aantoont dat een verstrekking met een bepaalde inhoud door het register is gedaan. De functie Verifiëren produceert dat leveringsattest.
Ook de capability Historisch inzicht hoort in dit cluster thuis: het vermogen historische beweringen te leveren, zowel naar domeintijd als naar systeemtijd. Beide zijn nodig, de eerste om te leveren wat ooit gold, de tweede om te leveren wat het register ooit onderschreef. Zie de correcties voor BRP als WOZ, bijvoorbeeld het corrigeren van eigenaarschap in de WOZ, voor bitemporele bijhoudingen.
Betwisten
Een terugmelding is een melding waarmee de juistheid van een geleverd projectie-element wordt betwist. De functie Betwisten vecht die juistheid aan. De capability Terugmelden is het vermogen te laten melden dat een geleverd projectie-element vermoedelijk onjuist is.
De terugmelding is de ingang waarlangs twijfel het register binnenkomt. Die twijfel loopt via een betwijfeling het gevolgencluster in en komt als zekerheid aan de leverkant weer naar buiten. Zie de terugmeldingvoorbeelden.
Vernietigen
De functie Blijvend ontoegankelijk maken maakt een bewering blijvend ontoegankelijk, zodat de inhoud niet gereconstrueerd kan worden. Wat overblijft is een merkteken: een markering die getuigt van het bestaan van een bewering, zonder iets te vertellen over de inhoud daarvan.
Het merkteken houdt het register ook na vernietiging begrijpelijk. Een journaal waaruit stilzwijgend iets kan verdwijnen, is niet te verantwoorden; door een markering achter te laten blijft zichtbaar dat er iets was, zonder prijs te geven wat.
Aan deze functie zijn twee capabilities verbonden. Deze vereisen een vergelijkbare handeling, met verschillende grondslagen. Vernietigen is het vermogen vernietigingshandelingen uit te voeren conform Archiefwettelijke eisen; daar verstrijkt een bewaartermijn en volgt vernietiging uit het register zelf. Vergeten is het vermogen gegevens te wissen conform het recht op vergetelheid uit de Algemene Verordening Gegevensbescherming; daar komt de aanleiding van buiten, van een betrokkene, en gaat er een afweging aan vooraf.