Principe: context is altijd aanwezig1
Contextvrije gegevens (data) bestaan niet - elk gegeven heeft betekenis binnen een specifieke context
Het probleem
We doen vaak alsof gegevens (data) "neutraal" en "contextvrij" zijn. Dit leidt tot problemen:
- Betekenisverlies: Gegevens krijgen andere betekenis in nieuwe contexten
- Verkeerde interpretaties: Dezelfde waarde betekent iets anders in verschillende systemen
- Integratiefouten: Gegevens worden "zomaar" gekopieerd zonder begrip van context
- Synchronisatieproblemen: Wijzigingen in bronnen bereiken een gebruiksdoel met verkeerde betekenis
- Protocol failures: Inter-organisatie protocollen falen omdat context niet wordt overgedragen
- Semantische chaos: Organisaties praten langs elkaar heen over "dezelfde" gegevens
Het principe: context is altijd aanwezig
Context is fundamenteel aanwezig in alle gegevens (data). Er bestaan geen contextvrije gegevens. Dit betekent:
Kernprincipes
- Context is inherent - Elk gegeven heeft betekenis binnen specifieke bounded contexts
- Context bepaalt interpretatie - Dezelfde waarde kan verschillende betekenissen hebben
- Contextovergang vereist design - Data transformatie tussen contexten moet bewust ontworpen worden
- Context moet expliciet - Maak contexten zichtbaar in informatiemodellen en interfaces
Voorbeelden
Voorbeeld 1: adres in verschillende contexten
BRP context:
Adres = WoonAdres {
straat: "Hoofdstraat 1",
betekenis: "Officieel ingeschreven woonadres",
geldigheid: "Vanaf inschrijfdatum tot uitschrijving",
verificatie: "Door gemeente gevalideerd"
}
Logistiek context:
Adres = BezorgAdres {
straat: "Hoofdstraat 1",
betekenis: "Adres waar pakket afgeleverd kan worden",
geldigheid: "Tot klant andere bezorgadres opgeeft",
verificatie: "Door klant opgegeven, door bezorger bevestigd"
}
Transformatie:
- BRP WoonAdres kan basis zijn voor BezorgAdres
- Maar klant kan ander BezorgAdres kiezen
- Context bepaalt welke regels en validaties gelden
Voorbeeld 2: naam in verschillende registers
BRP context: "Marie de Wit-Jansen"
- Juridische naam na huwelijk
- Officieel, kan alleen via ambtenaar gewijzigd
- Gebruikt voor officiële documenten
Zorgverzekering context: "Marie Jansen"
- Naam zoals gebruikt in zorgcommunicatie
- Kan door klant gewijzigd worden
- Gebruikt voor correspondentie en declaraties
Contextovergang:
- BRP naam is uitgangspunt
- Zorgverzekeraar laat klant "communicatienaam" kiezen
- Transformatie is bewuste bedrijfsregel, niet technische mapping
Voorbeeld 3: personen register
Traditioneel personen register:
- Persoon object
Verandering-gericht personen register:
- Geboren
- Verhuisd
- Getrouwd
- Gescheiden
- Overleden
Let op: Dit voorbeeld illustreert ook Focus op verandering - dat is geen toeval. Goede principes versterken elkaar en leiden tot dezelfde ontwerpkeuzes.
Mindset shift
Context is altijd aanwezig vereist een fundamentele shift: van contextvrij denken naar context bewust denken. Hier is de typische denkevolutie:
Stap 0: contextvrij denken (traditioneel)
// Denken: "Gegevens zijn neutraal, kopieer gewoon"
SELECT naam, adres FROM personen WHERE id = 123
INSERT INTO andere_tabel (naam, adres) VALUES ('Jan Jansen', 'Hoofdstraat 1')
Probleem:
- Naam uit BRP heeft andere betekenis dan naam in CRM
- Adres uit BAG verschilt van adres in logistiek systeem
- Geen begrip waarom gegevens zo zijn zoals ze zijn
- Geen validatie of transformatie
Stap 1: bewustwording van verschillen
// Denken: "Er zijn wel verschillen, maar we mappen wel"
BRP_naam -> CRM_naam (met simpele mapping)
BAG_adres -> Logistiek_adres (met veld conversie)
Probleem: Technische mapping zonder begrip van business context. Werkt soms, faalt onverwacht.
Verbetering: Eerste bewustwording dat systemen verschillend zijn.
Stap 2: context als metadata
// Denken: "We voegen context toe als extra veld"
SELECT naam, adres, 'BRP' as bron FROM personen
SELECT naam, adres, 'CRM' als bron FROM klanten
Probleem: Context wordt als extra informatie behandeld, niet als fundamentele eigenschap.
Verbetering: Context wordt zichtbaar, maar nog steeds als bijzaak.
Stap 3: context bewust denken
// Denken: "Context bepaalt betekenis - ontwerp transformatie bewust"
BRP_Context: {
naam: JuridischeNaam(voornaam, tussenvoegsel, achternaam),
betekenis: "Officiële naam volgens GBA/BRP",
geldigheid: "Per registratie moment"
}
CRM_Context: {
naam: ContactNaam(roepnaam, achternaam),
betekenis: "Naam voor commerciële communicatie",
geldigheid: "Tot klant dit wijzigt"
}
Transformatie: BRP_JuridischeNaam -> CRM_ContactNaam (bewuste keuze, gedocumenteerd)
Doorbraak: Context wordt onderdeel van het informatiemodel. Transformaties zijn expliciete designbeslissingen.
Waarom stap 3 de beste oplossing is
- Expliciete semantiek: Wat betekenen deze gegevens hier?
- Bewuste transformaties: Hoe gaat betekenis van A naar B?
- Gedocumenteerde keuzes: Waarom is dit zo gemodelleerd?
- Voorspelbare resultaten: Systemen gedragen zich consistent
Voordelen
- Correcte interpretatie: Gegevens worden begrepen zoals bedoeld
- Betere integraties: Bewuste transformaties tussen systemen
- Minder fouten: Expliciete context voorkomt misverstanden
- Rijkere semantiek: Betekenis wordt behouden en uitgebreid
- Betere traceability: Context vertelt waar data vandaan komt en waarom
Relatie met protocol-denken
Context is essentieel voor protocol-denken omdat protocollen fundamenteel gaan over het overbruggen van verschillende contexten:
Protocollen zijn context-overbrugging
Moderne inter-organisatie protocollen zijn niet alleen dataformaten, maar context-vertalers:
- Semantische mapping: Protocol definieert hoe betekenis van organisatie A wordt vertaald naar organisatie B
- Context preservation: Rijke context informatie blijft behouden tijdens uitwisseling
- Bounded context integration: Dikke protocollen bevatten expliciete regels voor context-overgangen
Context maakt dikke protocollen mogelijk
Protocol-denken evolueert naar protocollen die meer dan transport regelen:
- Business rule validation: Context bepaalt welke validaties gelden in welke situaties
- Semantic consistency: Protocollen garanderen dat betekenis consistent blijft
- Context-aware workflows: Verschillende organisaties kunnen verschillende contexten hanteren binnen hetzelfde protocol
Context is de basis voor netwerken van datastromen
Netwerken van datastromen werken alleen met expliciete context:
- Multi-organizational views: Elke organisatie heeft zijn eigen context, maar kan deelnemen aan gedeelde protocollen
- Context evolution: Nieuwe organisaties kunnen toetreden door hun context te mappen op bestaande protocollen
- Federated semantics: Verschillende definities van "hetzelfde" concept kunnen naast elkaar bestaan
Relatie met andere principes
- Versterkt Focus op verandering - events behouden context van veranderingen
- Ondersteunt Meerdere views standaard - elke view heeft eigen context
- Basis voor contextovergang-ontwerp - expliciete context transformaties
Waarom dit principe altijd geldt
Context is niet optioneel - het is fundamenteel aanwezig in alle business processen:
In elk register
Elk register heeft zijn eigen business context:
- BRP: Juridisch-administratieve context van burgerregistratie
- BAG: Geo-administratieve context van adressen en gebouwen
- Handelsregister: Economische context van bedrijfsvoering
- Zorgregisters: Medische context van zorgverlening
Bij elke gegevensuitwisseling
Zodra gegevens een systeemgrens overschrijden, wijzigt de context:
- Van interne opslag naar externe communicatie
- Van administratief naar operationeel gebruik
- Van historisch naar actueel perspectief
- Van detail naar samenvatting niveau
In alle business processen
Elk proces heeft eigen betekenis voor dezelfde gegevens:
- Aanvragen: Context van burger die iets wil
- Toetsen: Context van ambtenaar die valideert
- Verstrekken: Context van afnemer die gebruikt
- Archiveren: Context van juridische bewaring
Conclusie: Context negeren is een ontwerpfout, niet een keuze. Dit principe geldt altijd.
Implementatie overwegingen
Voordelen van context bewust ontwerp:
- Minder integratiefouten door expliciete transformaties
- Betere gegevenskwaliteit door context validatie
- Duidelijkere communicatie tussen teams over data betekenis
- Flexibelere systemen die kunnen evolueren met context
Protocol-specifieke uitdagingen:
- Context governance: Wie bepaalt de "officiële" betekenis van concepten in protocollen?
- Semantic versioning: Hoe evolueren contexten zonder protocollen te breken?
- Multi-party consensus: Hoe bereik je overeenstemming over betekenis tussen organisaties?
- Context conflict resolution: Wat gebeurt er als organisaties verschillende definities hebben?
Technische uitdagingen:
- Meer complexiteit in informatiemodellen en transformaties
- Performance overhead door context validatie en transformatie
- Cross-boundary validation: Context validatie over organisatiegrenzen heen
- Semantic drift detection: Herkennen wanneer context-betekenis onbedoeld verandert
Organisatorische uitdagingen:
- Team alignment vereist begrip van business contexten
- Protocol governance: Wie beheert gedeelde context-definities?
- Change management: Context wijzigingen hebben impact op alle deelnemers
- Documentatie van context en transformaties is essentieel voor protocol-werking
- Protocol als context-contract: Protocollen documenteren exact wat elk veld betekent in elke context
- Context evolution management: Backwards compatibility en gradual migration tussen context-versies
Dit principe vormt de basis voor betrouwbare gegevensuitwisseling tussen organisaties met verschillende contexten via robuuste protocollen.
-
NOTE Oorspronkelijk ontstaan uit en overgenomen vanuit project Uit betrouwbare bron en aangepast naar protocol-denken ↩