0 Home

1 Communication 2 Elements 3 Engine 4 Small application 5 Heavy application 6 Download 7 Notes

3 The knowledge engine

3.1 Introduction

In the previous section the elements of the architecture of the knowledge engine were briefly addressed. In this section an impression is given of the way the engine has been build. As recapitulated in figure 3.1 the communication cycle between man and machine requires four basic skills:

1 How to parse;
2 How to store/retrieve;
3 How to phrase;
4 How to communicate.

Figure 3.1: Man - machine communication
Elements needed

Fonal: a formal natural language in which men and machine can express them selves

CHI2: a semantic network for storing and retrieving knowledge

Interface: dialogs for entering and showing information.
 

These four basic skills were programmed in C++ which resulted in a small DLL of about 0.5 MB called X. All other kinds of knowledge is considered as data or better as language utterances. Figure 3.2 gives an overview. As can be seen, the language it self is not a part of X.

Figure 3.2 Code and data

3.2 Building the knowledge engine

Building the the knowledge engine very much resembles this drawing of Maurits Escher

3.3: Self definition and grow
Maurits Cornelis Escher, 'Tekenende handen', 1948, lithografie.

Like the hands that have been drawn to draw themselves, CommunSENS has been build to build itself:

  1. The language defines itself and all other parts of the system.
  2. The parser parses itself and all other parts of the system.
  3. The designer designs itself and all other parts of the system.
  4. The help function helps itself and all other parts of the system.
  5. Even the debugger partially debugs itself and, fully, all other parts of the system.

The next two paragraphs will give examples: the designer and the parser which both belong to FBuilder.


3.3 Designer

Figure 3.4 shows the main form  that is used for designing forms. It consists of 2 sub forms: FForm at the left side and FDesign at the right side. If a form is selected in FForm its complete visual, logical and behavioural definition is visualized in FDesign. You can update that definition by adding or deleting components, by changing properties of the components, by changing the behaviour of components (events), etc. If the form in question is on the screen, these changes will be immediately reflected.

If you look closer at figure 3.4, you will see that the selected form in FForm (left side) is FDesign. So the right side (FDesign) shows the complete definition of FDesign. In this way FDesign is contained in itself. This feature makes it possible to use FDesign to further design itself. For example, if you add a component from the toolbar to the tree, FDesign will directly show that component. On the other hand, if you remove the component Tabsheet1 'Visual flow' both tab sheet and tree will vanish from the form. It is clear that downsizing should be done with care.

Note. The system offers protection against such drastic changes.
Figure 3.4: The designer that designs itself.


3.4 Parser

Sentences are used to build an image of the world. Updating the image of the world boils down to: adding, deleting and updating the language utterances that express that world. Figure 3.5 shows the parser, the form that has been designed for this purpose.
 
Figure 3.5: Parser

At the left side there is a project tree that allows navigation through all projects. These projects include a linguistic definition of the language itself, linguistic definitions of the builder forms (including the project and parser forms themselves), linguistic definitions of the user interface, etc. At the right side of the main form there is the parse editor. The editor shows the contents of the file that is selected in the project tree. In this editor you can enter new language utterances that define an extended image. Now, updating the initial image of the world is nothing more than parsing (or deleting) these language utterances. If you parse new utterances you act as moulder who uses modelling clay to build the image. If you delete utterances you act as the sculptor who removes those stone particles that hide the image.  

It should be noted that all changes to the image of the world including those originated from operations as cut, copy, paste, etc. are always expressed as new, updated or deleted language utterances. Therefore, designing a form in FDesign by using the mouse will give the same results as updating the corresponding language utterances in the parser.
 

0 Home

1 Communication 2 Elements 3 Engine 4 Small application 5 Heavy application 6 Download 7 Notes

Copyright © 2005 by AB Ontwikkeling BV
All Rights Reserved. Any reproduction or reuse of these pages or
their contents requires the advance permission of AB Ontwikkeling BV.