maandag 6 februari 2012

Interoperabiliteit, samenvatting (6 februari 2012)

Inleiding
De discussie op Linked In nodigt mij uit om een samenvatting te schrijven over mijn huidige idee over interoperabiliteit.

Twee soorten
Interoperabiliteit ontstaat op twee momenten (met dank aan collega Victor van der M.):
  1. interoperabiliteit op het moment van ontwerpen
  2. interoperabiliteit op het moment van hergebruiken
1. Ontwerp van interoperabiliteit
Hier speelt de hele discussie vanuit het pragmatisme een belangrijke rol. "Alles wat gezegd wordt, wordt gezegd door iemand." Hiermee geeft het pragmatisme aan dat als er iets gezegd wordt, je ook moet kijken naar wie dat zegt. Iedere persoon (maar ook iedere organisatie) heeft namelijk een context. De belangrijkste onderdelen van context die van invloed zijn op betekenis:
  • de taak die uitgevoerd wordt, een taak met een doel, een taak die al dan niet succesvol wordt uitgevoerd
  • kennis over de wereld, de kennis over de wereld bepaalt wat de persoon denkt wat er mogelijk is
Als deze context expliciet is gemaakt, kan een ander (de hergebruiker) beter begrijpen welke informatie is vervat in de gegevens van de persoon die gegevens vastlegt (de registratie). De hergebruiker verdiept zich daartoe in het begrip (het onderscheid dat de registratie maakt in 'de wereld'), waarom dat dit onderscheid nodig is en wanneer het onderscheid succesvol wordt gemaakt.

De hergebruiker voert deze analyse uit omdat mensen beschikken over spiegelneuronen (mirror neurons). Spiegelneuronen  stellen ons in staat om ons te verplaatsen in de ander. We begrijpen wat een ander doet als we begrijpen waarom hij dat probeert te doen. Als we naar iemand kijken, beslissen we continu wat een ander probeert te doen.

Als de hergebruiker begrijpt wat de registratie poogt, dan kan de hergebruiker een beeld vormen van de verschillen met zijn eigen wereld. Voor ieder gegeven beslist de hergebruiker:
  • welke gegevens (instanties) niet voldoen aan het eigen begrip van de gegevens
  • welke gegevens (instanties) ontbreken volgens het eigen begrip van de gegevens
Hiermee kan de hergebruiker een ontwerp maken van zijn hergebruik. De hergebruiker gebruikt extra informatie om (voor hem) 'foutieve' gegevens te verwijderen en (voor hem) ontbrekende gegevens toe te voegen.



2. Interoperabiliteit op het moment van hergebruik
De volgende gedachte heeft de gehele wereld van interoperabiliteit verlamd: "Er bestaan altijd verschillen in de gegevens uit 2 contexten." Ik draai nu al een tijdje mee en ik ben verbaasd hoeveel verschillen er tussen gegevens bestaan. Ook gegevens die heel absoluut lijken, blijken altijd weer meerdere interpretaties te kennen. Of het nu om geboortedatum gaat of om het adres, er blijken altijd verschillen te bestaan tussen twee contexten.

Het ontwerp van interoperabiliteit, zoals beschreven hier boven, is een handig middel om deze verschillen te overbruggen. Echter:
  1. De verschillen worden nooit volledig overbrugd, Er blijven altijd een aantal situaties waar in het ontwerp geen rekening mee is gehouden.
  2. Het overbruggen van de verschillen kan veel inspanning gaan kosten die uiteindelijk de besparing die ontstaat vanwege hergebruik, teniet kan doen. 
  3. Het onderhoud aan het ontwerp van interoperabiliteit kan arbeidsintensief worden. Vooral als er een ingewikkelde keten van gegevens wordt gemaakt, dan moet het ontwerp aangepast worden bij iedere verandering door één van de deelnemers uit de keten
Kortom, voorsorteren op verschillen (interoperabiliteit in het ontwerp) is een goed idee maar het behoeft nog een aanvulling die de nadelen van dat voorsorteren overbrugt.

