Multicontextueel paradigma voor objectgerichtheid

naar de vijfde objectvorm voor flexibiliteit van informatievoorziening

Pieter Wisse

Informatiekundigen werken meer en meer, en ook steeds serieuzer, volgens een paradigma voor objectgerichtheid. Dat is overwegend goed nieuws. Want met zulke objecten bestaan beslist mogelijkheden voor verbetering van informatievoorziening.

Het slechte nieuws? Dat is vooral de hinderlijke hype. Daardoor dreigt nu objectgerichtheid in een mode te blijven steken. Het is dus ook belangrijk om overspannen verwachtingen te temperen.

Wat zijn reële problemen met objectgerichtheid? En zijn er oplossingen voor? Dankzij groeiende ervaring met objectgerichte informatievoorziening treden inderdaad ernstige, reële problemen aan het licht.

Een wezenlijke beperking, mijns inziens althans, is dat een object voor wat definiëring van zijn gedrag altijd maar tot één klasse behoort. Dat maakt praktische toepassing van objectgerichtheid in complexe(re) organisaties en processen moeilijk beheersbaar.

Voor een uitgebreider, zgn contextueel paradigma neem ik een ànder vertrekpunt. Dat is dat ik ten principale de realiteit erken van uiteenlopend gedrag van één en hetzelfde object. Slechts zo'n hèroriëntatie biedt beheersbare oplossing voor deze alleszins redelijke pluriformiteit.

Dit opstel, met vooral het karakter van een onderzoekrapport over het uitgebreider paradigma, leidt als oplossing ondermeer naar wat hier de vijfde objectvorm heet. Daarmee is een nodige en voldoende voorwaarde voor volgehouden inkapseling gedefinieerd. Dat betreft zgn intexten van een object. Voorts omvat elk object in de vijfde vorm expliciet al zijn contexten. Toepassing van dit contextuele paradigma voor objectgerichtheid vermeerdert flexibiliteit die noodzakelijk is voor verdere verbetering van praktische informatievoorziening. Dat is de weg van reëel probleem naar reële kansen.

 

 

uiteenlopend gedrag

Dikwijls wekt gedrag verbazing. Neem gedrag van een persoon die u als een vriend beschouwt. Stel dat u hem goed kent als een extraverte grappenmaker. Op een vraag antwoord hij steevast gevat. Dan is het voor u vreemd hem eens bescheiden, zelfs erg verlegen te zien. Bijvoorbeeld dezèlfde vraag die hij zoëven nog met een grap beantwoordde, brengt hem in een àndere situatie blijkbaar tot onzekerheid.

Als het echt een vriend is en u dus geïnteresseerd bent, probeert u hem ook nu te begrijpen. Natuurlijk staat u daarvoor maar één weg open en wel via — interpretatie van — zijn uiteenlopend gedrag. Misschien luidt de verklaring dat hij uitgelaten is in een vertrouwde omgeving, maar terughoudend waar hij bijna niemand kent. U zult echter nooit zover gaan door te veronderst­ellen dat uw idee van die ene persoon een waanbeeld is. Met andere woorden, u trekt over die vriend niet de conclusie dat er in werkelijkheid twee mensen zijn, in plaats van één. Het extraverte en introverte gedrag blijven in één persoon met diens bijbehorende identiteit geïntegreerd.

 

 

objecten en kenmodellen

Omwille van toepassing van objectgerichte informatietechnologie noemen ontwerpers die ene persoon ofwel mens: een object. Dit betekent overigens niet dat zo'n object met zijn eigen identiteit in de èchte werkelijkheid zonder meer bestaat. Vele ontwerpers veronderstellen in hun zgn naïef realisme weliswaar zo'n absolute, eenduidig kenbare werkelijkheid, maar naar die opvatting is geen uitgebreid literatuuronderzoek meer nodig om haar als achterhaald te bestempelen. Is het hun filosofisch en psychologisch analfabetisme waardoor de meeste automatiseerders, al generatie na generatie, informatie klakkeloos de representatie van zoiets als dè externe werkelijkheid noemen? Ik acht het subjectieve kenvermogen van de ontwerper maatgevend. Zie voor deze subjectivistische opvatting eveneens het artikel De Kwaliteit van Objectgerichtheid is Subjectief.

Het gaat hier dus om objecten en hun identiteit in kenmodellen. Het is voor de verdere redenering voldoende indien een object met zijn identiteit in een dergelijk subjectief kenmodel gevestigd is. Over de werkelijkheid van ... de werkelijkheid kunnen dan verdere uitspraken achterwege blijven.

 

 

modellen volgens huidig paradigma

Zoals het voorbeeld van de extra- èn introverte persoon toont, kan hetzèlfde object verschillend, en soms zelfs zéér verschillend, reageren op wat in het kader van een specifieke impuls exact dezèlfde boodschap is. In dat voorbeeld geldt dezelfde vraag als die boodschap. Kijk maar eens hoe uiteenlopend iemand zich na het aanhoren van de vraag "Houd je van me?" kan gedragen.

Met het huidige paradigma voor objectgerichtheid modelleren ontwerpers dergelijke variëteit van gedrag, dat één en hetzelfde object vaak wel degelijk tentoonspreidt, vaak uiterst gekunsteld. Zie verderop vooral het eerste alternatief. Zelfs het derde alternatief dat ik verderop voor modellering presenteer, toont echter tekortkomingen. Dat komt naar mijn mening door de beperking die in het huidige paradigma besloten ligt, te weten dat elk object tot één klasse behoort. Nota bene, altijd tot één klasse, nooit meer en nooit minder.

Alvorens hier bij wijze van inleiding het uitgebreide, contextuele paradigma te schetsen, behandel ik alternatieven volgens het huidige paradigma. Dat berust op de overtuiging dat, zodra een probleem maar eenmaal duidelijk is, een oplossing meestal voor de hand ligt. Ik veronderstel overigens dat de lezer aardig bekend is met de huidge stand van objectgerichte informatietechnologie. Voor wie dat moet en wil inhalen, staan in de literatuuropgave achteraan dit artikel tevens enkele inleidende titels vermeld.

Als expliciet referentiekader voor het huidige paradigma en voor mijn schets van alternatieven voor modellering benut ik in dit artikel het boek Object-Oriented Analysis van Coad en Yourdon. Reden daarvoor is onder meer dat het boek populair is en dus een ruime verspreiding kent. Het is voorts simpel beschikbaar voor wie de concrete verwijzingen wil volgen. En voor mijn doel is relevant dat hun voorstelling van objectgerichte zaken hier en daar wel erg, zelfde woord, simpel is. Zij laten reële problemen onvermeld. Dat verschaft een uitstekende opstap voor presentatie van verdergaande theorie. Voorts belijden Coad en Yourdon, afgezien dus van zgn hype waaraan zij helaas ook niet ontkomen, wel sympathieke bescheidenheid met hun stelling (p 7) dat objectgerichtheid "will continue to evolve." Zij beweren gelukkig niet het laatste woord over objectgerichtheid te verkondigen. Ik doe dat evenmin, maar ik vermoed dat mijn afwijzing van finaliteit radicaler is. Er blijft altijd veel te verbeteren. De bedoeling met dit opstel is om een bijdrage, en zeker niet de ultieme bijdrage, te leveren aan de vèrdere ontwikkeling van objectgerichte informatievoorziening.

 

 

eerste alternatief: gedrag van rollen

Het eerste alternatief dat ik hier inclusief mijn kritiek erop presenteer, houdt in dat de ontwerper in zijn model àfstapt van gedrag van de geïntegreerde persoon. Weliswaar wordt een klasse voor personen ingericht, maar in de overeenkomstige verzameling bevinden zich geen objectexemplaren of, kortweg, objecten. Onder de noemer van persoon bestaat dus een lege superklasse. Overigens gebruik ik andere symbolen voor klasse, respectievelijk object dan Coad en Yourdon. Gaandeweg de tekst worden de redenen hiervoor (hopelijk) duidelijk.

figuur 1

Ik ga verder met de uitwerking van het eerste alternatief voor het voorbeeld van uiteenlopend gedrag. Er is dus een (lege) superklasse onder de noemer van persoon gedacht. Voor de eigenschappen extravert en introvert benoemt de ontwerper vervolgens evenzovele subklassen. Dat zijn hier de rollen die de persoon kan spelen. In deze beide verzamelingen komen wèl objecten terecht.

figuur 2

Maar wat is nu het probleem? Welnu, de veronderstelde rollen zijn niet disjunct. Het is niet zo dat een persoon òf extravert òf introvert is. Hij is het weliswaar waarschijnlijk nooit tegelijkertijd, maar de conjunctie van gedrag betreft hier de betrekking tot de individuele persoon en niet noodzakelijkerwijs óók de tijddimensie van gedrag. Dat uiteenlopende gedrag is hier in één en dezelfde persoon aanwezig. Dàt is de opgave voor de ontwerper.

Coad en Yourdon besteden veel aandacht aan relaties tussen objectklassen volgens het beginsel van generalisatie versus specialisatie. Dat gebeurt om zoiets als de kleinste gemene deler van gedrag te vangen. Een klasse typeert immers het gedrag van de objecten.

Dit werkt overigens in afwijking van een àndere betekenis van wat een klasse is. Dan constitueert de klasse een verzameling van ojecten die er als elementen deel van uitmaken.

De dubbele betekenis van het begrip klasse, dat wil zeggen als type èn als verzameling, zorgt vaak voor verwarring bij ontwerpers. Coad en Yourdon waarschuwen er niet expliciet voor. Het onderscheid komt vooral in wetenschappelijke(r) teksten beter tot zijn recht. Zie oa Ter Bekke. Dat is jammer, die verwaarlozing in populaire literatuur, want praktische informatievoorziening lijdt onder verwarring tussen klasse als enerzijds type, anderzijds verzameling.

Maar goed, generalisatie en specialisatie hebben uitsluitend betrekking op bedoelde typering van (gedrag van) objecten. Natuurlijk is het daarmee ook voor uiteenlopend gedrag van één en hetzelfde object mogelijk om een model te creëren dat, zeg maar, van binnenuit sluit. Het is alleen jammer dat zulke specialisaties terug naar àf leiden in dat geval van conjunct gedrag of, beter gezegd, van conjuncte objecten voor uiteenlopend gedrag van een geïntegreerde identiteit. Want neem als uitgangspunt de persoon als generalisatie. De specialisaties ervan mogen elkaar in beginsel niet overlappen. Als waarborg voor disjunctie moet daarom als derde subklasse de rol aanwezig zijn die extravert en introvert gedag in één persoon verenigt. En dat is, precies, opnieuw de oorspronkelijke generalisatie. Zonder die extra subklasse zouden de aparte subklassen voor extravert en introvert gedrag elkaar (kunnen) overlappen qua eenduidige identiteit van de respectieve objecten. De superklasse is immers leeg. De ene persoon komt dan zowel als extravert, als introvert voor. Dat betekent stellig doublures van (definities van) variabelen en/of methoden.

figuur 3

Wat Coad en Yourdon als structuur van generalisatie en specialisatie voorstellen lijkt overtuigend, maar schiet voor complexe organisaties en hun processen gauw tekort. Want de eis van disjuncte identiteiten op het niveau van de concrete objecten gaat vaak niet zo ver op.

