Een kennisbank onderscheidt zich van een traditionele gegevensbank door het onlosmakelijk verband tussen data, regels en metaregels. Als voertuig voor het overdragen van kennis tussen kennisbanken is de formeel natuurlijke taal Fonal ontwikkeld. Bij de bouw van een applicatie kan men zich vooral op de inhoud van het probleem concentreren, zo betogen consultants Harry Fitié en Rob Blaauboer. Op de techniek hoeft men zich veel minder te richten.
Bij de speurtocht naar de kleinste bouwstenen van de universele kennisbank werd à priori aangenomen dat dit een relatie (of associatie) moest zijn. Een relatie (ook in wiskundige zin) verbindt twee of meer dingen (objecten, symbolen of hoe men het ook wil noemen). Hiermee komt de veronderstelling van de filosoof Kant tot uitdrukking dat het ‘Ding an sich’ niet gekend kan worden.
De volgende vraag is welke relaties men minimaal nodig heeft om op een adequate manier kennis op te slaan. Om de informatie ‘Jan werkt tien uur aan project P1000 in week 14 op locatie Utrecht‘ op te slaan, kan in een conventionele gegevensbank een vijf-plaatsige relatie gebruikt worden. In deze relatie is er een plaatsje voor Jan, voor 10 uur, voor P1000, voor w14 en voor Utrecht.
Een dergelijke meerplaatsige relatie is te beschouwen als een chemisch molecuul. Dat is niet de kleinste eenheid; het is samengesteld uit de atomen van verschillende elementen uit het periodiek systeem. Analoog hieraan kan bovenstaande vijf-plaatsige relatie ontbonden worden in meerdere twee-plaatsige, binaire relaties. Deze binaire relaties zijn te zien als de elementen van de informatica. De vijftig primitieve relaties uit de ‘generieke modelleringsmethode’ zijn vermoedelijk als zodanig te interpreteren. Scheikundige elementen zijn atomen die zelf ook weer uit bouwstenen bestaan: elektronen, protonen en neutronen. De elementaire atomen uit de informatica zijn eveneens te herleiden tot drie nog primitievere relaties: de classificatie-relatie; de heeft-relatie (N:M) en de is-relatie (1:0/1)
De classificatie-relatie beschrijft de relatie tussen één symbool (ding, object) en de klasse waartoe het behoort. Als een fladderend ding hoog door de lucht vliegt, is het hoogstwaarschijnlijk een vogel. De waarnemer legt een relatie tussen het fladderende ding en de klasse der vogels.
De classificatie-relatie is taalkundig te omschrijven door tussen een bepaald ding en een onderwerp (klasse) het werkwoord ‘is’ te plaatsen samen met de geschikte kwantoren:
X is altijd een vogel
De klasse der vogels is zelf ook een ding. Als zodanig wordt het geclassificeerd door de klasse der klassen. Deze laatste (ook een ding) classificeert zichzelf (en alle andere klassen).
Als we nu specificeren dat elk ding geclassificeerd moet zijn door een ander ding, dan is ten eerste bereikt dat in de kennisbank geen ‘Ding an sich’ kan voorkomen. Ten tweede is elk willekeurig symbool altijd in een ‘wandeling’ van maximaal vier stappen te bereiken, ongeacht het vertrekpunt. Figuur 1 laat bijvoorbeeld zien hoe we in vier stappen van het weekblad Computable naar de afhaalchinees Wo Ping kunnen komen.
Met de classificatie-relatie zijn afzonderlijke verzamelingen weer te geven. De volgende twee primitieve relaties beschrijven in feite de mogelijke betrekkingen tussen twee verzamelingen. De heeft-relatie geeft weer dat tussen de elementen van twee verzamelingen in principe een willekeurig aantal verbinden mogelijk is. Een goed voorbeeld is de betrekking tussen de verzameling leraren en de verzameling leerlingen. Een leraar heeft meerdere leerlingen; een leerling heeft meerdere leraren. De heeft-relatie is taalkundig te omschrijven door tussen twee onderwerpen (klassen) het werkwoord ‘heeft’ te plaatsen, samen met de geschikte kwantoren:
Een leraar heeft één of meer leerlingen;
Een leerling heeft één of meer leraren.
De is-relatie geeft weer dat tussen de elementen van twee verzamelingen maximaal één verbinding mogelijk is. De betrekking tussen de verzameling mensen en de verzameling artsen is zodanig dat maximaal één mens geassocieerd kan worden met ten hoogste één arts. Omgekeerd geld dat elke arts altijd geassocieerd wordt met precies één mens:
Een mens is soms een arts (specialisatie);
Een arts is altijd een mens (generalisatie).
De is-relatie kan taalkundig worden weergegeven door tussen de twee onderwerpen (klassen) het werkwoord ‘is’ te plaatsen, samen met de geschikte kwantoren waaruit de 1:0/1 relatie blijkt. Het enige ons bekende voorbeeld waarin een loopje met deze relatiekwantor wordt genomen, is ontleend aan een bloemlezing van nonsenspoëzie:
"Ik wou dat ik twee hondjes was,
dan kon ik samen spelen."
Tussen twee verzamelingen kan tegelijkertijd zowel een heeft-relatie als een is-relatie mogelijk zijn. De volgende uitspraken zijn beide geldig:
Een mens is soms een ouder;
Een mens heeft altijd twee ouders.
Na deze korte en onvolledige introductie van de bouwstenen, staan we stil bij een aantal kenmerken van de kennisbank.
Omdat de bouwstenen binaire relaties zijn, heeft de kennisbank automatisch de hoogste ‘normaal’-vorm.
Verder is op eenvoudige wijze het identiteitsprincipe van Leibnitz toe te passen. De wiskundige Leibnitz hield zich bezig met de vraag wanneer dingen hetzelfde zijn, en wanneer ze van elkaar verschillen. In Communsens zijn symbolen identiek als ze in gelijke betrekking staan tot andere symbolen. Dit levert grote mogelijkheden op voor hergebruik van symbolen (bijvoorbeeld namen).
De kennisbank is te beschouwen als een semantisch netwerk waarin de symbolen de knooppunten vormen die onderling verbonden zijn door de primitieve relaties. Een dergelijk netwerk heet ‘semantisch’, omdat de betekenis der ‘dingen’ uitsluitend wordt ontleend aan de relaties. Daarbij hebben we hierboven al gezien dat elk symbool in het netwerk bereikbaar is in hoogstens vier stappen. Indien we de data en de regels (als data) beide in dit semantisch netwerk opslaan, kunnen we van de data naar de regels ‘wandelen’ en vice versa. Anders gezegd: de onlosmakelijke verbinding tussen data en regels die volgens de kennistheorie nodig is, kan gerealiseerd worden in dit semantisch netwerk.
De taal Fonal
Hoe krijgen we kennis in de kennisbank? Om voldoende uitdrukkingskracht te hebben zou natuurlijke taal bij uitstek geschikt zijn. Om een eenduidige ontleder of verwoorder te kunnen bouwen, is echter een geformaliseerde taal nodig. Het compromis is de taal Fonal geworden.
De drie primitieve relaties dicteren de hoofdvorm van Fonal. Dit resulteert in eenvoudige zinnen, zoals ‘Een patiënt heeft altijd één naam‘. We kunnen dergelijke zinnen opvatten als regels die moeten gelden voor concrete patiënten. Met behulp van deze zinnen wordt de applicatie beschreven. Het bijzondere aan Fonal is dat niet alleen de zinnen tot de taal behoren, maar ook de instanties die met de zinnen worden gedefinieerd. Ook de uiting patiënt ‘Piet’ behoort dus tot de taal Fonal.
In de communicatiecyclus biedt deze eigenschap grote voordelen. Het is nu immers in principe mogelijk eerst de regels over te brengen aan een deelnemer (die nog niet over de juiste regels beschikt) en daarna de instanties die met behulp van deze regels zijn gedefinieerd, zie figuur 2.
Om onbeperkt zowel regels als data te kunnen overbrengen, moet de betreffende taal over de volgende eigenschappen beschikken:
- een variabel uitbreidbaar aantal symbolen;
- een variabel uitbreidbaar aantal herschrijfregels (de zinnen);
- ontleden en verwoorden geschiedt uitsluitend op basis van zinnen en propositielogica, en
- de taal moet zelfbeschrijvend zijn.
Fonal heeft deze eigenschappen. Dit artikel gaat alleen in op de vierde eigenschap, omdat deze helpt een belangrijk, nog openstaand probleem op te lossen.
Zelfbeschrijvende taal
We zijn het eerste deel (zie Computable, 25 april 1997) begonnen met de stelling dat een universele kennisbank zich onderscheidt van een ‘gewone’ gegevensbank door het onlosmakelijk verband tussen gegevens enerzijds en de regels om deze te interpreteren anderzijds. Bij het kennissysteem van Jip en Janneke werd tevens geconstateerd dat ‘regels’ ook kennis zijn, zodat er een verzameling regels moet zijn om de regels zelf te interpreteren: metaregels. Ook deze metaregels zijn op te vatten als kennis, zodat er een verzameling metametaregels moet zijn om …, ad infinitum. Zonder oplossing van dit ‘metaprobleem’ is het onmogelijk om een universeel kennismodel te construeren. Hier schiet de taal ons te hulp. De kern van de zaak is dat de mogelijkheid bestaat om een boek te schrijven in taal X over taal X. Dat is minder moeilijk dan het lijkt. Zonder veel moeite lezen middelbare scholieren immers dikke boeken in het Nederlands over het Nederlands. Verder geldt dat, nadat eenmaal de basisregels van de taal zijn verworven, er een oneindig aantal taaluitingen mee te genereren valt.
Op analoge wijze is Fonal zelfbeschrijvend en ‘oneindig’ gemaakt. Hierbij heeft men sterk geleund op algemeen geldende taalprincipes, zoals ontwikkeld door de taalkundige Chomsky. Met behulp van een kleine tweehonderd zinnen is een grammatica voor zinnen op te stellen, waaraan deze eerste tweehonderd zinnen zelf ook voldoen. Het bovenste deel van figuur 3 toont dit zelfbeschrijvende principe (het metamodel). Wordt de eerste zin bijvoorbeeld toegepast op zichzelf, dan is ‘een zin’ het onderwerpdeel, terwijl ‘heeft altijd één onderwerpdeel’ het werkwoorddeel is.
Diagnosesysteem
Nadat het boek in Fonal over Fonal is ontleed en opgeslagen in de kennisbank, kunnen we een specifieke applicatie toevoegen. In het midden van figuur 3 is ter illustratie een simpel diagnosesysteem gedefinieerd. We beginnen met een opsomming van de relevante onderwerpen. Voor deze applicatie zijn dat: symptomen, ziektes en patiënten. De drie daaropvolgende zinnen beschrijven de betrekkingen tussen deze onderwerpen. Wat de zinnen uitdrukken, zijn nieuwe regels die van toepassing zijn op concrete instanties van symptomen, ziektes en patiënten. Dergelijke instanties worden traditioneel ‘de gegevens’ genoemd.
De relevante gegevens in het diagnosesysteem kunnen of als tekst-string aan de ontleder worden aangeboden (zoals onderaan in figuur 3) of via een automatisch gegenereerde dialoog worden ingevuld.
In figuur 3 worden de taaluitingen voorafgegaan door een zogenaamd ‘start onderwerp’. Dit ‘start onderwerp’ heeft tot doel om de relevante zinnen (de grammatica) op te halen waarin dat onderwerp voorkomt. De taaluiting met als ‘start onderwerp’ patiënt, triggert bijvoorbeeld het ophalen van de zin waarin dit onderwerp handelend voorkomt. De betreffende zin dicteert in dit geval dat een patiënt een naam moet hebben (‘Jan’), tenminste één symptoom (hoesten) en tenminste één ziekte die overeenkomt met de symptomen die de patiënt vertoont (verkoudheid).
Doordat we in de kennisbank werkelijk beschikken over de betekenis van de opgeslagen gegevens, is het mogelijk een aantal standaard afbeeldingen te maken voor de gebruikersinterface, de documentatie en diverse testdoeleinden:
- automatische afbeelding op Windows-dialogen (generatie van dialogen);
- automatische afbeelding op de Windows-helpcompiler (generatie van help-files/Html-files);
- automatische generatie van instanties van in de applicatie gedefinieerde onderwerpen (bijvoorbeeld patiënten en ziektes).
Voordelen
Kennis komt tot stand door de toepassing van regels op gegevens. Op drie aanvullende manieren wordt bereikt dat de gegevens en de regels onlosmakelijk verbonden blijven.
Allereerst door de regels als data op te slaan in de kennisbank, inclusief de zelfbeschrijvende metaregels.
Ten tweede door bij de gegevensopslag uitsluitend gebruik te maken van drie primitieve relaties. Door langs deze relaties te lopen, zijn vanuit elk willekeurig symbool de bijpassende regels op te halen.
Ten derde door bij het verwoorden van kennis het betreffende start-onderwerp in de taaluiting op te nemen. Vanuit dit onderwerp kunnen alle bijpassende zinnen worden opgehaald en toegepast op de rest van de taaluiting. Zo is te bereiken dat een ‘domme’ gegevensbank transformeert naar een kennisbank die intrinsiek beschikt over een zeker begrip van de opgeslagen en gecommuniceerde gegevens.
Met behulp van Communsens is het afgelopen jaar een aantal (pilot-) applicaties gebouwd waaronder: een boekhoudsysteem, een projectadministratiesysteem, een diagnose-expertsysteem, een stamboom, een generiek werkstroombeheersysteem en een röntgeninformatiesysteem.
Voor elk van de applicaties werd de volgende werkwijze gehanteerd:
- analyseer het probleem [mensenwerk];
- verwoord het probleem in taaluitingen (zinnen, procedures etc) [mensenwerk];
- zet de taaluitingen over op een elektronische medium (editor) [mens-machine];
- ontleed de taaluitingen [machinewerk], en
- laat de toepassing draaien [machinewerk].
De in dit artikel geschetste aanpak bleek in de praktijk een aantal grote voordelen op te leveren.
Inhoudelijke voordelen. Doordat domeindeskundigen grote delen van Fonal direct begrijpen kunnen ze zich bij de bouw van een applicatie vooral op de inhoud van het probleem richten en in veel mindere mate op de techniek. Zo is het diagnosesysteem (figuur 3) ook door een leek te begrijpen. De grote symbolenrijkdom van Fonal maakt het mogelijk om het inhoudelijke probleem bijzonder bondig te formuleren.
Ontwerpvoordelen. Van groot belang is de constatering dat, als het probleem eenmaal in Fonal is verwoord, de applicatie – na ontleding – direct ‘draait’. De automatische afbeelding van de regels op dialogen realiseert een gebruiksvriendelijke interface. Door de automatische afbeelding op de help-compiler is de applicatie direct gedocumenteerd. Omdat het mogelijk is de regels te gebruiken om instanties (bijvoorbeeld patiënten) te genereren, kan de kennisbank met random testdata gevuld worden. We hoeven ons verder niet te bekommeren om een aparte gegevensdictionaire, noch om de bouw van de achterliggende kennisbank. Uit dien hoofde blijkt Communsens bijzonder geschikt als instrument voor rapid prototyping. Onderhoudsvoordelen. Voordelen komen ook aan het licht tijdens het herzien van de probleemstelling op een draaiende toepassing. Doordat de regels ook ‘data’ zijn, kunnen deze in principe worden aangepast terwijl het systeem in de lucht is. Verder blijkt het goed mogelijk nieuwe of veranderde definities via talige communicaties naar andere systemen te versturen (zie figuur 2).
Hoe is het hier besproken kennissysteem te positioneren?
Indien het wordt vergeleken met de manier waarop kinderen in hun eerste levensjaren kennis verwerven, past bescheidenheid. Vergelijken we het echter met traditionele gegevensbanken en het ontwerp daarvan, dan is er naar onze mening sprake van een duidelijke meerwaarde, die zich in de praktijk zal bewijzen.
Drs. Harry J. Fitié is directeur van AB-Ontwikkeling te Utrecht.
Rob Blaauboer is werkzaam als consultant bij CMG Finance.
Het eerste artikel over het universeel kennismodel gaf een inleiding in de kennisleer. Dit tweede en laatste deel gaat in op de bouwstenen van de kennisbank en op de formeel natuurlijke taal Fonal, die beide voor het project Communsens zijn ontwikkeld.