Ga naar hoofdinhoud

Projecties

Projectieperspectief: continuant of occurrent?

Als we willen begrijpen hoe projecties eruit zien, helpt het te begrijpen hoe we data willen representeren en wat de consequenties daarvan zijn. Dat doen we door om te beginnen een onderscheid aan te brengen tussen projecties die gaan over continuants (ook wel endurants of in het Nederlands voortdurenden) en projecties van occurrents (ook wel perdurants of in het Nederlands perdurantisten of voorkomenden).

Een continuantprojectie projecteert een entiteit - de continuant - die in de tijd beschouwd kan worden. Zo'n projectie levert voor ieder moment van het bestaan (of de geldigheid) van de continuant een complete en betekenisvolle toestand op.

Niet alle continuants zijn gelijk. Sommige daarvan kunnen onder één identiteit maximaal één geldigheidscyclus doormaken (denk aan een mens). Hun bestaansperiode is continu. Daarnaast komen contiunants (zoals een huwelijk) voor die meerdere, discontinue (of onderbroken) geldigheidsperiodes kunnen kennen. Het ontstaan van een tweede (of derde, vierde etc.) geldigheidsperiode bij zo'n entiteit noemen we vaak herleven.

Een occurrentprojectie projecteert een entiteit - de occurrent - die zich in de tijd voltrekt. Zo'n projectie kan alleen compleet en betekenisvol zijn als we alle momenten die de voltrekking van de occurrent duurde samen beschouwen.

Occurrents kunnen we onderverdelen naar de tijd die voltrekking duurde. Punctuele occurrents zijn instantaan (of temporeel atomair) en voltrekken zich op één moment. Duratieve occurrents voltrekken zich gedurende een periode, die in veel gevallen kan worden opgedeeld in fases (of stages).

Wetenschappelijk achtergrond en debat

In deze handreiking noemen we continuant en occurrent omdat ze helpen geprojecteerde gegevens te begrijpen. Achter deze begrippen gaan een lange wetenschappelijke geschiedenis en veel debat schuil.

De woorden continuant en occurrent werden voor het eerst beschreven in het driedelige 'Logic' (1921–1924) van de Britse logicus W.E. Johnson. Via debatten over persistentie en formele ontologie, waaronder Barry Smiths' Basic Formal Ontology, vonden ze vervolgens hun weg naar de informatica.

Over deze begrippen bestaat binnen de wetenschap veel discussie. Zo stelde James F. Allen in 'Maintaining Knowledge about Temporal Intervals' dat occurrents weliswaar instantaan kunnen lijken, maar dat voltrekking bij nadere beschouwing ("turning up the magnification") toch altijd een periode met tijdsduur vraagt.