In één van twee betekenissen geldt, zoals gezegd, een klasse als een type voor objectexemplaren. Dat wil zeggen, objecten van hetzelfde type vertonen hetzelfde gedrag. Zij kunnen zodoende definities voor hun variabelen en methoden delen.

De aanduiding van typen/klassen blijft echter slechts vanzelfsprekend, zolang de gedefinieerde rollen/eigenschappen disjunct zijn en volgens een eigen identiteit herkenbaar. Alleen dan is geloofwaardig vol te houden dat (p 81) "[e]ach specialization is named in such a way that it can stand on its own." Deze zin vat mi uitstekend de simplificatie samen zoals die voor veel informatievoorziening vals is. De specialisatie staat vaak juist nièt op zichzelf, maar geldt in een bepaalde context voor verbijzonderd gedrag van het omvattend object. Of de klasse van dat omvattend object dan in aanmerking komt voor de generalisatie in kwestie kom ik verderop terug. Hier vermeld ik alvast dat zulk verbijzonderd gedrag meestal lòsstaat van het gedrag dat het object-als-geheel kenmerkt.

Een ander punt van kritiek op de aanbevelingen van Coad en Yourdon voor uitwerking van (disjuncte) specialisaties heeft er eveneens mee te maken dat zij voorschrijven dat elke specialisatie op zichzelf staat (en dus ook tot één klasse behoort). Neem het voorbeeld dat zij op pagina 88 van hun boek geven. Omdat een ambtenaar tevens eigenaar van een voertuig kan zijn, komt er een aparte (sub)klasse die het gespecialiseerde gedrag vertegenwoordigt van bijbehorende personen. Maar hoe zit het nu met de overkoepelende identiteit van personen? Hoe is bekend dat iemand zowel eigenaar, als ambtenaar is? Dat blijkt (nog) niet uit een structuur voor generalisatie en specialisatie. Want zo'n structuur dient louter om doublures van definities voor gedrag (zoveel mogelijk) te vermijden. Zelfs indien rollen strikt disjunct zijn, blijft een probleem met de specialisatie van Coad en Yourdon dat ieder gespecialiseerd object "op zichzelf staat." Voor het specifiek gewenste danwel noodzakelijke gedrag moet een ànder object dan wat overeenkomt met de totale persoon aangesproken worden. Die superklasse onder de noemer van persoon is immers zelfs leeg. De totale verzameling personen is als gevolg van specialisatie verdeeld over drie subklassen. Dat doet het beeld van de relevante werkelijkheid — of moet ik zeggen, het relevante beeld van de werkelijkheid? — echter geweld aan. Van buitenaf telt de ondeelbare persoon als herkenbaar object en horen de overeenkomstige objecten in één verzameling. Daaruit volgt weer dat de rol van, bijvoorbeeld, extravert onderdeel van de totale identiteit van een persoon zijn. En dus juist qua persoon nièt helemaal op zichzelf mag staan. Voor eigenaren, ambtenaren en wie het tegelijk zijn, geldt hetzelfde. Met drie subklassen is wellicht overerving maximaal, maar de resulterende drie deelverzamelingen zorgen vervolgens voor problemen. Dat is daarom voor de totale informatievoorziening vrijwel zeker niet optimaal. Een oplossing is natuurlijk om de superklasse niet leeg te laten. Dat behandel ik verderop als derde alternatief.

 

 

tweede alternatief: procedurele(re) specificaties

Een andere oplossing voor ontwerp is om de klasse met haar objecten geheel tot personen te beperken. Daarover zeggen Coad en Yourdon in hun voorbeelden overigens niets. Misschien is de verklaring dat dit alternatief objectgerichtheid als voortzetting van eerdere theorie en praktijk laat zien? En dus niet aantrekkelijk?

Maar die beperking tot elk persoon als een object is natuurlijk geheel overeenkomstig mijn bezinning op ondeelbare identiteit. En dat klinkt daarom alweer een stuk gezonder. Het eerder gestelde kader voor wat een specifieke impuls inhoudt, is met dit alternatief evenwel te krap. Aan de argumenten in de aansprekende boodschap moet een aanduiding van de situatie in kwestie toegevoegd zijn. Om het eerdere voorbeeld te vervolgen, gaat het om de keuze tussen een omgeving (lees ook: situatie) die vertrouwd òf vreemd is. Overigens, of aanduidingen zoals vertrouwd of vreemd zo gelukkig zijn, blijft in het midden. Het gaat hier om de noodzaak van nadere aanduiding in de verzameling argumenten van een boodschap aan een object.

Het aangeroepen object moet vervolgens de passende conditionele verwerking uitvoeren. Daarvoor activeert dat object een zgn methode uit zijn totale gedragrepertoire. Maar handhaving van de gewenste identiteit, zoals van een ondeelbaar persoon, kan uitlopen op een omvangrijke, heterogene methode. De consistente afwikkeling van de relevante situationele condities moet immers door één en dezelfde methode gebeuren, waarvan de afzonderlijke instructies al dan niet overzichtelijk ingedeeld zijn.

question
do you love me?

answer
if the situation is familiar
then exhibit extravert behavior

if the situation is strange
then exhibit introvert behavior

extravert
..............................
..................
.........................

introvert
..............
..............................
........

figuur 4

Daarbij komt vaak nogeens dat de verzameling relevante situaties a priori niet vaststaat. Dat wil zeggen, de ene methode is behalve heterogeen en dergelijke waarschijnlijk eveneens veranderlijk. Dat zijn allemaal geen factoren die bijdragen aan maak- en onderhoudbaarheid van programmatuur. Het paradigma van objectgerichtheid kan dan nauwelijks meer verhullen dat informatievoorziening vooral procedureel georiënteerd blijft. Want dat is allemaal niets anders dan waarvoor bijvoorbeeld gestructureerd programmeren ooit verzonnen is. Dat is al met al langs een àndere weg terug naar àf.

 

 

motivering van keuze

De ontwerper die naar de vorm objectgerichtheid trouw wil zijn, kiest meestal voor de splitsing naar subklassen met hun objecten. Zie hierboven de uitleg van het eerste alternatief. Dat lijkt dan nog de minst kwade oplossing. Er behoeft echter niets mis te zijn met het alternatief dat zwaarder leunt op procedurele benadering van — programmering voor — informatievoorziening. Het verschil is immers relatief en nooit absoluut. Met méér objectklassen zijn er ook méér procedures, maar die zijn per klasse vrijwel zeker kleiner dan procedures in het geval van minder klassen.

Ik noem onderscheidend vermogen via klassen: predifferentiatie van gedrag. Indien het onderscheidend vermogen van de informatievoorziening (pas) in een procedure ligt, geldt dat mi als postdifferentiatie. Deze twee begrippen zijn overigens vergaand vergelijkbaar met pre- en postcoördinatie (van beantwoording van een vraag) zoals die traditioneel voor documentaire informatievoorziening gehanteerd worden.

Martin, die toch de status van instituut verwierf, geeft er geen blijk van (p 42 ev) dat hij overzicht heeft over wat ik als pre- en postdifferentiatie definieer. Hij rapporteert dat complexiteit van programmatuurmodulen dankzij objectgerichtheid dramatisch vermindert. Dat lukt naar mijn oordeel slechts indien objecten en hun klassen passend gekozen zijn. En voor een reële indruk van de complexiteit moeten pre- en postdifferentiatie altijd in hun sámenhang onderzocht zijn. Martin beperkt zich tot het aspect van de postdifferentiatie. Dat is een vertekening van totale complexiteit. Zulke cijfers buiten de context van predifferentiatie met objecten plaatsen objectgerichtheid in een verkeerd, dat wil zeggen te simpel licht. Het gevaar is dat vroeg begin danwel einde van toepassing van objectgerichtheid onjuist gemotiveerd is. Het is de opgave om de benadering volgens objectgerichtheid zo genuanceerd te begrijpen dat het passend voor bepáálde informatievoorziening ingezet kan worden. Objectgerichtheid is niet alles òf niets. Het is aanvullend gereedschap waarvan het specifieke nut nog veel verder onderzocht moet worden.

 

 

derde alternatief: rollen èn onderdelen

Er is een derde alternatief dat nog steeds binnen bereik van het huidige paradigma voor objectgerichtheid past. De absolute keuze tussen enerzijds meer klassen, anderzijds omvangrijke, procedurele(re) methoden is, zelfs met het huidige paradigma, gelukkig niet onontkoom­baar. Vertrekpunt voor dit alternatief is om principieel de mogelijkheid van uiteenlopend gedrag door één en hetzelfde object te erkennen. Met andere woorden, van uniform verandert de potentialiteit van gedrag naar pluriform. Dat komt tot zover trouwens nog overeen met het tweede alternatief, zoals hierboven geschetst.

De meervoudigheid weerspiegelt de uiteenlopende situaties waarin het object kan verkeren en waarin het geconfronteerd kan worden met boodschappen die in enge zin identiek zijn. Neem de vraag "Houd je van me?" die dezelfde persoon in diverse situaties te horen kan krijgen.

De afwijking ten opzichte van het tweede alternatief bestaat eruit dat niet één procedurele verwerkingsgang (lees overdrachtelijk ook nog steeds: methode) met de diversiteit van situaties en dus van condities opgezadeld wordt. De externe meervoudigheid, i.e. van als relevant te onderscheiden situaties voor eigen gedrag van een object, moet naar, zeg ook maar, interne meervoudigheid vertaald zijn. En dit lijkt weer meer op het eerste alternatief. Het enorme verschil met dàt alternatief is echter dat er geen sprake is van splitsing in aparte, dat wil zeggen ònafhankelijke objecten. De splitsing heeft daarentegen geheel binnen het oorspronkelijke object plaats. De gedefinieerde onderdelen in de zin van rollen danwel eigenschappen staan dus niet apart, maar zijn en blijven geïntegreerd en integrerend deel van dat oorspronkelijke object. Dat komt tenminste overeen met wat als ondeelbare identiteit daarvan telt.

figuur 5

figuur 6

De schema's in beide figuren hierboven zijn equivalent. De notatie in figuur 6 biedt meer ruimte voor herhaling omdat een onderdeel niet binnen het omvattende object getekend staat. Dat verdient de voorkeur bij een uitgebreidere hiërarchie waarin objecten als gehelen met op hun beurt eventueel onderdelen verschijnen. Zie verderop figuur 11. Dergelijk gepriegel maakt een schema gauw onoverzichtelijk, hoewel de hiërarchische structuur van de informatie in figuren zoals 5 en 11 wèl beter tot haar recht komt.

Het wezenlijke verschil met het eerste alternatief is dat de objecten voor rollen zoals extravert en introvert niet zozeer als specialisaties, maar als onderdelen van een persoon-als-object gemodelleerd zijn. Coad en Yourdon besteden naast de indeling volgens generalisatie en specialisatie uiteraard eveneens veel aandacht aan indeling volgens geheel en diens onderdelen (p 90 ev). Wat daar helaas niet uit de verf komt, is dat objecten voor conjuncte rollen binnen een omvattende(r) identiteit als onderdelen ipv als specialisaties opgevat moeten worden.