Interoperabiliteit kan men ook creëren op het moment van hergebruik. Bijvoorbeeld, de Belastingdienst wil beslag leggen op het bezit van een natuurlijk persoon. De deurwaarder beschikt wel over een bezoekadres maar niet over een adres waar het bezit van deze persoon zich bevindt. Het bezit van een persoon hoeft zich niet te bevinden op zijn bezoekadres. Echter, en nu komt het: het is wel waarschijnlijk dat het bezit van deze persoon zich bevindt op zijn bezoekadres. En als deze persoon ook geen bezoekadres heeft, dan bevindt zijn bezit zich misschien wel op zijn postadres of op het adres van zijn partner. Eén adres is altijd beter dan geen adres. Het afleiden van het ene adres op basis van een ander adres kan op basis van waarschijnlijkheid. In de statistiek is dit beter bekend als de regel van Bayes: "Wat is de kans op het één, gegeven iets anders." Dus in dit geval, "Wat is de kans dat het bezit van een persoon zich bevindt op het bezoekadres van een persoon?"

Door waarschijnlijkheid te introduceren, zijn ketens van gegevens niet langer 'hard' aan elkaar gekoppeld. Harde koppelingen leiden snel tot breuken en vragen om veel onderhoud. Een koppeling op basis van waarschijnlijkheid leidt tot soepele koppelingen die weinig onderhoud vragen. Koppelingen gebaseerd op waarschijnlijkheid, hebben ook geen last van het gebrekkige ontwerp van interoperabiliteit. Als er geen adres voorhanden is, wijkt het 'algoritme' eenvoudig uit naar een adres dat wel voorhanden is.

Het 'algoritme' voor het koppelen op basis van waarschijnlijkheid, ziet er als volgt uit:
  1. Kies altijd voor het gegeven dat exact voor deze taak is geregistreerd
  2. Als dat gegeven niet bestaat, gebruik dan een soortgelijk gegeven, ook al komt de betekenis niet helemaal overeen met de toepassing waarvoor er hergebruikt wordt
  3. Als dat gegeven ook niet bestaat, gebruik dan een soortgelijk gegeven van één van de objecten die gerelateerd zijn aan het subject
Dit algoritme lijkt veel op het algoritme dat wordt gebruikt door Linked In. Linked In laat zien welke contacten iemand heeft. Als er geen relatie bestaat, laat Linked In zien welke andere contacten wel een relatie hebben met deze persoon. Linked In vermeldt dan 2nd en laat de personen zien die wel een relatie hebben met deze persoon. Mochten er geen 2nd contacten bestaan, dan laat Linked In 3rd contacten zien. Deze contacten kennen personen die wel contact hebben met deze persoon. Etc. Dit algoritme is bekend onder de naam Friend Of A Friend (FOAF).














Dat algoritme is HET algoritme van het semantic web. Het semantic web is geheel gestoeld op
  • het koppelen op basis van waarschijnlijkheid: gegevens hoeven niet precies dezelfde betekenis te hebben. Ongeveer is goed genoeg.
  • het gebruiken van de gegevens van de objecten die gerelateerd zijn met het eerste object
Zoals hierboven al geschetst, bestaan deze algoritmes uit keuzes, de meest geprefereerde keuze bovenaan, de minst geprefereerde onderaan. Beter één gegeven dan geen gegeven.

Het goede nieuws is dat we dit al doen. Op het moment dat iemand in de GBA verhuist, stuurt Belastingdienst de blauwe envelop automatisch naar het nieuwe adres (als we geen feitelijk woonadres (07) hebben). Als iemand is verhuisd in de GBA dan hoeft zijn postadres niet te veranderen. Echter, het is wel waarschijnlijk. 

Hebben we dit meer gezien?
Een aantal lezers zal nu misschien denken: "Waar heb ik dit meer gezien?". En dat klopt. Dit kenden we al eerder onder de naam Fuzzy Logic: het nemen van beslissingen op basis van waarschijnlijkheid.

Geen opmerkingen:

Een reactie posten