Canonieke modellen

De laatste tijd hou ik me bezig met de ontwikkeling van een Canoniek Datamodel. Ik weet wat daarmee bedoeld wordt, maar de theorie blijkt toch wat te zijn weggezakt. Dus ik fris mijn geheugen maar eens wat op en snuffel in boeken en op het internet. Bijzonder woord ook, dat “canoniek”. En omdat ik me ineens realiseerde dat ik met mijn mond vol tanden zou staan als ik gevraagd zou worden wat “canoniek” betekent, zocht ik eens op wat dat woord nou eigenlijk betekent. 

Ik kom onder andere de volgende betekenissen tegen:

  • typisch
  • normaal, genormaliseerd
  • uniek, eenduidig
  • gestandaardiseerde manier van weergeven
  • volgens erkende, geaccepteerde regels

Het is ook een bijvoegelijk naamwoord met de betekenis dat het onderwerp in overeenstemming is met de canon, de kerkelijke wetten. Canonieke zaken zijn dus geloofwaardig, en zo ook een canoniek model. Ik weet verder niet zo veel (lees: nul comma nul) over kerkelijke wetten, en wellicht zou ik me er eens wat meer in moeten verdiepen. Wie weet wordt ik dan een geloofwaardiger informatiearchitect. 

Geloofwaardig of niet, informatiearchitecten hebben het vaak over canonieke modellen. Met model wordt hier conceptueel model bedoeld, wat een vereenvoudigde voorstelling is van een stukje werkelijkheid. Een conceptueel model deelt een stukje werkelijkheid op in concepten en legt verbanden daartussen. We maken conceptuele modellen om een stukje werkelijkheid inzichtelijk te maken, om problemen uit die werkelijkheid te begrijpen en uiteindelijk te kunnen oplossen.  

Met een canoniek model wordt een eenduidig conceptueel model bedoeld dat is gebaseerd op een gestandaardiseerde en gemeenschappelijke kijk op iets binnen een bepaalde context (een stukje werkelijkheid). Dat is mijn vertaling van de Engelse omschrijving op wikipedia. Er zit al een stukje interpretatie in, maar ik moet die zin eens verder ontleden voor ik hem helemaal snap. Ik zie de volgende aspecten:

  1. eenduidigheid
  2. standaardisatie
  3. gemeenschappelijk
  4. kijk
  5. context

Dus een canoniek model is ondubbelzinnig en maar op één manier uit te leggen. De betekenissen van de concepten in het model zijn gebaseerd op een gemeenschappelijk afgesproken standaard. Daardoor geeft het model een uniforme kijk op het stukje werkelijkheid dat het model moet vereenvoudigen. Canonieke modellen voorzien in een typische, standaard voorstelling van iets. Denk bijvoorbeeld aan een typische beschrijving van een auto. Een auto is een heel complex ding, maar het onderstaande model van “auto”  is heel universeel.

Het model brengt de complexe auto terug tot enkele essentiële concepten die met elkaar in verband staan. Een typische auto heeft een carrosserie, een motor, een stuur, een vooras met twee wielen en een achteras met twee wielen. Het stuur staat in verband met de vooras, en de motor drijft één van de assen of beide tegelijk aan. Dit model typeert een auto. Iedere auto voldoet aan dit model. Inderdaad, driewielers niet, dus het model is niet universeel, maar wel binnen de context van een autofabrikant die alleen vierwielers produceert. 

Een canoniek model vereenvoudigt de communicatie over dingen in een bepaalde context (bijvoorbeeld een bedrijf). Iedereen binnen die context die het model kent weet wat er wordt bedoeld wanneer de concepten uit dit model worden besproken. Het voorkomt, heel simpel gezegd, misverstanden. Het model is immers ondubbelzinnig.

Dat is natuurlijk prachtig, maar hoe ontwikkel je een model waar iedereen binnen een bedrijf het mee eens is? Dat is niet eenvoudig. In grote organisaties hebben verschillende mensen een verschillende kijk op de dingen waar de organisatie zich mee bezig houdt. Vaak conflicteren de “kijken”, en vereist de ene kijk veel detail, en de andere juist weinig. Toepassen van het poldermodel maakt het proces om tot zo’n gemeenschappelijk en breed geaccepteerd model te komen, te tijdrovend.  

Dan is het misschien beter om met een kleine groep deskundigen, die de voor het model relevante onderdelen van de organisatie goed vertegenwoordigen, zo goed als mogelijk een eerste versie van het beoogde canonieke model op te stellen en deze tot dé standaard te bombarderen. Er volgen dan verfijningen over de tijd. Het opstellen van een canoniek model is dan een iteratief (jawel!) proces. Kortom: in een ivoren torentje de wet opstellen en bijwerken en dan aan de wereld daarbuiten opleggen. Autoritair als ik ben, kan ik daar wel wat mee 😉