De gevolgen van de keuze voor extravert en introvert als onderdelen van een persoon ipv als specialisaties zijn meteen duidelijk. Er is om te beginnen geen lege superklasse meer onder de noemer van persoon. Het is juist zo dat er wèl objectexemplaren bestaan voor personen. Objecten voor extravert en introvert gedrag zijn onderdelen van het persoon-object. Aldus is een persoon een verzameling ofwel geheel met onderdeleen. Daarbij is het maar de vraag of bijvoorbeeld extravert tevens een specialisatie van de persoon als generalisatie is. Zo ja, dan geldt het overeenkomstige object als onderdeel en specialisatie tegelijk. Een negatief antwoord is echter waarschijnlijker. Slechts wanneer de klasse (type) voor extravert variabelen en methoden deelt met de klasse (type) voor persoon, is vertaling naar een structuur met specialisatie en generalisatie zinvol. En het blijft in het geval van enkelvoudige overerving dan de vraag of persoon de meest geschikte generalisatie van de rol in kwestie is. Wellicht valt gedrag efficiënter met (objecten in) een andere klasse (type) te delen. Dat is dan de geschiktste kandidaat om in de lijn van de typen als superklasse te dienen.

figuur 7

Uit figuur 7 is eveneens te lezen dat een persoon één, en ook niet meer of minder dan één, onderdeel heeft dat overeenstemt met zijn extravert, respectievelijk introvert gedrag. (Want zo luidt de veronderstelling van het voorbeeld.) Zie voor de aanduiding van het aantal onderdelen van elk, zeg maar, type onderdeel het cijfer bij de plek waarvandaan de lijn in het omvattende object naar het object-als-onderdeel vertrekt. Nota bene, er kan uiteraard verschil bestaan tussen enerzijds (de beperkingen voor) het aantal onderdelen van een bepaald type dat een object-als-geheel als de verzameling ervoor omvat, anderzijds (de beperkingen voor) het aantal objecten in de verzameling die de eigen klasse van die onderdelen als verzameling constitueert. Dit verschil komt tot uitdrukking in de afwijkende plaatsen van de overeenkomstige cijfers, waarbij de letter n geen a priori beperking van aantal aangeeft. De letter y (zie figuur 8) duidt erop dat de ontwerper nog een beslissing over de kwantitatieve beperking moet nemen.

Over het begrip verzameling naar aanleiding van het bovenstaande nog het volgende. Een apart objectexemplaar voor persoon vormt op zijn beurt de verzameling voor diens onderdelen. Aldus zijn objectexemplaren voor extravert en introvert, allebei als rollen/eigenschappen van persoon x beschouwd, elementen van de verzameling persoon x.

Elk object kan als verzameling (geheel) van willekeurige andere objecten als elementen (onderdelen) gedefinieerd zijn. Een klasse is echter slechts verzameling voor objecten die door diezelfde klasse als type bepaald zijn. Dankzij uiteenlopend gedrag door eenzelfde object raakt de ontwerper zich bewust dat hij rollen/eigenschappen als onderdelen en/of specialisaties moet zien. Zijn de rollen disjunct èn is elke aparte rol van buitenaf met een eigen identiteit herkenbaar, dan kunnen dergelijke rollen met gespecialiseerde subklassen gemodelleerd worden. Zodra de zelfstandige identiteit van een rol verdwijnt, is er sprake van een onderdeel van een omvattend(er) object dat van buitenaf wèl op een eigen identiteit aanspreekbaar is. Als onderdeel kàn het rolobject, althans haar klasse, uiteraard nog altijd een specialisatie zijn. Maar de generalisatie is dan stellig niet de klasse van het object waarvan de rol/eigenschap onderdeel uitmaakt.

De beperking van de presentatie van oa Coad en Yourdon is, algemeen gezegd, vooral dat zij de structuurvormen op basis van generalisatie en specialisatie, respectievelijk geheel en onderdelen op hun beurt als disjunct opvatten. Daardoor bieden zij geen zicht op mogelijkheden van objectgerichtheid die juist samenspel van beide structuurvormen vereisen. In simpele constructies voor informatievoorziening is dergelijk samenspel inderdaad niet nodig. Dat wil zeggen, er is daar geen uiteenlopend gedrag van een object waarvan tegelijk de ondeelbare identiteit gehandhaafd moet blijven.

Ik zie voor modellering van klassen en objecten een continuüm. Aan de ene kant verlopen de abstracties volgens generalisatie/specialisatie, respectievelijk geheel/onderdeel helemaal onafhankelijk. Aan de andere kant overlappen zij totaal. Het laatste houdt dan er een object a is dat een ànder object b als element omvat èn dat de klasse van a tevens als generalisatie geldt voor de klasse van b als specialisatie. Deze (mi overigens onwaarschijnlijke) overlapping is in figuur 8 afgebeeld.

figuur 8

De ontwerper moet in de praktijk ergens op dat continuüm keuzes voor relaties maken. De keuzes voor het ene òf voor het andere uiterste houden de structuur weliswaar eenvoudig. Maar het moet al gauw complexer, en dan kan de ontwerper niet zonder begrip van dynamiek van conjunct gedrag. De keuzes op dat continuüm van de relaties overeenkomstig beide abstractiedimensies hebben overigens een strekking die afwijkt van de werking van zgn meervoudige overerving. Aangezien het daarbij om overerving gaat, is immers slechts de dimensie van generalisatie versus specialisatie aan de orde.

Zo bezien is de benadering van Coad en Yourdon aardig, leuk voor beginners. Wie daar blijft steken, kan met objectgerichtheid echter nooit meer laten zien dat wat met andere benaderingen reeds uitstekend haalbaar was. Daar komt waarschijnlijk de kritiek op objectgerichtheid in de zin van "oude wijn in nieuwe zakken" ook vandaan. Informatiekundigen met kennis van traditie van hun vak vinden de claims in naam van objectgerichtheid vaak terecht overdreven. Zulke scepsis valt niet met luidere claims te overwinnen. Daarentegen moet reële kritiek opgepakt worden. Mijn idee is inmiddels dat objectrgerichtheid niets radicaals inhoudt, maar wèl waardevolle extra nuances haalbaar maakt. En het is, zoals ook dit opstel laat zien, weleens moeilijk om nuances te verhelderen.

Wat bijvoorbeeld Coad en Yourdon evenmin duidelijk als toegevoegde waarde schetsen, is de inkapseling van objecten die als onderdeel van een geheel gelden. Het is alsof zij terugschrikken voor de implicaties van die recursiviteit. Dat leidt ertoe dat hun structurering volgens het beginsel van geheel met zijn onderdelen de sfeer van welbekende entiteitenmodellen ademen. Hun schematische notatie acht ik ronduit ongelukkig. Er zou duidelijk moet blijken dat een object-als-onderdeel volledig ingekapseld is in het object-als-geheel. Zie hier de figuren 5 en 6 met de verklaring van hun equivalentie.

Alleen attributen geven Coad en Yourdon een herkenbaar ingekapselde plaats. Dat is voor inzicht in mogelijkheden van objectgerichtheid onvoldoende. Trouwens, attributen, ofwel beschrijvende eigenschappen of rollen, zijn natuurlijk volgens het paradigma voor objectgerichtheid op hun beurt altijd óók objecten, zij het blijkbaar geen gehelen voor verdere onderdelen. In mijn figuren in dit artikel heb ik in het algemeen geprobeerd waar nodig die inkapseling explicieter te schetsen. Inkapseling moet altijd consequent volgehouden zijn. Wie teveel op typering van gedrag let, en dus puur op generalisaties en specialisaties, mist de bijzondere mogelijkheden van objectgerichtheid via die volgehouden inkapseling van onderdelen in gehelen. In beginsel kan inkapseling eindeloos volgehouden worden.

Het is alsof Coad en Yourdon inkapseling tot één niveau van diepgang beperkt houden. Dat is het niveau van attributen in een object. Zodra een eigenschap als onderdeel een 'geheel' object rechtvaardigt, presenteren zij het overzicht à la entiteitenmodel. Wat verschilt zulke modellering van de informatie dan van normalisatie voor relationele informatieverzamelingen? Inderdaad, niets. Dus ook met hun oppervlakkige behandeling van structurele indeling van modellen in zgn gehelen en onderdelen komen zij niet verder dan toepassingen voor beginners.

Verdere verkenning van mogelijkheden, en uiteraard van beperkingen, van objectgerichtheid vergt dat gevorderde ontwerpers verder zoeken naar al dan niet vermeende problemen en vervolgens voor de reële problemen met steekhoudende oplossingen komen. Het gevaar van (te) gemakkelijke inleidingen is dat zij ontwerpers op een verkeerd spoor kunnen voeren.

Terug naar veelvoorkomende werkelijkheid en dus naar de eisen voor uiteenlopend, conjunct gedrag. Daarbij hoort dat de ontwerper rollen veeleer als onderdelen dan als specialisaties van het object met de gewenste identiteit definieert. In elk geval zijn het tenmìnste onderdelen. In welke mate tevens specialisatie aanbeveling verdient, betreft een andere keuze zoals ik hierboven al uitvoerig toegelicht heb.

Indien zulke onderdelen op hun beurt uitgewerkt gedrag moeten vertonen, zijn het eveneens volwaardige objecten. Maar zij staan als (ook altijd ingekapselde) onderdelen dus niet geheel op zichzelf. En als er geen sprake is van uitgewerkt gedrag, volstaan voor de variabelen simpelweg attributen ipv heuse objecten als onderdelen. Goed, een wezenlijk verschil met het eerste alternatief, waarin de rollen dus geheel zelfstandige specialisaties zijn, is dat de aanroepende boodschap niet direct aan de zgn eigenschap gestuurd wordt. Dat gebeurt juist aan het object dat qua identiteit wèl aanspreekt, te weten aan de gehele persoon.

Terwijl conjuncte rollen, opgevat als disjuncte specialisaties, doublures bijna onvermijdelijk maken, is dat gevaar met rollen als onderdelen geweken. Wat rollen als extravert en introvert delen, verdient immers een plaats in de totale persoon. En vanwege die gemeenschappelijkheid was verbijzondering naar beide rollen om te beginnen niet gerechtvaardigd. Via hun inkapseling is de relatie van onderdelen met 'hun' geheel gewaarborgd. Zie vooral de figuren 5 en 11.

 

 

situatie als argument

Nogmaals, wat levert het derde alternatief met zijn ruimte voor benadering van interne objecten via een omvattend object op? Conform de splitsing naar situaties blijven binnen ieder van die zgn interne objecten de variabelen en methoden beperkt tot de specifieke situatie waarin zij van toepassing zijn. Dit herstelt, dat wil zeggen voor elke aparte situatie, de gewenste eenduidigheid van variabelen en method­en. De aanduiding van de situatie waarin het object aangesproken wordt, is nu immers geen conditie meer die actief en steeds gaandeweg verwerkt wordt door de procedurele kant van een methode die àlle situaties moet omspannen. Daarentegen leidt de aanduiding van een bepáálde situatie via een enkelvoudige conditionele verwerking door het omvattende object naar de overeenkomstige methode van het interne object. En deze methode kan vervolgens overweg met de overige argumenten in de boodschap. Deze benadering staat in figuur 9 opnieuw met hetzelfde voorbeeld toegelicht.

