Elk serieus militair inlichtingenplatform stuit uiteindelijk op hetzelfde structurele probleem: vijf of meer inlichtingendisciplines produceren elk gegevens in hun eigen formaat, met hun eigen snelheid en hun eigen semantiek — terwijl analisten een uniform beeld nodig hebben dat tegelijkertijd over al deze bronnen kan redeneren. De complete gids voor defensie-datafusie behandelt de verwerkingspijplijn in brede lijnen. Dit artikel gaat dieper in op de schemaopmaak — het canonieke gegevensmodel dat onder de fusie-engine ligt en ervoor zorgt dat die iets samenhangends heeft om mee te werken.
Een goed gegevensmodel is geen detail. Een slecht ontworpen schema dwingt INT-specifieke logica naar de applicatielaag, maakt cross-source-queries fragiel en maakt schema-migraties tot meerdere weken durende platformstops. Een goed ontworpen model absorbeert nieuwe INT-typen, ondersteunt bi-temporele queries en houdt de herkomst intact gedurende elke fase van de fusie. Dit artikel behandelt alle beslissingen die bepalen in welke categorie uw platform valt.
Waarom elke INT een andere schema-aanpassing nodig heeft
De vijf belangrijkste inlichtingendisciplines verschillen niet alleen in wat ze verzamelen, maar ook in hoe die gegevens zijn gestructureerd, met welke snelheid ze binnenkomen en welke metadata inherent beschikbaar is. Deze verschillen zijn niet oppervlakkig. Ze bepalen welke adapterlogica nodig is voordat een uniform model een bron kan verwerken, en ze begrenzen welke cross-INT-queries haalbaar zijn.
HUMINT (menselijke inlichtingen) is voornamelijk tekstueel. Een HUMINT-rapport is een verhalend document dat beschrijft wat een bron heeft waargenomen, gehoord of vernomen. Tijdstempels zijn vaak onnauwkeurig — het rapport kan een gebeurtenis beschrijven die plaatsvond over een reeks van dagen, met onzekerheid in zowel de tijd als de locatie. De belangrijkste metadata betreft de bronbeoordeling: hoe betrouwbaar is deze specifieke bron, en hoe geloofwaardig is dit specifieke stuk informatie? De gegevenssnelheid van HUMINT is laag — tientallen tot honderden rapporten per dag op een druk verzamelpunt, niet duizenden per seconde.
SIGINT (signalenverkenning) — met zowel COMINT (communicatie) als ELINT (elektronische inlichtingen) — is hoog-velociteit, sterk gestructureerd en tijdgestempeld tot op milliseconde precisie. Een SIGINT-interceptie of zenderdetectie bevat frequentieparameters, peileringshoeken, tijdverschil-van-aankomstfixaties en modulatiekenmerken. De semantische inhoud (wat er werd gezegd) is vaak apart geclassificeerd van de signaalparameters. De gegevenssnelheid van SIGINT kan miljoenen records per uur bereiken voor een modern verzamelsysteem dat een betwist elektromagnetisch omgeving bestrijkt.
IMINT (beeldinlichtingen) produceert gestructureerde observatierecords afgeleid van beeldanalyse: begrenzende kaders met entiteitsklasselabels en betrouwbaarheidsscores, geolocatiecoördinaten, grondsteekproefafstand en verzameltijdstempel. Een enkele satellietpassage of dronevlucht kan duizenden objectdetectierecords genereren. De uitdaging is dat IMINT-detecties ruimtelijke momentopnamen zijn — ze vertellen u waar iets was op een specifiek moment, niet waar het naartoe gaat.
OSINT (open-source inlichtingen) is structureel het meest heterogeen. Het omvat sociale mediaposts, nieuwsartikelen, commerciële satellietbeeldanalyse, vluchttrackinggegevens en maritieme AIS-feeds. Elk brontype heeft zijn eigen schema. OSINT is ook het minst gecontroleerd — de kwaliteit van bronnen varieert van gezaghebbende overheidspublicaties tot anonieme niet-geverifieerde sociale mediaclaims.
MASINT (meet- en handtekeninginlichtingen) omvat de meting van fysieke verschijnselen: seismische, akoestische, nucleaire straling, chemische/biologische handtekeningen en radarreflectieprofielen. MASINT-observaties zijn vaak indirect — ze detecteren een verschijnsel (explosie, voertuigbeweging, RF-emissie) in plaats van direct een entiteit te identificeren. De keten van MASINT-observatie naar entiteitsidentificatie vereist expliciete inferentiestappen die in het schema moeten worden gemodelleerd.
De implicatie voor een uniform model is dat het schema deze diversiteit moet accommoderen zonder deze te nivelleren. Het antwoord is een getypte kern-envelop met discipline-specifieke uitbreidingspayloads — een ontwerppatroon dat uitgebreid wordt behandeld in de reeks over het bouwen van een defensiefusiepijplijn deel 1.
Canonieke entiteitstypen voor een uniform model
Het startpunt voor schema-ontwerp is het definiëren van de entiteitstypetaxonomie — de uitputtende lijst van echte wereldzaken die het platform moet bijhouden en over moet redeneren. Voor de meeste militaire inlichtingenplatforms dekken zes entiteitstypen de overgrote meerderheid van inlichtingenobjecten:
- Persoon — individuele menselijke subjecten: strijders, commandanten, facilitators, burgers van belang
- Organisatie — groepen, eenheden, netwerken, commandostructuren
- Locatie — vaste geografische sites: faciliteiten, infrastructuur, herkenningspunten, benoemde aandachtsgebieden
- Uitrusting — voertuigen, wapensystemen, sensoren, communicatieapparaten
- Gebeurtenis — discrete voorvallen: gevechten, explosies, vergaderingen, uitzendingen
- Document — veroverd materiaal, publicaties, inlichtingenrapporten als analyseobjecten
Elk entiteitstype heeft een kernveldset die INT-agnostisch is — velden die moeten worden ingevuld ongeacht welke inlichtingendiscipline de informatie heeft bijgedragen:
EntityCore {
entity_id: UUID // globally unique, immutable
entity_type: Enum // Person | Organization | Location |
// Equipment | Event | Document
classification: ClassMarkings // see provenance section
valid_time: TimeInterval // [start, end) when fact was true
transaction_time:TimeInterval // [start, end) when row was current
confidence: Float[0..1] // fused confidence across sources
source_obs_ids: UUID[] // contributing observation record IDs
schema_version: SemVer // for evolution compatibility
created_at: Timestamp
updated_at: Timestamp
}
Naast de kern heeft elk entiteitstype getypte attribuutuitbreidingen. Een persoonsentiteit bevat biometrische identificatoren, aliassen, nationaliteit en koppelingen naar geassocieerde organisaties. Een uitrustingsentiteit bevat het platformtype, seriële identificatoren indien bekend, en een koppeling naar de geassocieerde eenheid. Een gebeurtenisentiteit bevat de gebeurtenisklasse, verwijzingen naar betrokken entiteiten en een ruimtelijke voetafdruk. Deze uitbreidingen worden opgeslagen als getypte payloads gekoppeld aan de kern-envelop — niet als kolommen in de kerntabel. Deze scheiding stelt het schema in staat nieuwe attributen voor één entiteitstype te absorberen zonder andere te beïnvloeden.
Hetzelfde scheidingsprincipe geldt voor INT-bijdragen. Wanneer een SIGINT-interceptie wordt gekoppeld aan een persoonsentiteit (omdat een IMSI werd omgezet naar een bekende persoon), wordt die koppeling opgeslagen als een observatierecord met een SIGINT-getypte payload die verwijst naar de persoonsentiteit-UUID. De persoonsentiteit zelf bevat geen SIGINT-specifieke kolommen — die koppeling zou het schema kwetsbaar maken voor elke SIGINT-verzamelingswijziging.
Herkomst en bronregistratie
Herkomst is de meest kritieke niet-functionele vereiste van elk inlichtingen-gegevensmodel. Elk stuk informatie in het gefuseerde beeld moet herleidbaar zijn tot de bronobservatie, het verzamelsysteem dat het produceerde, en de menselijke beoordelingen die werden toegepast op de betrouwbaarheid ervan. Zonder deze keten kunnen analisten de kwaliteit van het beeld dat ze van werken niet beoordelen, en kan het platform geen rollback uitvoeren wanneer een bron onbetrouwbaar blijkt te zijn.
Een herkomstblok dat aan elk observatierecord is gekoppeld, moet minimaal het volgende bevatten:
ProvenanceBlock {
int_type: Enum // HUMINT | SIGINT | IMINT | OSINT | MASINT
source_id: UUID // internal source registry reference
source_reliability: Char // A–F (NATO admiralty scale)
info_credibility: Integer // 1–6 (NATO admiralty scale)
collection_time: Timestamp
report_time: Timestamp // when report entered system
originator: String // unit or system that produced report
classification: ClassMarkings
handling_caveats: String[] // NOFORN, ORCON, REL TO, etc.
dissemination_ctrl: String[]
}
De NATO admiraliteitsschaal codeert twee onafhankelijke menselijke beoordelingen voor elk stuk inlichtingen. Bronbetrouwbaarheid (A t/m F) beoordeelt de historische staat van dienst en betrouwbaarheid van de bron — een A-beoordeelde bron is consistent nauwkeurig en betrouwbaar gebleken; een F-beoordeelde bron heeft een onbekend of slecht staat van dienst. Informatiegeloofwaardigheid (1 t/m 6) beoordeelt de aannemelijkheid van de specifieke informatie onafhankelijk van de brongeschiedenis — een item met beoordeling 1 wordt bevestigd door andere onafhankelijke bronnen; een item met beoordeling 6 is onwaarschijnlijk gezien wat verder bekend is.
Deze twee beoordelingen zijn menselijke evaluaties uitgevoerd door getrainde inlichtingenofficieren. Ze zijn onderscheiden van, en mogen niet worden verward met, de machinaal berekende fusiebetrouwbaarheidsscore op de entiteit. De fusiebetrouwbaarheid weerspiegelt statistische overeenstemming over corroborerende bronnen; de admiraliteitsbeoordelingen weerspiegelen menselijk oordeel over bronkwaliteit. Beide moeten worden bewaard en afzonderlijk aan analisten worden gepresenteerd.
Classificatiemarkering vereist een gestructureerde weergave, geen vrije tekst. Een ClassMarkings-type moet coderen: classificatieniveau (NIET GERUBRICEERD tot TOP SECRET), compartimenten en codewoorden, en verwerkingsvoorbehouden als een geïnventariseerde lijst. De structuur maakt programmatische toegangsbeheerafdwinging mogelijk — het platform kan op query-tijd evalueren of de machtiging van een bepaalde gebruiker voldoet aan de classificatie van elk veld, en kan velden die de machtiging van de gebruiker overschrijden selectief redigeren of inhouden in plaats van te weigeren de volledige entiteit terug te geven.
Cross-INT entiteitsresolutie
Entiteitsresolutie — bepalen dat records van verschillende bronnen verwijzen naar dezelfde reëelwereldentiteit — is het kernfusieprobleem, en het is het moeilijkst precies aan de cross-INT-grens. Binnen één INT zijn identificatieschema's consistent: twee SIGINT-records die een IMSI delen, verwijzen naar hetzelfde apparaat. Over INT-grenzen heen bestaat er standaard geen gedeelde identifier. Een IMINT-detectie van een voertuig, een SIGINT-peilfixatie op een zender die samen met dat voertuig staat, en een HUMINT-rapport dat een persoon in dat voertuig noemt, moeten worden gekoppeld via probabilistische inferentie, niet via een gedeelde sleutel.
De entiteitsresolutiepijplijn voor een uniform model moet drie koppelingsscenario's afhandelen:
Harde koppelingen — gedeelde identificatoren die records definitief aan dezelfde entiteit koppelen. Een bekende IMSI, een kentekenplaat gelezen door twee IMINT-passages, een biometrische overeenkomst. Harde koppelingen moeten automatisch worden doorgegeven zonder betrouwbaarheidsverval.
Zachte koppelingen — probabilistische associaties op basis van attribuutgelijkenis binnen onzekerheidsmarges. Twee observaties die een voertuig van dezelfde klasse melden op overlappende locaties binnen een temporeel venster dat consistent is met beweging daartussen. Zachte koppelingen dragen een overeenkomstbetrouwbaarheidsscore berekend door de resolutie-engine.
Afgeleide koppelingen — associaties afgeleid van domeinkennis: als een SIGINT-zenderpeilfixatie consistent mee beweegt met een IMINT-voertuigtrack, zijn ze waarschijnlijk hetzelfde platform. Deze koppelingen vereisen expliciete regeldefinities en dragen lagere betrouwbaarheid dan zachte koppelingen op basis van directe attribuutoverlap.
De resolutiepijplijn produceert overeenkomsthypothesen. Hypothesen boven een hoge betrouwbaarheidsdrempel worden automatisch gefuseerd in het gouden record. Hypothesen in het middenbereik worden gemarkeerd voor analistreview. Hypothesen onder de lage drempel worden behouden als afzonderlijke entiteiten. De drempelwaarden zijn configureerbaar en moeten per entiteitstype instelbaar zijn — samenvoegingen van persoonsentiteiten vereisen hogere betrouwbaarheidsdrempels dan samenvoegingen van uitrustingsentiteiten, omdat valse persoonsfusies slechtere analytische gevolgen hebben dan valse uitrustingsfusies.
Gouden record-beheer vereist een gedefinieerd samenvoegbeleid voor attribuutconflicten. Wanneer twee bronnen het oneens zijn over een attribuut — één HUMINT-rapport zegt dat een persoon op locatie A was, een IMINT-detectie plaatst ze op locatie B een uur later — moet het samenvoegbeleid specificeren hoe het attribuut in het gouden record kan worden verzoend. Gangbare beleidsregels zijn: meest recente geldige tijd wint, hoogste bronbetrouwbaarheid wint, gewogen combinatie voor numerieke attributen. Het gekozen beleid moet worden opgeslagen op het gouden record als metadata zodat analisten kunnen begrijpen waarom het gouden record een bepaalde attribuutwaarde toont.
Het JDL-datafusiemodel formuleert entiteitsresolutie als een niveau 1 (objectverbetering) en niveau 2 (situatieverbetering) probleem. Het schema-ontwerp dat hier wordt beschreven, is wat die JDL-niveaus in de praktijk implementeerbaar maakt.
Temporeel modelleren: geldige tijd versus transactietijd
Bi-temporeel modelleren is niet optioneel voor een militair inlichtingenplatform. Het is de minimale temporele structuur die nodig is om de twee meest kritieke querytypen te ondersteunen: "wat was er waar in de wereld op tijdstip T?" (geldige-tijdquery) en "wat wist het systeem over X op tijdstip T?" (transactietijdquery). Dit zijn verschillende vragen die verschillende antwoorden vereisen, en een schema dat ze vermengt — met gebruik van één tijdstempel per record — kan geen van beide correct beantwoorden.
Geldige tijd vertegenwoordigt wanneer een feit waar was in de echte wereld. Voor een IMINT-detectie van een voertuig op een coördinaat is de geldige tijd het beeldtijdstempel. Voor een HUMINT-rapport dat een vergadering beschrijft, is de geldige tijd de beste schatting van de analist over wanneer de vergadering plaatsvond — wat een reeks van dagen kan zijn, niet een precies tijdstempel. Geldige tijd is een eigenschap van de wereld, niet van de database.
Transactietijd vertegenwoordigt wanneer een record actueel was in de database. Voor dezelfde IMINT-detectie begint de transactietijd wanneer het detectierecord werd ingevoegd en eindigt als het record ooit wordt vervangen (bijv. als de geolocatie opnieuw wordt verwerkt en gecorrigeerd). Transactietijd is een eigenschap van de database, automatisch beheerd door het systeem.
De combinatie maakt twee kritieke bewerkingen mogelijk. Ten eerste, as-of-queries: "reconstrueer het volledige inlichtingenbeeld zoals het systeem dat had op 14:00 op dag D." Dit vereist het queryen over transactietijd — alleen records retourneren die actueel waren in de database op 14:00 op dag D, ongeacht wanneer hun geldige tijd valt. Dit is essentieel voor analyse na een incident en voor audit van op inlichtingen gebaseerde beslissingen. Ten tweede, historische feitenqueries: "welke gebeurtenissen vonden er plaats op locatie X tussen dag D-7 en dag D?" Dit queryt over geldige tijd — records retourneren waarvan het geldige-tijdinterval het queryvenster overlapt, ongeacht wanneer ze werden ingevoegd.
Implementatie in PostgreSQL gebruikt periodekolommen. De geldige-tijddimensie wordt weergegeven als een tstzrange-kolom (tijdzone-bewust tijdstempelbereik). De transactietijddimensie gebruikt ofwel een systeemperiode temporele tabel (native ondersteund in sommige PostgreSQL-extensies) of een expliciet kolomenpaar transaction_start en transaction_end, waarbij transaction_end is ingesteld op oneindig voor huidige rijen en gestempeld bij updates om aan te geven wanneer de rij werd vervangen. Alle updates moeten worden geïmplementeerd als invoeg-nieuwe-rij / stempel-oude-rij-bewerkingen, nooit als in-place overschrijvingen.
Versiebeheer en herkomst van gefuseerde objecten
Inlichtingenentiteiten zijn niet statisch. Een persoonsentiteit kan beginnen als een tentieve identificatie uit één HUMINT-rapport, drie dagen later ruimtelijke bevestiging krijgen van een IMINT-detectie, en een week daarna biometrische bevestiging ontvangen van een afzonderlijke verzamelingsgebeurtenis. Elk van deze updates wijzigt het gouden record — maar de vorige staten moeten herstelbaar zijn, niet overschreven.
De standaardimplementatie is een append-only gebeurtenislogboek per entiteit. Elke statuswijziging van een gouden record genereert een updategebeurtenis. Elke gebeurtenis is onveranderlijk eenmaal geschreven en bevat:
- De entiteits-UUID
- Het gebeurtenistype (Aangemaakt / Bijgewerkt / Samengevoegd / Gesplitst / Ingetrokken)
- De vorige toestandsopname (volledige kopie van het gouden record vóór de wijziging)
- De nieuwe toestandsopname
- De ID's van de observatierecords die de update hebben getriggerd
- De naam en versie van het toegepaste fusiebeleid
- De transactietijdstempel
- De operator-ID (menselijke analist of systeemproces)
Het huidige gouden record is het resultaat van het toepassen van alle gebeurtenissen in volgorde vanaf het begin van het logboek. Dit is het event-sourcing-patroon toegepast op inlichtingengegevens. Het biedt een volledig auditspoor voor elke entiteitstoestand op elk moment in de tijd, wat vereist is voor inlichtingenverantwoording in de meeste militaire kaders.
Rollback is een eersteklas bewerking: gegeven een entiteits-UUID en een doeltransactietijdstempel, herbouwt het platform het gouden record zoals het op dat tijdstempel bestond door het gebeurtenislogboek te herspelen tot maar niet inclusief gebeurtenissen na de doeltijd. Rollback wordt geactiveerd wanneer een bron als bedrieglijk of foutief wordt beoordeeld — alle gouden records die observaties van die bron hebben opgenomen, moeten opnieuw worden geëvalueerd met de verontreinigde observaties uitgesloten.
Een intrekkingsgebeurtenis is het mechanisme voor het in schaal afhandelen van dit scenario. Wanneer bron S ongeldig wordt verklaard, genereert het systeem een intrekkingsgebeurtenis voor elke observatie die aan S is toegeschreven, en voert vervolgens fusie opnieuw uit voor elke entiteit die verwees naar een van die observaties. Entiteiten die uitsluitend werden ondersteund door de ingetrokken bron, keren terug naar een lagere betrouwbaarheidstoestand of worden gemarkeerd als onbevestigd. Entiteiten die corroborerende bronnen hadden van andere INT-typen, absorberen de intrekking met een betrouwbaarheidsstraf maar blijven in het beeld.
Het herkomstmodel maakt ook splitsingsgebeurtenissen mogelijk — het omgekeerde van entiteitsresolutie. Als twee entiteiten ten onrechte werden samengevoegd (een vals positieve fusie), maakt een splitsingsgebeurtenis ze ongedaan: het foutieve gouden record wordt ingetrokken en twee nieuwe entiteitsrecords worden aangemaakt, elk met de bronobservaties die er rechtens bij horen. De splitsingsgebeurtenis bewaart de volledige geschiedenis van de samengevoegde toestand en de splitsingsbeslissing, zodat latere analisten kunnen begrijpen waarom de splitsing plaatsvond.
Schema-evolutie in productie
Een militair inlichtingenplatform is geen statisch product. Nieuwe verzamelsystemen komen online, nieuwe INT-disciplines worden toegevoegd aan het toepassingsgebied, en bestaande schema's hebben attribuuttoevoegingen nodig naarmate nieuwe analytische vereisten zich ontwikkelen. Schema-evolutie in een productieplatform dat geen downtime kan verdragen, vereist bewuste ontwerpkeuzes vanaf dag één.
Het kernprincipe is achterwaartse compatibiliteit als contract. De kern-entiteitsenvelop — de EntityCore-velden — moet strikt worden geversioneerd met behulp van een schema_version-veld. Elke wijziging van de kern-envelop die een veld verwijdert of het type van een veld wijzigt, is een brekende wijziging en vereist een major versie-bump met een gedefinieerd migratiepad. Het toevoegen van optionele velden aan de kern is een minor versie-wijziging. Het versiefield stelt consumenten in staat te verklaren welke schemaversies ze ondersteunen, en stelt het platform in staat verschillende versies aan verschillende consumenten te leveren tijdens een migratieperiode.
Uitbreidingspayloads zijn het juiste voertuig voor het toevoegen van nieuwe INT-typen of nieuwe attributen. Wanneer een nieuw beeldanalysesysteem online komt en extra attribuuttypen produceert (bijv. structurele schadebeoordeling scores afgeleid van SAR-beeldmateriaal), gaan die attributen naar een nieuwe of bijgewerkte IMINT-uitbreidingspayloadversie — niet naar het kern-entiteitsschema. Bestaande consumenten die geen SAR-specifieke attributen nodig hebben, worden niet beïnvloed.
De herkomsttaxonomie moet worden uitgebreid wanneer een nieuw INT-type wordt toegevoegd. De INT-type-enumeratie krijgt een nieuwe waarde, en de definities van bronbetrouwbaarheid en geloofwaardigheidsgraad moeten worden beoordeeld op toepasbaarheid op het nieuwe brontype. Sommige nieuwe brontypen vereisen mogelijk nieuwe geloofwaardigheidscriteria die niet netjes passen op de bestaande zespunt admiraliteitsschaal — in die gevallen moet het herkomstblok de ruwe bron-specifieke betrouwbaarheidsmetadata bevatten naast de vertaalde admiraliteitsgraad, om de getrouwheid te bewaren.
Entiteitsresolutieregels zijn het meest arbeidsintensieve evolutiepad. Wanneer een nieuw INT-type het uniforme model toetreedt, moeten resolutie-ingenieurs specificeren hoe observaties van de nieuwe bron kunnen worden gekoppeld aan bestaande entiteitstypen. Dit vereist zowel gegevensanalyse (welke attributen zijn beschikbaar voor matching?) als domeinkennis (welke attribuutproximiteitsdrempels zijn operationeel zinvol?). Deze regels moeten worden peerreviewed door ervaren inlichtingenanalisten, niet alleen door software-ingenieurs — onjuiste resolutieregels produceren valse fusies die het inlichtingenbeeld stilzwijgend bederven.
Schema-migratie in een bi-temporeel model heeft een extra overweging: historische rijen moeten worden gemigreerd zonder hun transactietijdgeschiedenis te wijzigen. Een migratie die bestaande rijen herschrijft en hun transactietijdstempels bijwerkt, breekt de historische querysemantiek. Migraties moeten additief zijn: nieuwe kolommen met standaardwaarden voor historische rijen toevoegen, nooit bestaande kolomwaarden in historische records bijwerken.
Het testen van schema-evolutie vereist een meerlagige strategie: unittests voor serialisatie en deserialisatie van elke schemaversie; integratietests voor cross-versie consumentencompatibiliteit; en regressietests met historische inlichtingengegevensmonsters om te bevestigen dat bestaande queries na een migratie nog steeds identieke resultaten retourneren. De historische gegevenstests zijn de tests die het meest worden overgeslagen en de tests die de meeste productie-brekende regressies ontdekken.
Het in dit artikel beschreven gegevensmodel vertegenwoordigt een ontwerpdoel, niet een startpunt voor een één-sprint-implementatie. De meeste platforms bouwen incrementeel naar deze architectuur toe — beginnend met een eenvoudiger schema voor twee of drie INT-typen en het bi-temporele model, volledige herkomstblokken en event-sourced herkomst toevoegen naarmate operationele vereisten zich consolideren. Wat telt, is dat de kernontwerpbeslissingen — getypte uitbreidingspayloads, INT-agnostische entiteitsenveloppen, gescheiden geldige en transactietijd — vroeg worden genomen, omdat het achteraf inpassen ervan op een monolithisch schema veel duurder is dan ze van meet af aan in te bouwen.