In reactie daarop ('A critical examination of Allen's theory of action and time') betoogde Antony Galton dat het problematisch is om alle occurrents als interval te behandelen en dat we daarnaast ook instants moeten kunnen herkennen. Een middenpositie wordt ingenomen door Bittner et al., die in 'Endurants and Perdurants in Directly Depicting Ontologies' de periode waarbinnen een occurrent zich voltrekt verdelen in al dan niet instantane stages (fases).

Ook het zelfstandig bestaansrecht van continuants staat ter discussie. Zo betogen perdurantisten dat alle objecten in vier dimensies bestaan. Wat we hierboven een continuant noemden, is vanuit dit perspectief geen zelfstandige entiteit, maar slechts een instantane doorsnede van zo'n vierdimensionale occurrent.

Projectiedoel bepaalt perspectief

Of een entiteit geprojecteerd wordt als continuant of als occurrent staat los van de manier waarop we gegevens in het gevolgenjournaal of andere bron voor onze projectie hebben vastgelegd. Het projectieperspectief wordt dus niet bepaald door het vastleggingspersperspectief van het bronmateriaal, maar door de manier waarop we naar dat bronmateriaal willen kijken - en in het verlengde daarvan van de informatiebehoefte die we met een projectie willen invullen.

Dit betekent dat op basis van één set gevolgen voor de ene doelgroep continuantprojecties kunnen worden geproduceerd, terwijl voor andere afnemers projecties vanuit occurrentperspectief worden gemaakt.

Onderstaand voorbeeld illustreert hoe op basis van één set gevolgen die rondom een vergunning zijn bijgehouden projecties in continuant- én occurrentvorm kunnen worden geproduceerd. De continuantprojectie beschouwt de vergunning als object waarvoor een toestand kan worden getoond. Projecteren we de vergunning als occurrent, dan krijgen we een aan de hand van 'milestones' geïllustreerde levenscyclus te zien.

// In het gevolgenjournaal bekende gevolgen die de levenscyclus van de vergunning hebben beïnvloed

[
{
"gevolgId": "ev-001",
"gevolgType": "vergunningsaanvraag ontvangen",
"betreft": { "type": "aanvraag", "id": "av-2004-1459" },
"gebeurdOp": "2004-03-12"
},
{
"gevolgId": "ev-002",
"gevolgType": "vergunning verleend",
"betreft": { "type": "vergunning", "id": "vg-2004-0815" },
"beïnvloedt": { "type": "aanvraag", "id": "av-2004-1459" },
"gebeurdOp": "2004-06-18"
},
{
"gevolgId": "ev-003",
"gevolgType": "vergunning ter inzage gelegd",
"betreft": { "type": "vergunning", "id": "vg-2004-0815" },
"gebeurdOp": "2004-06-21"
},
{
"gevolgId": "ev-004",
"gevolgType": "bezwaar ontvangen",
"betreft": { "type": "bezwaar", "id": "bz-2004-0213" },
"beïnvloedt": { "type": "vergunning", "id": "vg-2004-0815" },
"gebeurdOp": "2004-06-23"
},
{
"gevolgId": "ev-005",
"gevolgType": "bezwaar afgewezen",
"betreft": { "type": "bezwaar", "id": "bz-2004-0213" },
"beïnvloedt": { "type": "vergunning", "id": "vg-2004-0815" },
"gebeurdOp": "2004-07-17"
},
{
"gevolgId": "ev-006",
"gevolgType": "vergunning onherroepelijk geworden",
"betreft": { "type": "vergunning", "id": "vg-2004-0815" },
"gebeurdOp": "2004-08-02"
}
]
// Vergunningaanvraag als continuant: het object met actuele toestand

// Request
{
"resource": "vergunningen",
"id": "vg-2004-0815",
"presentatieperspectief": "continuant",
"geldigOp": "2004-07-24"
}

// Response
{
"id": "vg-2004-0815",
"status": "verleend",
"isOnherroepelijk": "false"
}
// Vergunningaanvraag als occurrent: gefaseerde levenscyclus

// Request
{
"resource": "vergunningen",
"id": "vg-2004-0815",
"presentatieperspectief": "occurrent",
"gebeurdVanaf": "1970-01-01",
"gebeurdTot": "2004-07-25"
}

// Response
{
"id": "vg-2004-0815",
"fases": [
{ "type": "vergunning verleend", "gebeurdOp": "2004-06-18" },
{ "type": "vergunning ter inzage gelegd", "gebeurdOp": "2004-06-21" },
{ "type": "vergunning door bezwaar betwist", "gebeurdOp": "2004-06-23" },
{ "type": "betwisting vergunning door bezwaar beëindigd", "gebeurdOp": "2004-07-17" }
]
}

Intermezzo: van gevolg naar projectie

Een projectie is geen directe weergave van de gevolgen in het journaal — er zit altijd bewerking tussen. Bij de continuantprojectie hierboven is dat bijvoorbeeld zichtbaar in de boolean isOnherroepelijk. Die is op false gezet omdat er op het gevraagde moment nog geen gevolg "vergunning onherroepelijk geworden" was geregistreerd. Om tot een te projecteren toestand te komen, worden hier dus gevolgen geïnterpreteerd.

Ook bij een occurrentprojectie is bewerking nodig, maar die is subtieler. Omdat het gevolgenjournaal zelf al bestaat uit occurrents, zou je kunnen denken dat die in een projectie één op één overgenomen worden. De projectie in het voorbeeld hierboven wijkt niettemin subtiel van de gevolgen waarop die gebaseerd is. Dat komt door een afwijkend perspectief. Het journaal beschrijft vanuit bijhoudingsperspectief zo nauwkeurig mogelijk wat er binnen een bounded context gebeurt. Vanuit projectieperspectief is het gewenst dat gebeurde opnieuw te ordenen rond bepaalde kernconcepten.

In het voorbeeld zie je dit op twee manieren terug. Het gevolg "bezwaar ontvangen" is opgesteld het vanuit bijhoudingsperspectief relevantste concept - het bezwaar zelf. In de vergunningprojectie moet dit gevolg 'hertaald' worden zodat het leest als een fase in de levenscyclus van de vergunning, ergo "vergunning door bezwaar betwist". Het gevolg "vergunningsaanvraag ontvangen" verschijnt in de projectie helemaal niet omdat de vergunning op dat moment nog niet bestond en de levenscyclus daarvan dus nog niet was begonnen.

Tijdsaspecten van projectieperspectief

In de projectievoorbeelden hierboven worden in relatie tot 'tijd' verschillende begrippen gebruikt. De continuantprojectie wordt bevraagd op basis van geldigheidsmomenten (met parameters als geldigOp, geldigVanaf of geldigTot), terwijl we in het request voor de occurrentprojectie een voltrekkingsperiode (met gebeurdVanaf en gebeurdTot als parameters) opgeven. Dit is geen toeval: bij projecties vanuit verschillend perspectief horen verschillende temporele dimensies.

Nota bene: registratie- of transactietijd werkt voor de in dit hoofdstuk besproken projecties op dezelfde manier en wordt hier daarom niet nader behandeld; in de paragraaf projectiesoorten komen we hier op terug voor de gevallen waar registratietijd een afwijkende rol speelt."

Continuants: geldigheid

Het begrip geldigheidstijd (of valid time) werd in 1986 gemunt door Richard Snodgrass en Ilsoo Ahn. In hun artikel 'Temporal Databases' illustreren de auteurs deze temporele dimensie aan de hand van een universiteitsmedewerker ('Merrie') die door de tijd verschillende functies heeft.

Informatie over de veranderende functie van Merrie vinden we door aan een projectie de vraag te stellen "wat was op moment tx de functie van Merrie?" Voor september 1973 zou het antwoord 'instructor' luiden, terwijl het voor december van dat jaar 'assistent professor' zou zijn. Hoewel het artikel dit niet expliciet maakt, veronderstelt dit voorbeeld een projectie over Merrie's functies vanuit continuantperspectief.

Occurrents: voltrekking

Bovenstaande conclusie kunnen we trekken omdat we een occurrentprojectie niet betekenisvol op de beschreven manier kunnen bevragen. Neem opnieuw de veranderende functie van Merrie, maar nu niet beschouwd vanuit een medewerker met verschillende rollen, maar als loopbaan: een gefaseerde voltrekking van opeenvolgende aanstellingen.

Stel dat je daarover vraagt: "hoe zag moment tx Merrie's loopbaan eruit?" Dan zou voor 1 oktober 1973 het antwoord als volgt kunnen luiden: "Merrie was als instructor aangetreden, de aanstelling als assistant professor was nog niet ingegaan." Wat hier beschreven wordt is geen toestand, maar een opsomming van op het bevragingsmoment gepasseerde en onderhanden fases.

Op basis hiervan kunnen we concluderen dat de 'geldigheid' van een loopbaan op 1 oktober 1973 (of een ander moment) eenvoudigweg niet bestaat. Wat wel bestaat is het feit dat een deel van de loopbaan achter de rug is - we noemen dit 'voltrokken' - en een ander deel nog moet komen. Dit betekent dat we occurrents niet bevragen en projecteren op basis van geldigheidstijd, maar op basis van voltrekkingstijd (of occurrence time).

Geldigheid + voltrekking = domeintijd

We hebben hierboven gezien dat continuants en occurrents ieder hun eigen tijdsdimensie kennen - geldigheidstijd voor de eerste, voltrekkingstijd voor de tweede. Dit plaatst ons voor een probleem. Want in literatuur wordt de term geldigheidstijd vaak gebruikt als generieke aanduiding voor alles wat geen systeemtijd is. Dat is een historisch gegroeide onnauwkeurigheid: geldigheidstijd is passend voor continuants, maar niet voor occurrents.

Wat geldigheidstijd en voltrekkingstijd gemeen hebben, is dat ze beide iets uitdrukken over de (fysieke, juridische of administratieve) werkelijkheid die het register beschrijft, en niet over het register zelf. Deze categorie tijdsbegrippen willen we met één begrip kunnen aanduiden. Hiervoor kiezen we het woord domeintijd. Die omvat alle vormen van tijd die niet door het register zelf worden bepaald maar door wat in het bedrijfsdomein gebeurt of geldt.

Projectiesoorten

Met het onderscheid tussen continuant en occurrent en de bijbehorende temporele dimensies hebben we de bouwstenen om projecties scherper te kunnen typeren. Voor welke 'soort' projectie is welke domeintijd relevant? Geldigheidstijd, voltrekkingstijd, of geen van beide? En binnen die dimensie: zijn meerdere geldigheidsperiodes mogelijk of niet, duurt voltrekking tijd, of gebeurt dat in één moment?

Onderstaande tabel plaatst deze categorieën op een domeintijdas. Op de andere as kunnen we dan de tijdsdimensie plaatsen die wel door het register wordt bepaald: de registratietijd-. De tabel die hierdoor ontstaat kunnen we vullen met acht projectiesoorten. Voor ieder daarvan volgt hieronder een korte typering en één of meer voorbeelden.

Projectiesoorten naar perspectief en temporele vereisten

Nota bene: tabel en projectiesoorten gaan over projecties die in het normaal verkeer aan afnemers worden getoond. Betrouwbaar beheer en navolgbaar foutherstel maken het in vrijwel alle gevallen gewenst registratie- of transactietijd bij te houden - dus ook voor specificatiegegevens, automatische observaties en vaste waarden.

Herlevend ding

Een continuantprojectie van een entiteit die meerdere, al dan niet aansluitende geldigheidsperiodes onder dezelfde identiteit kan kennen. Tussen periodes kan de geldigheid onderbroken zijn en later weer hervatten. Voorbeeld: een huwelijk dat na ontbinding opnieuw wordt voltrokken tussen dezelfde personen.

Niet-herlevend ding

Een continuantprojectie van een entiteit die onder één identiteit één aaneengesloten geldigheidsperiode kent. Eindigt de geldigheid, dan eindigt de entiteit definitief — een tweede geldigheidsperiode onder dezelfde identiteit is niet mogelijk. Voorbeelden: een mens, een dienstverband, een vergunning.

Traject

Een occurrentprojectie van een entiteit die zich gefaseerd over een aaneengesloten periode voltrekt. Het traject heeft een aanvang, een einde en interne fases die samen de voltrekking vormen. Voorbeelden: een vergunningprocedure, een behandeltraject, een bezwaarprocedure.

Gebeurtenis

Een occurrentprojectie van een entiteit die zich op één moment in de tijd voltrekt. De gebeurtenis kent geen interne fases en is temporeel atomair. Voorbeelden: een melding, een meting, een klantcontact.

Systeemevent

Een occurrentprojectie van een gebeurtenis die uitsluitend binnen het systeem plaatsvindt en geen tegenhanger heeft in de werkelijkheid daarbuiten. Domeintijd ontbreekt; alleen registratietijd is relevant. Voorbeelden: een logregel, een audit trail entry, een systeemmelding.

Specificatiegegeven

Een continuantprojectie van een entiteit met beperkte veranderlijkheid die de kaders beschrijft waarbinnen andere, meer volatiele gegevens zich bewegen. Daarom hoeft hierover bijgehouden registratiehistorie in projecties doorgaans niet te worden getoond. Voorbeelden: een zaaktype, een producten- en dienstencatalogus, een classificatie.

Automatische observatie

Een occurrentprojectie waarbij vastlegging zonder menselijke tussenkomst plaatsvindt op het moment van plaatsvinden, waardoor registratiemoment en voltrekkingsmoment per definitie samenvallen. Voorbeelden: een sensormeting, een GPS-track, een automatische transactie.

Vaste waarde

Een continuantprojectie zonder tijdsdimensie. De waarde staat onveranderlijk vast en kent geen geldigheids- of registratiehistorie. Voorbeelden: een landcode, een geslachtsaanduiding, een natuurconstante.