(person x, <situation>, do you love me?)

if the situation is familiar:
(extravert x, do you love me?)

if the situation is strange:
(introvert x, do you love me?)

figuur 9

De verschuiving van een conjuncte rol, die in een disjuncte specialisatie vorm kreeg, naar een onderdeel van het overkoepelend object vereist dus dat elke boodschap een apart argument bevat dat eenduidig als aanduiding van de relevante situatie geldt. Het object dat de boodschap verstuurt, moet uiteraard onderscheid naar relevante situaties kunnen aangeven. Dat volgt nu eenmaal uit erkenning van pluriformiteit. De vertaling van de variëteit naar termen van situaties is echter eleganter dan vertaling naar verdere opsplitsing van een lege superklasse in aparte, gespecialiseerde en van alkaar onafhankelijke klassen die zoiets als rollen vertegenwoordigen.

De route langs het overkoepelende object dat overeenstemt met de gehandhaafde identiteit is met het derde alternatief trouwens niet de enige manier om, bijvoorbeeld, die eigenschap van òf extravertie òf introvertie te activeren. Omdat elke eigenschap op zijn beurt eveneens met een object vorm krijgt, kan ook dàt object uiteraard direct aangesproken worden. Het is immers slechts een intern object vanuit het overkoepelend perspectief. Verder is het gewoon óók: een object.

Eenduidigheid vereist dat bij benadering langs deze route het overkoepelend object — in plaats van de situatie — als argument in de boodschap aangeduid staat. Want van wèlke persoon is de gebruiker van informatie in die en die eigenschap of rol geïnteresseerd? Verderop poneer ik hiervoor het ruimere begrip van de context.

 

 

eerste intermezzo: tussenstand

Tot dusver is het huidige paradigma voor objectgerichtheid ongemoeid gebleven. Er was kritiek op de toepassing ervan en wat sommige literatuur aanbeveelt. Veel verbeteringen zijn al haalbaar, wanneer constructies voor generalisatie en specialisatie, respectievelijk geheel en onderdeel méér ontworpen worden conform de complexiteit van de organisaties en processen waarvoor de informatievoorziening dient. De populaire literatuur verschaft vooral triviale voorbeelden en blijft zodoende oppervlakkig.

Het derde alternatief, waarmee ik geprobeerd heb die noodzakelijke flexibiliteit te illustreren, heeft echter een tekortkoming. Dat is telkens de procedurele verwerking door het object dat vanwege zijn, van buiten als ondeelbaar opgevatte, identiteit aangesproken wordt. Die methode is voor zulke objecten onvermijdelijk, aangezien elk object tot één en precies één klasse behoort. Achter de eerste regel (boodschap) in figuur 9 gaat dezelfde procedure schuil als figuur 4 toont.

Maar bestaat er dan een alternatief voor die procedurele verwerking teneinde een boodschap door een onderdeel te laten verwerken? De sleutel voor de oplossing zie ik in opheffing van de beperking dat een object voor wat de definiëring van zijn gedrag exact in één klasse moet worden geplaatst. Dat is dus de klasse als type, niet als verzameling waar het als element onderdeel uitmaakt; hetzelfde object kan al volgens het huidige paradigma (uiteraard) als element tegelijkertijd onderdeel van talloze verzamelingen zijn. Indien een object tegelijkertijd tot diverse klassen behoort, kan een impliciet mechanisme voor de selectie van het passende gedrag bestaan, natuurlijk mits de context bekend is. Zo'n contextuele benadering vervangt de expliciete procedure die hier volgens het huidige paradigma met het derde alternatief nodig is.

Het vervolg van dit artikel is gewijd aan de schetsmatige opbouw van een paradigma voor objectgerichtheid waarin géén beperking meer bestaat voor het aantal klassen waartoe een object behoort. Dat is de directste manier om plurifomiteit van gedrag door een object met een enkele, algemene identiteit te bereiken. De noodzaak daarvoor heb ik hopelijk afdoende aangetoond. Het gaat me om de radicale aard van de erkenning van pluriformiteit. Ik pleit ervoor om èlk object a priori de mogelijkheid van gedrag in diverse situaties te verschaffen. Dus de persoon blijft zonodig centraal staan en niet zijn eventuele rollen. Dan is uniform gedrag de uitzondering geworden, terwijl met de praktijk van het huidige paradigma plurifom gedrag in mijn modellen slechts nog een uitzondering is. Door van de vroegere uitzondering de nieuwe regel maken, kan de ontwerper van informatievoorziening realistischer met complexiteit overweg.

Voor wie objectgerichtheid vooral toepast om produktiviteit van ontwikkeling en onderhoud van computerprogrammatuur te verbeteren, ligt er vooralsnog een hoge drempel om het paradigma voor uniform gedrag te verwisselen voor dat voor pluriform gedrag. Dat komt omdat zulke hogere produktiviteit gedacht wordt te resulteren uit de eigenschap van zgn overerving (inheritance). Mijn waarschuwing is echter dat zulke overerving géén fundamentele eigenschap van objectgerichte informatietechnologie is. Daarom wordt overerving in de navolgende toelichting vooralsnog gelaten voor wat zij is. Om echter door stilzwijgen geen misverstanden te wekken, volgen verderop nog wel degelijk enige opmerkingen erover. Zie de paragraaf met iets over klassen. Die opmerkingen zijn eerder toegift dan toelichting op de radicale aard van de wijziging van het voorgestelde contextuele paradigma. De principiële opvatting luidt hier dat allereerst de noodzakelijke flexibiliteit gewaarborgd moet zijn. Eventuele optimalisatie van produktiviteit, met klassen (als gedragtypen) als middel daartoe, behoort die flexibiliteit onaangetast te laten.

 

 

letterlijk: objectgericht

Het mechanisme van overerving is gebaseerd op indeling van objecten in klassen. Het is echter, netzoals met de ervan afgeleide overerving, een misverstand dat zulke indelingen fundamenteel zijn voor objectgerichtheid. Dat is absoluut niet zo. Anders zou er wel sprake zijn van klassegerichtheid of zoiets.

Klassen zijn een middel voor het doel van objectgerichtheid. Niets meer en niets minder. En soms schiet iemand met dat middel het doel zelfs voorbij. Overerving brengt immers niet uitsluitend gemak. Er zijn ook risico's aan verbonden. Via specialisatie kan inkapseling vaak schijn zijn. Dat gebeurt wanneer variabelen en/of methoden reeds voor een algemenere klasse, dus hoger in de hiërarchie gedefinieerd zijn. Het is nog wel te overzien wanneer definitie eenmalig is. Maar zijn objecten van gespecialiseerde klassen nog consistent indien definities onder de noemer van een globalere klasse wijzigen? In elk geval ligt bewaking van die consistentie niet besloten in het huidige paradigma. Ik heb er overigens ook geen oplossing voor, maar wijs slechts op het mogelijke gevaar van overerving van gedrag via klassen.

 

Wat objectgerichtheid is, en zeker wat het is volgens het uitgebreider paradigma, valt slechts omvattend te begrijpen door allereerst louter op objecten te letten. Het is daarom essentieel om de aanduiding objectgericht letterlijk te nemen. Klassen zijn secundair. Objecten staan hier daarom steeds centraal. Hoe ik klassen zie, en wel in termen van overeenkomstig gedrag, een type dus, valt dan verderop als het ware vanzelf op zijn plaats.

 

 

praktische aanleiding

Het is tijd voor de overgang van het huidig naar mijn uitgebreider paradigma voor objectgerichtheid. Voor begrip ervan helpt het om de concrete aanleiding te kennen. Want wat mij betreft is de nood voor aanvullende theorie altijd zeer praktisch. Iets dringt zich als een probleem op. Vervolgens is het de uitdaging een mooie oplossing te realiseren.

In dit geval had een uitgever van enkele sporttijdschriften een probleem. Daarvan was één blad helemaal aan één sport gewijd. Om de concurrentiepositie van dat ene tijdschrift verder te versterken, wenste de uitgever tevens te beschikken over wat hij een complete databank met informatie over die sport in kwestie noemde. Compleet? Desgevraagd bleek compleet voor de betrokken redactionele medewerkers hetzelfde te betekenen als alles. Alles?

De eerste opgave was om de uitgever te laten inzien dat zo'n wens onrealistisch is. Computers met programmatuur zijn geen wondermiddel. "Alles" bestaat niet, en zeker niet met geautomatiseerde informatievoorziening. Tegelijk was er de uitdaging om te tonen dat wel degelijk de opslag en toegankelijkheid van allerlei uiteenlopende informatie sterk konden verbeteren. Deze uitdaging groeide nog door de blik niet tot die ene tak van sport te beperken, maar op sport in het algemeen te richten.

 

 

begin met prototype

Ik meende dat voor genoemde opgave en tegelijk uitdaging in eerste aanleg een prototype nodig was. Maar volgens welk ontwerp?

Het boeiende van ontelbare sporten en spellen, althans wat uitgebreidere informatievoorziening erover betreft, is dat zij in hun variëteit exemplarisch zijn. Vrijwel direct was duidelijk dat er geen gedetailleerd patroon bestaat waarin informatie over al die uiteenlopende menselijke activiteiten eenduidig en ook voldoende passen. Let wel dat ik in de vorige zin aan het zelfstandig naamwoord patroon opzettelijk het bijvoeglijk naamwoord gedetailleerd koppelde.

In de ene richting kan de oplossing vervolgens in nòg verdere verbijzondering gezocht worden. Dat is echter niet aantrekkelijk. Het aantal zgn bijzonderheden blijkt immers netzo groot als de variëteit van sporten. Dat komt uiteindelijk (wederom) neer op evenzovele aparte voorzieningen voor opslag en selectie van informatie.

Met zo'n overweldigende variëteit biedt slechts ontwikkeling in de andere richting reëel soelaas. Dat is de weg van abstractie. Het patroon bestaat dan uit de mogelijkheid om de relevante bijzonderheden te kunnen plaatsen. Dat houdt in dat er als onderdeel van de registratie, zeg maar, ruimte moet zijn om relevante informatie te benoemen, op te slaan en ook te selekteren.

Gesteld voor het extreem grote aantal bijzonderheden, viel de keuze op extreme abstractie. Dat was, los van deze concrete aanleiding, overigens al een oud idee. Ik had blijkbaar op de kans gewacht er verder mee aan de slag te gaan. Dankzij samenwerking met Ivar de Jong die de programmatuur ontwikkelde, kwam de extreme of, liever gezegd, radicale abstractie meteen al in het eerste prototype tot uitdrukking.

 

 

de vorm van de abstractie

