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:
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. |
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.
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.