Grote besparingen bij het ontwerpen van nieuwe toepassingen zijn te bereiken als de gegevensbank niet telkens opnieuw gebouwd hoeft te worden. Dit is het geval bij een kennisbank, waarbij data, regels en metaregels onlosmakelijk met elkaar zijn verbonden. Taal is het aangewezen voertuig om kennis over te dragen tussen kennisbanken, zo betogen de consultants Harry Fitié en Rob Blaauboer.
De bouw van een informatieverwerkend systeem is een complexe zaak geworden. Om het ontwikkelproces beheersbaar te maken, is de afgelopen jaren een groot aantal methodieken ontwikkeld. Deze betreffen vooral de manier waarop men de analyse moet uitvoeren en het formele ontwerp definieert. SDM (systems development methodology) is zo’n methodiek, maar ook Niam en het ‘generiek modelleren’ van Shell behoren hiertoe. Toepassing van de eerste twee methodieken betekent echter nog steeds, dat men aan het eind van de rit de gegevensbank moet bouwen. In dat opzicht gaat de generieke modelleringsmethode duidelijk verder. Door meerplaatsige relaties te herleiden tot vijftig binaire relaties (de primitieven) is men er, naar het zich laat aanzien, in geslaagd een herbruikbare gegevensbank te definiëren.
Hoe waardevol elk van de hier genoemde methoden ook moge zijn, geen ervan leidt naar een gegevensbank-ontwerp dat het predikaat ‘universele kennisbank’ verdient. Om deze stelling te verduidelijken moeten we eerst nader ingaan op de vraag wat ‘kennis’ eigenlijk is.
Het begrip ‘informatie’ wordt in de encyclopedie omschreven als: het zich verschaffen van kennis of inzicht. Het begrip informatica zou men kunnen definiëren als de leer of wetenschap om kennis te verwerven. De nadruk bij het hedendaagse gebruik van het begrip ‘informatica’ is komen te liggen op het toepassen van computers bij het verwerven van kennis. Daarin onderscheidt het zich bijvoorbeeld van de kennisleer, die een meer filosofische achtergrond heeft. Dit neemt niet weg dat in de informatica de principes van de kennisleer zijn terug te vinden.
De kennisleer houdt zich bezig met de vraag: hoe komt kennen tot stand? Van even groot gewicht is de vraag: onder welke voorwaarden komt kennen tot stand? Op beide vragen gaan we kort in.
Waarnemen en denken
In de kennisleer komt kennen tot stand door de verbinding van waarnemen en denken. Een waarneming op zich is geen kennis. Het wordt pas kennis als ons verstand bepaalde regels toepast (denken) om deze waarneming te interpreteren. Wat betekent bijvoorbeeld de tekenreeks: 1-5-1997? Dit hangt af van welke regels we toepassen. Als we rekenregels toepassen dan is sprake van een expressie met als uitkomst -2001. Passen we Nederlandse datumregels toe, dan representeert deze reeks de eerste dag van de maand mei in het jaar 1997. Passen we echter Amerikaanse datumregels toe, dan ‘weten’ we dat de reeks slaat op 5 januari 1997.
Op eenzelfde manier is binnen de informatica ‘data’, als resultaat van waarneming, niet kennis of informatie te noemen. We hebben regels nodig om de data betekenisvol te laten zijn. De praktijk in de informatica is echter dat de data expliciet worden losgekoppeld van de regels. Alle conventionele databases zijn zo ingericht dat de regels (meestal opgeslagen in de gegevens-dictionaire of verborgen in toepassingsprogramma’s) los staan van de gegevens waaraan ze betekenis moeten geven. Via een min of meer losse verbinding is natuurlijk wel een koppeling tussen beide aangebracht. Het punt is echter dat het geen intrinsieke koppeling betreft. Eén van de duidelijkste voorbeelden van wat de scheiding tussen data en regels teweeg brengt, is het thans actuele ‘jaar 2000’-probleem. Dit illustreert aardig dat de scheiding tussen data en regels niet alleen theoretisch maar ook praktisch een ongewenste situatie is.
Waarnemen en uitdrukken
Als mensen verschillende regels hanteren bij het interpreteren van waarnemingen, is het onmogelijk om kennis over te dragen. Kennisoverdracht impliceert dus niet alleen dat mensen dezelfde regels moeten gebruiken bij de invoer (van waarneming naar kennis) maar ook bij de uitvoer (van kennis naar uitdrukking).
Een goed voorbeeld is de taal. De schrijver moet tenminste dezelfde grammatica (regels) hanteren als de lezer, wil hij kennis kunnen overdragen. Daarbij is de lezer degene die waarneemt en de schrijver degene die uitdrukt. Figuur 1 schetst de verschillende stappen die worden doorlopen in één kenniscyclus bij één persoon.
Wordt de kenniscyclus toegepast op taaluitingen, dan noemen we de stap tussen waarnemen en kennen ontleden (compileren of ‘parsen’). Dit geldt voor zowel formele als natuurlijke talen. De stap tussen kennen en uitdrukken noemen we verwoorden. Bij formele talen wordt dit ook wel reverse compiling genoemd. Het is van belang om te bedenken dat ontleden en verwoorden niet zomaar willekeurige acties zijn. Het zijn essentiële acties in de kenniscyclus. Dit komt bijvoorbeeld tot uitdrukking in het feit dat in het menselijke brein aparte plaatsen zijn gereserveerd waar deze acties worden uitgevoerd: het ‘gebied van Wernicke’ voor het ontleden en het ‘gebied van Broca’ voor het verwoorden.
Wat de ene mens uitdrukt, kan de andere mens waarnemen. Met dezelfde ingrediënten kunnen we de communicatiecyclus beschrijven (zie figuur 2).
Kennissysteem
Bovenstaande principes kunnen we toepassen in een kennissysteem (zie figuur 3). De dialoog leidt drie keer tot een verandering in kennis bij de deelnemers aan de communicatie: twee keer bij Jip en één keer bij Janneke.
We kunnen het proces als volgt beschrijven. Voordat de communicatie begint, behoort ‘oom met baard’ tot de kennis van Janneke. Janneke verwoordt een deel van deze kennis middels de taaluiting: "Ik heb een oom". Deze taaluiting wordt uitgesproken en door Jip ontleed, waarna zijn kennistoestand verandert. Jip heeft nu de kennis dat Janneke een oom heeft. Uit de context van de dialoog kunnen we opmaken dat Jip deze kennis niet eerder bezat.
Volgens eenzelfde communicatieprocedure verandert de kennistoestand van Janneke als Jip haar tracht te overtroeven met vier ooms. Hierna verandert Jips kennistoestand opnieuw als Janneke hem pareert met de mededeling dat haar oom een baard heeft.
Het is niet noodzakelijk dat de deelnemers aan het kennissysteem menselijk zijn. Zolang de deelnemers aan de communicatie (dus naast de mens ook de machine) beschikken over
- een ontleder (om taaluitingen te ontleden tot kennis),
- een verwoorder (om de kennis onder woorden te brengen) en
- een semantisch netwerk (om de kennis op te slaan),
De kennisoverdracht in de dialoog tussen Jip en Janneke is vooral gericht op data (ooms, baarden), ofwel op declaratieve kennis. Zonder probleem zijn echter ook procedurele aspecten te communiceren: dat wil zeggen, kennis over de regels. Als Jips moeder bijvoorbeeld zou zeggen: "Je moet elke ochtend en avond je tanden poetsen", dan behoort na ontleding deze taaluiting ook tot de kennis van Jip, los van de vraag of hij deze regel daadwerkelijk opvolgt. Jips moeder had ook kennis over kennis kunnen communiceren: "Jip, je weet toch dat je tanden moet poetsen."
Het bijzondere van ’talige’ communicatie is blijkens het voorbeeld ondermeer:
– er is geen verschil (als object van kennis) tussen declaratieve (data-achtige) en procedurele kennis(regels);
– er is geen verschil (als object van kennis) tussen kennis en kennis over kennis;
– er is kennelijk een universeel gegevensbankontwerp in het menselijk brein dat ons in staat stelt kennis op te slaan, ongeacht de aard van de kennis.
Jip en Janneke gebruiken voor hun kennisoverdracht natuurlijke taal. Hoe kunnen we nu declaratieve, procedurele en metakennis naar een machine overbrengen? Het ligt het meest voor de hand om dit ook ’talig’ te doen.
Taal
Bij de keuze van de taal zijn twee aspecten van belang: de rijkdom van de taal en de beschikbaarheid van de ontleder. Binnen het kennissysteem begrenst wordt talige kennisoverdracht begrensd door de uitdrukkingskracht van de taal. Of zoals de filosoof Wittgenstein het bondig heeft geformuleerd: Die Grenzen meiner Sprache, bedeuten die Grenzen meiner Welt.
Het praktische punt of er voor een taal een ontleder of een verwoorder beschikbaar is, speelt ook een belangrijke rol.
Natuurlijke taal zou het ideale voertuig zijn voor kennisoverdracht vanwege de rijkdom aan symbolen en grammaticale regels. Er bestaat echter geen praktisch bruikbare ontleder of verwoorder voor natuurlijke taal op een machine. Om deze reden kan ook de deelverzameling Nederlandse zinnen die Niam gebruikt niet dienen als linqua franca tussen mens en machine.
De meeste formele talen, zoals C++, beschikken wel over een ontleder, maar niet over een verwoorder. Datzelfde geldt voor data-modelleringstalen als Express, de taal die gebruikt wordt bij de generieke modelleringsmethode van Shell. Verder zijn formele talen arm aan symbolen en regels, die bovendien niet uitbreidbaar zijn. Daarom beperken ze datgene wat we kunnen overdragen te sterk.
Gezien de huidige stand van zaken lijkt een formeel natuurlijk taal de beste optie voor de communicatie tussen mens en machine. Deze kan enerzijds rijk zijn aan symbolen en grammaticale regels, en anderzijds formeel zijn, zodat er een ontleder of verwoorder voor te bouwen valt.
In het begin van de jaren negentig is gestart met het project Commun Sens (Communicatie tussen Semantische Netwerk Systemen). Het project is uitgevoerd bij AB-Ontwikkeling en werd mede mogelijk gemaakt met een technisch ontwikkelingskrediet van het ministerie van Economische Zaken. Het doel van het project was het ontwikkelen van een computerprogramma op basis van de bovenbeschreven kennistheoretische principes. Nadat het eerste prototype het daglicht zag, is de firma CMG bij het verdere verloop van het project betrokken. Op de gevolgde methode is inmiddels octrooi aangevraagd.
De kern van de werkzaamheden was gericht op het ontwerp van een universele kennisbank (semantisch netwerk) en het ontwerp van een formeel natuurlijke taal (inclusief de ontleder en verwoorder). Tezamen vormen ze de aanzet voor het universele kennismodel. Het tweede en laatste artikel gaat op beide zaken nader in.
Universeel kennismodel
Data, regels en metaregels moeten onlosmakelijk met elkaar verbonden zijn, wil men niet alleen de data maar ook de betekenis ervan kunnen vastleggen. Een onlosmakelijke band is te bereiken door als gegevensbank een semantisch netwerk te ontwerpen met als elementaire bouwstenen drie primitieve relaties. In dit semantische netwerk worden, naast de applicatiegegevens, ook de regels en metaregels in de vorm van data opgeslagen. Het semantische netwerk vormt de basis van een kennissysteem, waarin mensen en machines de communicerende deelnemers zijn.
De kunst is verder om het semantische netwerk zo te definiëren dat het generiek is: de structuur blijft hetzelfde ongeacht de applicatie-inhoud. In dat geval wordt een grote besparing bereikt bij het ontwerpen van nieuwe toepassingen. Men hoeft de gegevensbank immers niet telkens weer opnieuw te bouwen. Een dergelijk gegevensmodel dat op elke applicatie van toepassing is, wordt wel een universeel gegevensmodel genoemd. Een universeel gegevensmodel dat voldoet aan kennistheoretische principes noemen we een universeel kennismodel.
Deze serie van twee artikelen doet verslag van een speurtocht naar het universeel kennismodel in het kader van het project Communsens (Communicatie tussen semantische netwerksystemen). Dit eeste deel geeft ondermeer een inleiding in de kennisleer. Het tweede artikel gaat in op het ontwerp van een universele kennisbank en van een formeel natuurlijke taal. Samen vormen ze de aanzet voor het universele kennismodel.
De artikelen sluiten aan op eerder in Computable verschenen artikelen van A.S.H.P. van Rensen (Generiek modelleren bij Shell, 11 oktober 1996) en F.N.M. Twisk (de Niam-methode, 22 november 1996).