Aangezien ik a priori niets over de inhoud van de informatie bekend veronderstelde, ontwikkelde De Jong dienovereenkomstig louter een vòrm voor a posteriori registratie. In zoverre is een uitspraak zoals "de vorm van de abstractie" natuurlijk ook een tautologie. Maar hoe danook, wat was de vorm die ik ontwierp? Welnu, heel extreem en tegelijk platvloers, bestaat er volgens mijn model slechts één soort entiteit ofwel object. Dat is zo, en dat blijft zo. Het is echter meestal noodzakelijk om eigenschappen van een object te vermelden. Dat kan, prima, maar dan uitsluitend via een object van dezelfde absolute soort. Het object dat de eigenschap vertegenwoordigt, maakt daarvoor onderdeel uit van het object waarvoor kennelijk de behoefte aan vermelding van die eigenschap bestaat. Uit die relatie tussen beide objecten blijkt, omgekeerd, dat het ene als eigenschap van het andere object geldt. Zo kunnen eigenschappen volgens dit beginsel eindeloos verbijzonderd worden. Dat zal in de praktijk niet kunnen, ik bedoel die eindeloze herhaling danwel recusiviteit, maar het gaat nadrukkelijk wèl om dit beginsel. En wat de klasse voor deze vorm van abstractie betreft, er is door deze recursiviteit au fond maar één klasse.

In de praktijk, en uitgaande van een bepaald object met de gewenste identiteit, ontstaat steeds een hiërarchie van objecten. Zie figuur 10 voor zo'n provisorisch uitgewerkte structuur. En ook nota bene, dit is wederom een informatief voorbeeld en geen absoluut geldige modellering. Integendeel.

De objecten staan uiteraard fysiek niet apart, dat wil zeggen zij staan niet ònder elkaar zoals in een traditioneel entiteitenmodel. In zoverre wekken boomstructuren hier een valse suggestie. Daarentegen zijn objecten voor nadere eigenschappen in werkelijkheid omvat door objecten voor algemenere eigenschappen. Zie ook mijn eerdere opmerkingen over schetsmatige afbeeldingen van elementen in een verzameling, enzovoort.

figuur 10

Het schema in figuur 10 oogt weliswaar als een boom, maar dat de bedoelde hiërarchie is er nadrukkelijk één van steeds verdere inkapseling. Zie figuur 11 voor een schetsmatige vertaling naar volgehouden inkapseling.

figuur 11

De gekozen vorm van de abstractie berust dus enerzijds op objecten als zijnde autonoom, anderzijds op nadere eigenschappen van een object die op hun beurt eveneens als objecten gelden. Zo kunnen inderdaad de meest uiteenlopende verschijnselen concreet beschreven worden op een manier die voor latere informatieconsumptie relevant is.

 

 

tweede intermezzo: filosofische inspiratie

Dat zulke extreme abstractie de enige benadering is die kan werken, daarvoor ontdekte ik steun bij de filosoof Ludwig Wittgenstein. Hij worstelde met taal en oa met de variëteit die er vaak mee tot uitdrukking moet worden gebracht. Ik heb hierboven voor de enorme variëteit van sporten en spellen eveneens een a priori (gedetailleerd!) patroon voor de inhoud van informatie afgewezen. Wittgenstein zegt (p 31e ev): "Instead of producing something common to all that we call language, I am saying that these phenomena have no one thing in common which makes us use the same word for all, — but that they are related to one another in many different ways." Opmerkelijk in het licht van mijn concrete aanleiding vervolgt Wittgenstein zowaar met toelichting op sport en spel. Hij vraagt erover: "What is common to them all?" In zijn eigen antwoord vergelijkt hij samenhang met een draad. "And the strength of the thread does not reside in the fact that some one fibre runs through its whole length, but in the overlapping of many fibres. [...] Something runs through the whole thread — namely the continuous overlapping of those fibres." Volgens mijn model heeft op dezelfde manier veel sportinformatie de vorm van haar abstractie gemeenschappelijk. En vanwege de extreme, radicale abstractie waartoe de grote variëteit van sport & spel me leidde, is hetzelfde model goed bruikbaar voor veel informatie in het algemeen. Toepassing hoeft zeker niet tot dat ene onderwerp beperkt te blijven. Ik abstraheerde immers al van meet af aan, ook van sport & spel. De ideeën van Wittgenstein zorgden door bevestiging van mijn gekozen richting voor verdere inspiratie. Het is dus een misverstand om zulke filosofie tot louter theorie te bestempelen. Zij is juist uiterst praktisch bruikbaar voor de ontwerper die er oog voor heeft.

 

 

noemers en waarden

De essentie van mijn ontwerp ligt in de verzoening van autonomie met eigenschap. Veronderstel allereerst een autonoom object. Met extra objecten kunnen vervolgens eigenschappen van dat oorspronkelijk veronderstelde object benoemd worden. Enzovoort met objecten voor eigenschappen die op hùn beurt blijkbaar eigenschappen van ... eigenschappen zijn. Maar dat betekent dat het voor formalisatie voldoende is om de samenhang te ontwerpen voor een willekeurig niveau, zeg voor het niveau van informatie met de orde n.

Stel dat een bepaald object — dat bijvoorbeeld een persoon vertegenwoordigt — verschijnt op niveau n. Volgens een hiërarchie beschouwd horen de onmiddellijke eigenschappen thuis op het niveau van de eersthogere orde, dat wil zeggen n+1. (Definitie: Een lager niveau in een informatieboom, en wel gezien van boven naar beneden, betekent informatie met een hógere orde.) Het is echter te ònbepaald indien er zonder meer extra objecten met orde n+1 opgenomen worden in het object met orde n. Bijvoorbeeld de objecten 'blauw', '38' en '71' geven weliswaar reeds waardevolle informatie, maar de aanduiding van de eigenschap waar elke waarde betrekking op heeft, ontbreekt. Dat leidt ertoe om iedere nadere eigenschap te omschrijven met allereerst een noemer en vervolgens bij die noemer een waarde te vermelden. De zgn waarde is het feitelijke object op het eerstlagere niveau ofwel van de eersthogere orde. Zo gaat de waarde '71' op dat niveau vooraf door bijvoorbeeld de noemer gewicht. Met '38' is bijvoorbeeld de schoenmaat bedoeld. Dit simpele voorbeeld met informatie op, ofwel een boom met, twee niveaus staat in figuur 12 samengevat.

figuur 12

Elke noemer is hier slechts voorzien van een enkelvoudige waarde. Dat kan ook anders zoals figuur 10 laat zien.

In omgekeerde richting geldt het object dat de persoon in kwestie vertegenwoordigt, eveneens als een waarde. Daar hoort dus een noemer vóór. Een voorbeeld van een algemene noemer is persoon. Maar de noemer had ook zoiets als speler kunnen zijn. En met zo'n combinatie van noemer en waarde — speler als noemer respectievelijk persoonsidentificatie als waarde dus — op niveau n laat zich eenvoudiger informatie op niveau n-1 veronderstellen. De speler behoort bijvoorbeeld tot een bepaald team. De noemer met orde n-1 luidt dan team en de bijbehorende waarde vertegenwoordigt de specifieke ploeg waarin hij meespeelt. De keten van noemers en waarden verder ontwikkelend, is het mogelijk om het team als eigenschap van een club te beschouwen. Hoe danook bestaan er in de informatieverzameling altijd objecten met de orde 1. Dat zijn qua formalisatie uiteraard de grensgevallen. Want van welk omvattend object zijn die objecten met orde 1 dan de eigenschappen? Mijn axioma luidt dat de totale informatieverzameling dient als zgn oorspronkelijk object en als zodanig de orde 0 toegekend gekregen heeft. De totale informatieverzameling is het enige object dat niet als eigenschap van een ànder object optreedt. Voor alle objecten ìn de verzameling geldt dat wèl. Dus ook een object met orde 1 staat nooit alleen. Er gaat altijd een noemer aan vooraf. En daaruit blijkt niets meer of minder dan de als meest fundamenteel gekozen classificatie voor de informatievoorziening.

Oppervlakkig gezien komt een noemer overeen met een klasse en een waarde met een object. Met opzet koos ik echter afwijkende termen. Zoals verderop blijkt, kan volgens mijn uitgebreider paradigma een klasse met méér dan slechts één noemer aangeduid worden. En de waarde is er vooral om een object in een bepaalde context mee te identificeren of, beter gezegd, aan iemand die informatie zoekt te presenteren. In een informatieverzameling, zoals ik die ontwerp, omvat een object altijd méér informatie. Dat zijn naar behoefte en dus vaak zijn nadere eigenschappen en in elk geval al zijn contexten. Verderop staat uitgelegd wat een context is en wat het betekent dat contexten deel uitmaken van een object. Overigens bestaat de minimale context uit één noemer (en dat is meteen ook de maximale context volgens het huidige paradigma!), Voorafgegaan door slechts één noemer vertegewoordigt een zgn waarde informatie van orde 1.

Ik besef dat nu simpel een misverstand ontstaan kan zijn. Dat betreft de relatie tussen een object en wat het zogenaamd vertegenwoordigt. Het is echter zo dat ik over die problematische relatie geen uitspraak gedaan heb, laat staan een zgn naïef realistische opvatting huldig. Waar ik qua vorm de werkelijkheid en informatieverzameling elkaar laat ontmoeten is mi louter en alleen op het axiomatische nulniveau. Vervolgens hebben mijn uitspraken betrekking op relaties tussen objecten ìn de informatieverzameling. Een object ligt daarom hier altijd in het vlak van de informatie, niet in het vlak van zoiets als de absolute werkelijkheid. Zeker, daarin vallen eveneens objecten te onderscheiden, maar dat is een ànder verhaal. Ik bedrijf informatiekunde en geen, bijvoorbeeld, natuurkunde. Met het woord object, of met welk woord danook, wil ik met verwijzing naar de vorm van de abstractie niet tegelijk iets-van-informatie en wat-het-afbeeldt aanduiden. Dat leidt inderdaad onherroepelijk tot misverstand, hoewel menigeen zich daarvan helaas niet bewust is.

 

 

tegelijk nadruk op autonomie

De feitelijke registratie van informatie — nota bene, ìn de informatieverzameling — verloopt vanzelfsprekend volgens een progressie, te weten in de richting van toenemende detaillering. Dat begint altijd met een noemer en waarde met orde 1 en dan via nadere eigenschappen netzo vergaand als relevant is voor adequate informatievoorziening. Dit houdt echter niet in dat registratie altijd maar bestaat uit toevoeging van nieuwe objecten. Neem het voorbeeld van de speler. Duidelijk moet zijn dat ik hier over zoiets als een rol spreek. De aanduidingen rol en eigenschap blijken voor mijn doel zodoende synoniem. Het eerste benadrukt dynamiek van samenhang, terwijl het tweede een statischer indruk achterlaat.

Overigens komt via het classificatie-mechanisme met noemers èlke verschijning van een waarde neer op, zeg maar, een rol die het speelt of eigenschap die het uitmaakt. De enige uitzondering is, nogmaals, het ultieme grensgeval, en dat is bij aanname de totale informatieverzameling.

Het kan dus heel goed zijn dat het object, dat na een zekere noemer in de overeenkomstige rol/eigenschap verschijnt, reeds bekend is in een àndere rol danwel van een àndere eigenschap waar danook. Het blijft volgens mijn principe van overkoepelende identiteit echter hetzèlfde object. De autonomie ervan wordt niet aangetast doordat het object in uiteenlopende samenhangen van eraan voorafgaande noemers en waarden verschijnt. Zo is het mogelijk om volkomen inzichtelijk één en dezelfde persoon in de informatieverzameling op te nemen als speler tijdens wedstrijden, als lid van een team tijdens een speelseizoen, als lid van een vereniging voor eventueel nòg langer enzovoort en, inderdaad, als persoon tijdens zijn gehele leven. Overal bestaat de toegevoegde waarde uit een objectidentificatie. (Zie verderop voor gebruik van dezelfde waarde voor verschillende objecten.) En overal kunnen er nadere eigenschappen van het object geregistreerd worden. Let wel, dat zijn dan eigenschappen die gelden voor het object bìnnen de samenhang zoals die op dié plaats in een specifieke informatiehiërarchie door de eraan voorafgaande noemers en waarden relevant zijn. Het is dus niet handig om de geboortedatum als eigenschap van een persoon àls speler op te vatten. Want dan moet elke keer als er iets over zijn optreden als speler geregistreerd wordt, zeg maar over iedere wedstrijd die hij speelt, de informatie over zijn geboortedatum herhaald worden. Het ligt voor de hand om informatie eenmalig te registreren. Dat moet onder een passende noemer danwel uitgebreidere samenhang van noemers en waarden gebeuren, zoals in dit geval met orde 1 de enkele noemer van persoon dat is. Als zo'n noemer of uitgebreidere samenhang nog niet bestaat, moet zo'n voorziening alsnog ingericht worden. In figuur 13 zijn bovenstaande opmerkingen verwerkt. Er komt iets van de figuren 10 en 12 in terug met de verwijzing naar de ene persoon x. Let wel, het is in deze figuren de verwijzing die meervoudig is. Het object x zèlf bestaat natuurlijk enkelvoudig met enerzijds zijn meervoudige contexten, anderzijds zijn eventuele, en eventueel ook meervoudig bijbehorende verdere eigenschappen.

figuur 13

 

 

objectvormen

De vermijding van doublures krijgt bij relationele informatieverzamelingen aandacht onder de noemer van normalisatie. Wat hierboven schetsmatig beschreven staat, heeft inderdaad veel weg van de ontwikkeling van normaalvormen. Er zijn echter ook verschillen die alles te maken hebben met mogelijkheden en beperkingen van objectgerichte informatietechnologie. Daarom spreek ik toespelenderwijs over objectvormen. Ik geef erdoor aan dat objectgerichtheid volgens mijn uitgebreider paradigma haar eigen, karakteristieke normalisatie kent. De zo bekende normaalvormen zijn dan blijkbaar beperkt tot relationele normalisatie.

 

 

eerste objectvorm: uniek

In het huidige stadium van mijn informatiemodel en bijbehorend paradigma beschik ik voor diverse objectvormen over noties die nog overwegend informeel zijn. Maar is dat niet altijd een noodzakelijke stap op weg naar eventuele formalisatie? In elk geval veronderstel ik dat informatie in de eerste objectvorm staat, indien het gevormde object zich uniek kan gedragen. Elk object is dus uniek ... zichzelf. Of, nog anders uitgedrukt, elke object definieert vanuit zichzelf altijd één klasse. Het ìs eigenlijk minstens zichzèlf als klasse. Dat is uitgangspunt voor de consequente erkenning van pluriformiteit in gedrag.

 

 

tweede objectvorm: willekeurige identificatie

De tweede objectvorm houdt in, uiteraard bovenop de eerste objectvorm, dat de identificatie van een object ònafhankelijk is van inhoudelijke informatiebehoeften. Met andere woorden, een object in de tweede objectvorm beschikt over een zgn non value-based key.

De voordelen van een willekeurige identificatie van een object zijn groot. Als ik vooralsnog afzie van problemen met snelle selectie van informatie n.a.v. een indirecte vraag, biedt de tweede objectvorm mogelijkheden voor flexibeler modellering. Een nadeel voor de interactie met een mens is echter precies die betekenisloosheid van de objectidentificatie. Er moet dus àndere informatie gepresenteerd worden. Als het niet de eenduidige sleutel is, moeten het één of meer waarden zijn. Daarmee vervalt in de interactie de garantie voor eenduidige interpretatie. Stel dat ook achternamen als identificaties (lees beter: als waarden voor aanduiding van overeenkomstige objecten) gebruikt worden. Verschillende personen kunnen dezelfde achternaam hebben. De benadering is nu om overeenkomst van waarden te signaleren. Via nadere inspectie van de bijbehorende objecten — nota bene, elk in tweede objectvorm met hun unieke 'betekenisloze' identificatie — kan de gebruiker vervolgens het 'juiste' object aanwijzen. Overigens, als er geen verschillen blijken, is het natuurlijk voor het doel van de informatieverzameling de vraag of er reëel sprake is van méér dan één object.

 

 

derde objectvorm: object-in-context

Eén en hetzelfde object, bijvoorbeeld een bepaald persoon, kan talloze malen geregistreerd staan. Dat licht oa de vorige figuur toe. Een kenmerkend verschil tussen de uiteenlopende registraties van dat ene object zijn de deelverzamelingen met noemers en waarden inclusief hun specifieke samenhang. Die noemers en waarden in een aparte deelverzameling gaan als het ware aan de vermelding van het ene object zèlf vooraf, te weten vóórdat het object als onderdeel van de onmiddellijke eigenschap van een object met naastlagere orde verschijnt.

Die bepalende samenhang van noemers en waarden definieer ik als de context. Ieder object, behalve de totale verzameling, staat dus in een bepaalde context vermeldt. Dat beschouw ik als de derde objectvorm.

Het aantal contexten van een object kan tot één beperkt zijn. Dan is het aantal registraties eveneens één. Een object heeft netzoveel contexten als vermeldingen in de totale informatieverzameling. Want uitgaande van een specifieke registratie van een object zijn zijn contexten onderling uniek. Twee, of meer, verschillende objecten kunnen eenzelfde context hebben. Dat gebeurt indien zij allemaal als waarden achter dezelfde noemer voorkomen.

 

 

spil tussen context en intext

Een context komt overeen met een situatie. Gelet op het uitgangspunt van pluriformiteit kan een object zich netzo divers gedragen als er contexten voor aangegeven zijn. Dat is de uiterste consequentie van zijn autonomie.

Een simpele uitwerking van deze totale autonomie ofwel individualiteit pèr context betreft de benoeming van verdere eigenschappen. In tegenstelling tot de context, definieer ik de informatie vanaf de eigen orde als intext.

In de intext wordt uiteraard het geijkte patroon van noemers met waarden voortgezet. Een waarde van het naasthogere orde, dat wil zeggen lager in de boom, is op zijn beurt een autonoom object. Dat object heeft dus altijd een context. Daarvan maakt onder meer het eerdere object deel uit. En desgewenst heeft dat extra object op zijn beurt óók weer een intext. Eventueel enzovoort. Elk object, met uitzondering van de totale informatieverzameling, functioneert aldus als spil tussen enerzijds een unieke context, anderzijds een intext die een uitsplitsing in eigenschappen (lees ook: rollen) is. Nota bene, die ene intext hóórt via de waarde die het object vertegenwoordigt bij die ene context.

De progressie kan zich theoretisch eindeloos voortzetten. Ook als een object in een bepaalde context vooralsnog geen intext heeft, kan daar altijd naderhand in worden voorzien. Elk object, waar danook, beschikt over het potentieel van (nog meer) intext.

 

 

recursiviteit en formalisatie

Het voorgestelde patroon, ofwel de vorm van de abstractie, kenmerkt zich door vergaande recursiviteit. Zodra een uitgangspunt eenmaal vaststaat, blijkt het totale patroon uit een herhaling van kleinere patronen.

Dat uitgangspunt betreft, zoals eerder opgemerkt, de keuze van het onderwerp voor de totale informatieverzameling. Die verzameling is geen onderdeel van een eigenschap. Er is in het relevante domein van onderzoek immers niets dat de totale informatieverzameling op zijn beurt omvat. Dus moet voor het totaal bij wijze van uitzondering een voorwaarde, een aanname gestèld zijn. Die luidt dat de totale informatieverzameling niet alleen een object is, maar tevens (haar eigen) noemer. En dat is meteen haar gehele context. Indien de totale verzameling de orde nul toegewezen krijgt, geldt in de vorm van een formule:

als
noemernul  = n0,
waardenul  = w0 en
contextnul = c0,
dan
w0 = n0 = c0.

Alle (overige) contexten kunnen uitgaande van een object als een eigenschapwaarde met orde n als volgt beschreven worden:

cn = (cn-1, wn-1, nn).

Deze vorm geldt, zoals gezegd, uiteraard voor elke n die groter dan nul is.

 

 

vierde objectvorm: contexten-in-object

Hierboven staat de uniekheid van het specifieke object-in-context benoemd. Dat strookt met het uitgangspunt van pluriformiteit van gedrag. Als derde objectvorm geldt dat van elk object in de tweede objectvorm tevens de unieke, relevante context bekend moet zijn.

Via omkering van woordpositie is vervolgens de vierde objectvorm herkenbaar. Allereerst veronderstelt de vierde uiteraard altijd de derde objectvorm. In deze vierde vorm omvat het object voorts al zijn eigen contexten.

In eerste aanleg klinkt de eis van context-in-object wellicht absurd. Hoe kan bijvoorbeeld een persoon zijn omgeving omvatten? Welnu, dat kan inderdaad niet. Maar een context is niet hetzelfde als een situatie. Wat een context bevat, is informatie óver een situatie. En daar gaat het om, om die informatie, netzoals een persoon over informatie óver allerlei situaties kan beschikken. Dat stelt hem immers tot aangepast, uiteenlopend gedrag in staat. Zie hiervoor ook de paragraaf met de inleidende probleemstelling. En ik zei eveneens nadrukkelijk dat objecten hier gelden ìn het vlak van informatie. Context is aldus ook informatie, die past in dezelfde vorm van abstractie.

Van het uitgebreider paradigma waarop ik steeds doel, is pas werkelijk sprake indien een object zich in de vierde objectvorm bevindt. En wanneer de orde van de informatie hoger is dan 1. Met orde 1 komt de context ogenschijnlijk overeen met het klassebegrip van het huidige paradigma voor objectgerichtheid. Het verschil is dat hetzelfde object echter al onder diverse noemers en dus contexten met orde 1 geplaatst kan zijn. Er is dus zelfs met orde 1 reeds de mogelijheid van pluriformiteit. Dat is, zoals gezegd, een fundamenteel verschil met het paradigma zoals dat tot dusver voor objectgerichtheid geldt.

In vierde objectvorm hebben zijn contexten allemaal een plaats binnen dat object. Daarmee bestaat de simpele basis voor activering van pluriform gedrag. Een boodschap die naar een bepaalde situatie verwijst, kan op beschikbare intexten danwel contexten nagegaan worden. Komt in zijn intext een passend object voor, dan kan het object een aangepaste boodschap als het ware dóórsturen. Of indien het object een passende context voorhanden heeft, kan het meteen zèlf de daaraan gerelateerde methode verwerken. Welke methode dat binnen het bereik van die ene context dat is, hangt natuurlijk van eventuele andere factoren af zoals de opgegeven methodenaam en/of de overige argumenten.

Zodra klassen contexten weerspiegelen, behoeft de herkenning van (het relevante gedeeelte van) een boodschap niet aan een expliciete methode van het object in kwestie overgelaten te worden. Daarvoor kan een ànder mechanisme bestaan. Voor de hand ligt het om daarbij het object als spil tussen contexten en (eventueel) bijbehorende intexten te benutten. Daaraan kan een impliciete selectie gekoppeld zijn; nieuwe con- en intexten behoeven dus niet nogeens extra in een methode van het object opgenomen te worden.

 

 

vijfde objectvorm: een nodige en voldoende voorwaarde

Dat een object zijn eigen intexten omvat, neem ik vanzelfsprekend aan. Er zou aan bedoelde inkapseling dus geen geen aparte objectvorm gewijd behoeven te worden. Dat gebeurt hier toch, en wel om de verbijzondering te benadrukken via eigenschappen die opgebouwd zijn uit noemers en waarden. Wat is een nodige en voldoende voorwaarde voor volgehouden inkapseling? Met andere woorden, wat is een garantie dat intexten inderdaad volledig tot een object behoren?

Nodig en voldoende is dat een object onder relevante noemers via overeenkomstige waarden zijn eigenschappen van de eersthogere orde bevat. Dat is nodig omdat anders eigenschappen ontbreken. En dat is voldoende omdat het oorspronkelijke object deel uitmaakt van een context van het object dat in een eigenschap als waarde toegevoegd is. Via die context zijn uitbreidingen van die eigenschap altijd tot het oorspronkelijke object in diens relevante context te herleiden.

Een object in de vierde objectvorm dat tevens voldoet aan genoemde voorwaarde voor volgehouden inkapseling, verkeert in wat ik de vijfde objectvorm noem.

Al met al kan een object drie soorten posities innemen. Het kan allereerst zèlf als spil tussen een context en een intext functioneren. Als een ànder object zo'n spil is, en dat is de tweede soort positie, kan het object in diens context verschijnen. Dat is mogelijk wanneer dat àndere object als zgn spil van de orde 2 of hoger is. De derde soort positie, en die is mogelijk ten opzichte van een spil vanaf orde 1, is in een intext.

Gezien vanuit de eenduidige positie van een spil, liggen de objecten in zijn unieke context — uniek vanwege de eenduidigheid van die positie — als het ware in een rechte lijn naar boven. Als er een intext is, ziet die er qua structuur uit als een boom. De absolute lineairiteit per context en de (potentiële) vertakking van intexten zijn in figuur 14 nogeens geschetst. De waarde x, ofwel het overeenkomstige object, staat blijkbaar driemaal in de informatieverzameling geregistreerd en steeds in/met een bijbehorende, unieke context. Duidelijk is de waarde zèlf, dwz het object op een bepaalde positie, als spil tussen context en intext herkenbaar. In figuur 14 gaat het trouwens om die spilpositie van een bepaald object. Er is geen poging gedaan om dat object in vierde, respectievelijk vijfde objectvorm te schetsen.

figuur 14

In figuur 15 staat de stap van verwijzingen naar het object x naar het object zèlf geïllustreerd. Uit hoofde van overzichtelijkheid staat slechts één context getoond alsmede de ene volledige intext die aanwezig verondersteld is. Die veronderstelling houdt uiteraard in dat aan het object in die specifieke context blijkbaar verdere eigenschappen toegekend zijn. Teneinde de samenhang van deze con- en intext aan te geven, zijn beide voorzien van hetzelfde subscript, te weten i. In figuur 15 heb ik voorts een poging gewaagd om schetsmatig, òngeformaliseerd te vangen dat (een gedeelte van) de context plùs het object-exclusief-intext de bijbehorende intext typeren. Dat is de vertaling naar de klasse die van context plùs object afgeleid is. Zie verderop ook de pragraaf met iets over klassen. Overigens, aangezien figuur 15 de volledige intext i van het object x weergeeft, staat x er niet in de vijfde objectvorm afgebeeld, tenzij de intext in kwestie niet meer dan één orde omhelst. Het aantal als intext getypeerde objecten staat als n aangeduid. De reikwijdte van de klasse hangt immers af wat er zoal (niet) uit de context en het object zèlf telt voor nader gedrag. Hoe minder onderscheidend vermogen, des te ruimer het type en navenant groter het mogelijke aantal objecten.

figuur 15

Figuur 14 laat duidelijk zien dat een context met zijn hiërarchie altijd lineair opgebouwd is. Deze lineaire contexten zijn een aspect van de ontworpen vorm van de abstractie die zich bij uitstek lenen voor beheersbare selectie van informatie. Elk object is immers als onderdeel van een context of op het laagste niveau in de boom als object-in-context te beschouwen en via lineairiteit dus (logisch) simpel bereikbaar. Een verzameling met objecten in vijfde objectvorm schept aldus niet alleen mogelijkheden voor flexibele registratie, maar tevens — en daar gaat het met registratie toch om — voor flexibele selectie en rapportage.

 

 

twee dimensies van volhouden

Hierboven is volgehouden inkapseling van toepassing verklaard op de recursiviteit van het modeleringsprincipe. Een object heeft eigenschappen in de vorm van ... objecten die ieder op hun beurt eigenschappen in de vorm van ... objecten hebben ... enzovoort.

Een andere betekenis van volgehouden inkapseling heeft betrekking op het totale veranderingsproces van ontwerp tot en met operationeel gereedschap voor informatievoorziening. De inkapseling zoals door ontwerp gemodelleerd moet (zover mogelijk) bewaard blijven in de werking van het gereedschap. Zeg maar, dat de infologische tot en met de datalogische structuren zo isomorf mogelijk dienen te zijn. Dat is precies waaraan het schort met veel programmatuur voor beheer van informatieverzamelingen. Er is dus geen isomorfe continuïteit. Het lukt aardig tot de diepgang van enkelvoudige attributen. Maar als het daar ophoudt, wat is dan de winst van zulke zgn object-oriented databases vergeleken met de relationele? Het prototype dat ik in dit artikel beschrijf is een poging van De Jong die het bouwde en mijzelf als ontwerper om inkapseling vanaf ontwerp tot en met gereedschap (langer) vol te houden. Het uitgebreider paradigma voor objectgerichtheid volgde uit de noodzaak voor een elegante voorziening voor uiteenlopend gedrag van één en hetzelfde object met ondeelbaare identiteit.

 

 

iets over klassen

De maat voor gedrag is voor mij als ontwerper uitdrukkelijk het ene, autonome object. De herkenbare verbijzondering van gedrag gebeurt dan op basis van het object-in-context. Uit diverse contexten volgt uiteenlopend gedrag. Maar is hiermee het klassebegrip helemaal overboord gezet? Nee, dat niet. De erkenning van pluriformiteit eist echter dat klasse een afgeleid begrip is. Waarom is er eventueel behoefte aan het klassebegrip?

Vele objecten vertonen overeenkomstig gedrag. Het is dan domweg onpraktisch om vaak dezelfde definities van gedragrepertoire op te geven. Dat is en blijft ineffeciënt, onproduktief. Dankzij de notie van een klasse kunnen de ertoe behorende objecten allemaal de definities delen die voor die klasse enkelvoudig opgegeven zijn.

Ook met het uitgebreidere paradigma blijft behoefte aan zo'n mechanisme voor gemeenschappelijke definities van methoden en variabelen bestaan. Wat is nu echter de klasse onder welke noemer zulke definities zinvol opgegeven kunnen worden? Het antwoord is, na de voorafgaande toelichting, hopelijk meteen duidelijk. Een klasse is bepaald door, al dan niet een gedeelte van, de context inclusief het object zèlf. Indien de volledige context de klasse bepaalt, dan staat het object daarin blijkbaar helemaal alleen met zijn gedrag. En dat moet volgens mijn uitgangspunt van pluriformiteit dus principieel ook kunnen. Dat is het unieke object-in-context. Het is voorts denkbaar dat slechts bepaalde noemers en waarden, in een zekere samenhang, uit een context relevant zijn voor het gedrag in kwestie. Stel dat het object in een bepaalde situatie zèlf niet medebepalend is, dus niet totaal onafhankelijk, dan is er reeds sprake van gedeeld gedrag, te weten van alle objecten die diezelfde context delen. Naarmate minder onderdelen van de context bepalend zijn voor het gedrag, neemt de reikwijdte van de klasse in kwestie toe omdat meer objecten ervoor in aanmerking komen.

Als erkenning van pluriformiteit geef ik de autonomie van het unieke object zelfs a priori, dat wil zeggen ongeacht enige specifieke context, een formele status via de eerste objectvorm. Het object geheel op zichzelf, met andere woorden is of, beter gezegd, definieert ook een klasse en wel een uiterste, één-op-één vorm ervan. Elk object behoort volgens het uitgebreider paradigma daarom tot minstens één klasse (in de zin van typering van objectgedrag). Voorts behoort het object tot zoveel klassen als nodig zijn voor definiëring van uiteenlopend gedrag conform relevante delen van contexten. Een context is primair tov een klasse.

Ik wijs er op deze plek nogeens op dat het uitgebreider paradigma nog geen antwoord geeft op de risico's van overerving. Ik heb er althans nog geen expliciet onderzoek naar gedaan. Daarom blijft voorzichtigheid geboden met definiëring onder de noemer van een generalisatie indien er afhankelijke specialisaties bestaan.

 

 

verwante ontwikkelingen

Inmiddels ook in het informatiekundig vlak heerst tegenwoordig zo'n enorme bedrijvigheid dat ik geen originaliteit voor het gepresenteerde uitgebreider paradigma voor objectgerichtheid opeis. Dat beweer ik a priori niet omdat het door de groeiende massa onderzoek zelfs a posteriori nooit sluitend aan te tonen valt. Dit is overigens een constatering met fundamentele strekking voor vele zgn wetenschappelijke arbeid. Aangezien voor de volledigheid van literatuuronderzoek geen redelijke waarborg (meer?) bestaat, is het simpel genoeg om resultaten op ònvolledigheid aan te vallen. Er valt tegenwoordig altijd wel een niet-geraadpleegde bron aan te wijzen. Welnu, dat zijn praktische maar juist daardoor zo reële obstakels voor presentatie van al dan niet originele ideeën.

Ik heb op mijn beurt toch een poging gedaan om in literatuur enige verwante ontwikkelingen te verkennen en hier te vermelden. Daarmee komt de lezer misschien zelf verder en is hopelijk een genuanceerder oordeel over mijn ideeën tot en met de vijfde normaalvorm mogelijk.

De gewichtigste raad die ik heb, luidt om vooral literatuur over pluriform gedrag te raadplegen. Naast filosofie is dat nog zo'n bron van inspriratie. Vooral onder de noemer van sociale psychologie bestaat allang veel aandacht voor mensen en hoe zij zich in verschillende situaties ook verschillend gedragen. Typerend is de uitspraak van Barker (p 203) dat "the behavior of the inhabitants of any [particular] setting is less varied than their behavior across all the settings they inhabit." "Variation is the normal condition" vatten Fiske en Maddi (p v) treffend samen. Het is mijn overtuiging dat informatiekundigen zich onnodig afsluiten van invloeden uit andere vakgebieden. Ook de citaten van Wittgenstein moeten toch duidelijk maken dat er al zoveel en goed gedacht is. Nogmaals, volledigheid in onderzoek is inmiddels een illusie. Maar juist àndere vakgebieden kunnen iets extra's bieden. De ontwerper moet het accent immers op het wàt van zijn modellen leggen, niet op het hoé ofwel op zijn methode. Als informatiekunde al een wetenschap is, is het tov de ontwerpende activiteit in elk geval bij uitstek een zgn hulpwetenschap.

Informatiekundigen zèlf zijn natuurlijk binnen hun eigen vakgebied heel druk bezig. Durchholz en Richter modelleren data nog zonder dynamiek, dat wil zeggen nog niet inclusief gedrag volgens objectgerichtheid. Hun objecten noemen zij constructies. En een constructie neemt een plek in of, zoals zij in het engels schrijven, een spot. Zij benoemen vervolgens een context vanuit een spot (p 33). Dat lijkt veel op mijn benadering, zij het dat een constructie bij hen gericht is op een eindige ontleding van componenten. Ik stel daarentegen dat de progressie naar informatie met hogere orden in beginsel oneindig kan voortgaan. Dat leidt via de bijpassende vorm van de abstractie tot een wezenlijk ander resultaat.

Verwant zijn mijn ideeën uiteraard met binaire datamodellen. En met wat hypertext heet. Voor vele informatiekundigen zal het verband met de zgn facetanalyse echter onbekend zijn. Dat betreft het werk van S.R. Ranganathan in het vlak van ontsluiting van documentair materiaal. Naar mijn mening hebben informatiekundigen overigens over het algemeen bibliotheekwetenschappen ernstig verwaarloosd. Dat is jammer omdat op dat vakgebied expliciete modellering van informatie uiteraard al heel lang beoefend wordt.

Mijn benadering vertoont voorts veel overeenkomsten met werk in het vlak van semantische netwerken. Zoveel was uiteraard reeds duidelijk door de vrije keuze van noemers voor waarden. Ter Bekke documenteert oa beknopt enige ontwikkelingen op het gebied van modellering van informatie.1 Hij beschrijft zgn object relativity als kenmerkend voor de semantische benadering en verschaft een definitie (p 54). "The object relativity principle says: type, instance, generalization, specialization, aggregation and attribute are just different interprertations of one and the same object." Als dat zo is, omvat mijn uitgebreider paradigma inderdaad tevens die semantische benadering. Ik reik dergelijke betrekkelijkheid van een object aan door het te plaatsen in een structuur volgens noemer, waarde en orde en daarvan afgeleid context en intext.

Ik maak, terzijde, trouwens bezwaar tegen semantische netwerken e.d. Dat geldt echter allerminst die benadering op zichzelf, maar wel de aanduiding. De naam wekt op de lange duur verwarring en ondermijnt daardoor zelfs de benadering. Dat kan niet de bedoeling zijn. Het gebruik van het woord semantiek in dit verband komt uit de tijd dat sommige onderzoekers dachten dat kunstmatige intelligentie met computers de menselijke intelligentie zou evenaren. De weg ernaartoe was langs de weg van begrip van de taal gedacht. Zo verscheen de term semantiek op het toneel van de modellering van informatie. Met beter inzicht in syntax, semantiek enzovoort, alsmede en vooral in hun onloochenbare samenhang, is het nu tijd om die aanduiding te schrappen. Zie voor zulk begrip oa het uitgebalanceerde boek van Ellis. Het zijn allemaal aspecten, semantiek e.d. dus, die in meerdere of mindere mate altijd in communicatie voorkomen. Object relativity is een structurelere, dus betere aanduiding voor de flexibiliteit van wat toch niets meer dan een gereedschap voor informatievoorziening is.

Tot zover een korte weergave van literatuuronderzoek. Het is duidelijk dat er veel interessante ontwikkelingen gaande zijn. Hoewel ik dus geen zekerheid heb nieuw en nuttig terrein te verkennen, geeft werk van andere onderzoekers tenminste een zekere geruststelling omtrent de toepasselijkheid van de ingeslagen koers en bijbehorend werk.

 

 

verdere ontwikkelingen

Het prototype en wat ik mede naar aanleiding ervan als uitgebreider paradigma voor objectgerichtheid presenteer, wijzen mi de weg naar ontwikkelgereedschap voor informatievoorziening met objecten in de zgn vijfde objectvorm. De eraan ten grondslag liggende begrippen zijn vooralsnog echter vooral informeel. De verdere formalisatie vergt ongetwijfeld nog veel inspanningen. Hier staan ideeën vermeld. Zijn er reeds theoretische bezwaren tegenin te brengen? Houden zij tijdens praktische toepassingen stand?

Als eerstvolgende stap naar dynamisch gedrag ligt verrijking van het prototype voor de hand. De eerste versie eist dat telkens opnieuw, voor elk apart object-in-context dus, de noemers en waarden voor eigenschappen expliciet opgegeven moeten worden. Dat is weliswaar trouw aan de extreme vorm van de abstractie, zeg ook object relativity, maar blijft dat handig? In de praktijk bestaan dikwijls overeenkomsten tussen intexten, al waren het maar de noemers van de eigenschappen. Daarom is de toevoeging interessant van een voorziening om het patroon van een intext contextueel te kunnen aanreiken. Daarvoor moet direct inhoud aan het gewijzigd klassebegrip gegeven worden, en wel gewijzigd in de zin van overeenkomstig de gewenste pluriformiteit van gedrag. De objectgerichtheid ipv klassegerichtheid moet echter absoluut vertrekpunt blijven.

Van direct praktische betekenis zijn de verdere ontwikkelingen voor opslag en selectie van allerhande informatie. Voor dergelijke toepassingen 'gedragen' de objecten in het prototype zich dus nog geheel statisch, i.e. bestaan louter uit informatie zònder methoden. zelfs niet om hun eigen intext te formatteren. Maar voor ontwikkeling van selectiegereedschap reikt de formalisatie thans reeds ver genoeg. De onbepaaldheid van intexten kan immers ingewisseld worden voor de lineaire, strikt gedetermineerde samenstelling van contexten. Dat gebeurt door verhoging van de orde waarop de informatie beschouwd wordt. Dat kan, als het moet, voortgezet worden tot en met de zònder verdere eigenschappen geregistreerde objecten. De benadering vanuit een verzameling contexten geeft flexibeler mogelijkheden voor selectie dan zgn object data bases tot dusver bieden. Dat komt omdat, vanuit contexten bezien, er geen meervoudigheid en dus geen moeizame beheersbaarheid van zoekacties optreedt. Daar zorgt de gekozen vorm van de abstractie voor. De vergaande recursiviteit houdt de selectie beheersbaar. Het is heel praktisch natuurlijk wel de vraag of het antwoord op een selectievraag binnen aanvaardbare tijd samengesteld is. Zulke prestaties moeten eveneens belicht zijn.

Voorts kan de praktijk van ontwerpen voor objectgerichte informatievoorziening op basis van mijn uitgebreider paradigma kritisch bekeken worden. Vele ontwerpers maken zich volgens mij schuldig aan te vroege keuzes. Zo transformeren zij wat eigenlijk relaties moeten blijven onnodig tot objecten. Dat is typisch een erfenis van gebruik van entiteitenmodellen en normalisatie voor relationele informatieverzamelingen. Mijn voorstel leidt niet vanzelf tot een zuiverder ontwerpbenadering volgens objectgerichtheid, maar kan bewuste ontwerpers wel helpen consequent te blijven.

En wie weet? Het huidige paradigma, of welk paradigma danook, verdient geen onaantastbare status. Er is veel ruimte voor verbeteringen. Voor verdere ontwikkeling van het paradigma voor objectgerichte informatievoorziening zou iedereen open moeten staan. Ik heb hier slechts tot en met de vijfde objectvorm gereikt.

noot

1. Met dank aan prof. drs B.K. Brussaard die me attendeerde op bedoeld proefschrift en ook een exemplaar ter beschikking stelde.

 

 

literatuur

Ashby, W.R., An Introduction to Cybernetics, Methuen, herdruk, 1979, oorspronkelijke editie 1956.
Barker, R.G., Ecological Psychology: Concepts and Methods for Studying the Environment of Human Behavior, Stanford University Press, 1968.
Bekke, J.H. ter, Semantic Data Modelling in Relational Environments, proefschrift TU Delft, 1991.
Berk, E. en J. Devlin (samenstellers), Hypertext/Hypermedia Handbook, Mcgraw-Hill, 1991.
Bertino, E. en L. Martino, Object-Oriented Database Systems: concepts and architectures, Addison-Wesley, 1993.
Brittan, A., Meanings and Situations, Routledge & Kegan Paul, 1973.
Cattell, R.G.G., Object Data Management: Object-Oriented and Extended Relational Database Systems, Addison-Wesley, 1991.
Coad, P. en E. Yourdon, Object-Oriented Analysis, Yourdon Press, tweede editie, 1991.
Durchholz, R. en G. Richter, Compostional Data Objects, John Wiley and Sons, 1992.
Ellis, J.M., Language, Thought, and Logic, Northwestern University Press, 1993.
Fiske, D.W. en S.R. Maddi (samenstellers), Functions of Varied Experience, The Dorsey Press, derde druk, 1967.
Goldberg, A. en D. Robson, Smalltalk-80: the language, Addison-Wesley, 1989.
Kay, A., Microelectronics and the Personal Computer, in: Scientific American, september 1977.
Kilov, H. en J. Ross, Information modelling: An Object-Oriented Approach, Prentice-Hall, 1994.
Maltby, A., Sayer's Manual of Classification for Librarians, André Deutsch, herdruk van de vijfde editie, 1978.
Martin, J., Principles of Object-Oriented Analysis and Design, Prentice-Hall, 1993.
Taylor, D.A., Object-Oriented Technology: A Manager's Guide, Addison-Wesley, 1990.
————, Object-Oriented Information Systems: Planning and Implementation, John Wiley and Sons, 1992.
Tsichritzis, D.C. en F.H. Lochovsky, Data Models, Prentice-Hall, 1982.
Wiener, N., The Human Use of Human Beings: Cybernetics and Society, Doubleday, herziene editie, 1954, oorspronkelijke editie 1950.
Williamson, R.C., P.G. Swingle en S.S. Sargent, Social Psychology, Peacock, 1982.
Wisse, P.E., Exploitatie van Documentaire Technieken, in: Overheidsdocumentatie, jaargang 42, nr 1, januari 1988.
————, Aspecten en Fasen, Information Dynamics, 1991.
————, Strategieën voor Objectgerichtheid, ongepubliceerd, 1993.
————, De Kwaliteit van Objectgerichtheid is Subjectief, in: OT Magazine, nummer 1, februari 1994.
————, Objecten: Volgehouden Inkapseling, in: Infomeel, nummer 14, januari 1994.
Wittgenstein, L., Philosophical Investigations, The Macmillan Company, derde editie, tweede druk, 1968 (oorspronkelijke editie 1953).

 

 

© 1991-1994, webeditie 2002.
De figuren in deze webeditie zijn ontleend aan de engelse vertaling van dit opstel. Zie 'Multicontextual paradigm for object orientation: a development of information modeling toward fifth behavioral form' (www.informationdynamics.nl, 2001).