Marhl Comput. Modding. Vol. I I, pp. 408 412. 198X 0895.7 177:x8 $3.00 + 0.
00
Printed in Great Britam Pergamon Press plc
KNOWLEDGE BASED GUIDANCE AND CONTROL
DECLARATIVE KNOWLEDGE TO USE DECLARATIVE KNOWLEDGE
Jacques PITRAT
LAFORIA, UA 1095 du CNRS,Universite Paris VI, 4, Place JussW
75252 Paris Cedex 05
Abstract. To efficiently use knowledge, much metaknowledge is
necessary. It is better to give it in a declarative form. The system
MACISTE has to achieve a difficult bootstrap : to use declarative
metaknowledge on itself. At the beginning, there are procedures and
the language in which the knowledge is given has many procedural
characteristics. All the procedural aspects are progressively
removed while the metaknowledge generates the procedures which
are necessary. At the end, all the given knowledge and
metaknowledge will be declarative.
Kevwords. Artificial Intelligence, metaknowledge, declarative
knowledge, bootstrap.
INTRODUCTION Efficiently using declarative knowledge is a
A successful A.I. system must usually have difficult problem and much metaknowledge
a large amount of knowledge available. We (i.e. knowledge to use knowledge), is
can include it in a program. But this necessary to solve it. But if we include this
program will be huge and very difficult to metaknowledge in procedures, we have the
modify. It is better to separate the same difficulties again. One of the most
knowledge from its directions for use, and efficient systems to solve problems stated
to give it in a declarative form. But then we in a declarative form was ALICE (Lauriere,
have to use a large amount of declarative 1978) ; but it was difficult to improve it
knowledge. If we are not careful, we will because it used a lot of procedural
have a combinatorial explosion and the metaknowledge and modifications were
simplest processing using this knowledge difficult. So, the metaknowledge must also
will be prohibitive. be declarative.
408
Proc. 6th Int. Conf. on Mathematicnl Modelling 409
MACISTE is a system which eventually must compile declarative (meta)knowledge. Out
have all its knowledge and metaknowledge of context, it is impossible to compile
given in a declarative form. In its final knowledge, we cannot write a program
stage, it will not include one single without a goal. People have some general
instruction written by a human being. goals, and when we find a new bit of
knowledge, we structure it according to the
THE ASCENT IN THE METALEVELS goals for which we feel that this knowledge
Metaknowledge is a special kind of will be useful. But here, this problem does
knowledge. Knowledge to use knowledge not arise, we have a specific goal : to use
can use any kind of declarative knowledge, (meta)knowledge.
and especially declarative metaknowledge. Expertise to use knowledge will compile
It is not necessary to have a file of itself, since the metaknowledge applies to
metametaknowledge to use metaknowledge itself. But to do so, it must have been
: metaknowledge can be used on itself. structured, for instance translated into a
When the system is running, the procedural language, and it is meta-
metaknowledge is used by metaknowledge. knowledge which has to structure the
But to use this last metaknowledge, we metaknowledge. At the beginning, it is not
still use metaknowledge and we might yet structured, so it cannot do the job. We
have an unlimited hierarchy of metalevels : have to bootstrap, that is to use an object
the system would do nothing, but climb to implement itself. Bootstrapping is a well
this hierarchy. This ascent is always known technique in computer science, and
possible when the system is running, but we most of the compilers are created thanks to
can devise it so that the ascent stops. At it. Initially, we will have to write
that moment, we must use procedures, but procedures which will be used only to start
they are generated by the metaknowledge. I the process. Then they will be removed.
use the word “to compile” to represent this
process. Bootstrapping is interesting because we can
divide the problem into small steps and it is
BOOTSTRAPPING THE SYSTEM easier to solve each of them successively
A part of the metaknowledge must be rather than to solve everything at once. But
compiled to stop the ascent of the it is still more interesting because after a
metalevels. There are two problems : step is completed, we can use its results to
- How to compile (meta)knowledge). solve the following step. The more we
- How to choose between using compiled progress, the easier the progression is
(meta)knowledge or climbing one more since we can use all the results already
metalevels. obtained.
The (meta)knowledge is not translated into
procedures by a human programmer, but by a
part of the metaknowledge, which is able to
410 Proc. 6th Int. Cmf. on Mathemutical Modelling
CHOOSING BETWEEN COMPILATION AND THE MACISTE SYSTEM
INTERPRETATION MACISTE’s goal is to use declarative
Although there is a metaexpertise to metaknowledge to efficiently use decla-
compile, all the (meta)knowledge will not rative (meta)knowledge. The bootstrap is
be systematically translated into proce- now in its third step. Various choices are
dures. In some cases, the best way to solve possible to perform such a bootstrap. For
a problem depends on the data, and it is instance GOSSEYN (Fouet, 1987) which has
dangerous to freeze everything in a similar goal began with a much larger
procedures. For instance, when we have a initial set of procedures. In return, it could
set of contraints, it may be better to begin with knowledge given in a more
perform a very careful analysis of the declarative form. MACISTE had a smallest
situation, to choose the one we will use initial set of procedures, but the initial
first. Lauriere (1979) has shown how the metaknowledge was given in a form very
possibility of dynamically choosing among similar to a programming language. The
the constraints may significantly increase bootstrap simultaneously advances in four
the efficiency of a system. But, even in ways :
these cases, it is necessary to structure the 1 - Deleting the procedures written by a
(meta)knowledge, so that the metaexpertise human being. MACISTE included 5000
to interpret (meta)knowledge can use it FORTRAN statements at its birth. There
more efficiently. Larkin and Simon (1987) were 1000 lines in C at the beginning of the
explain why a diagrammatic representation second step and 250 lines in C at the
is better than a sentential representation. beginning of the third one (but also
A metaexpertise will be needed to choose thousands of lines in C written by the
between compiling (meta)knowledge or only metaexpertise).
structuring it. For instance, if the time we 2 - Improving the declarative aspect of the
could win with best choices is lower than language. MACISTE receives a part of its
the time wasted at an upper metalevel to (meta)knowledge as rules :
set of conditions => set of actions.
find this best choice, it is better to use
The rules contain variables. Everything
compiled (meta)knowledge. This meta-
(rules, (meta)expertises...) is represented in
expertise need not be very accurate, it must
frames. At the start, MACISTE followed the
only avoid blundering. If we spend one
order in which the rules were given and,
second at a metalevel to win 5 second, it
when executing a rule, it considered the
is not disastrous if it does not happen often.
conditions and executed the actions
This metaexpertise has not yet been
following their order in the rule. This
implemented in MACISTE.
implicit procedural aspect was removed
during the first step, and now MACISTE is
never obliged to use the knowledge in an
Proc. 6th Int. Confl on Marhrmarical Modellin~ 411
implicitly described order. - to cleverly interpret (meta)knowledge
But many procedural aspects still remain ; - to choose between interpreting (meta)-
they will disappear in the following steps. knowledge or using it in a compiled form
For instance, at present the (meta)- - to spy the behavior of the system and
knowledge is given split up in rule possibly to put it back on the right track.
expertises. But choosing the goals for which But the current metaexpertises have also to
a bit of knowledge may be useful, adds a be improved and supplemented. For example
procedural touch to this knowledge. In the the metaexpertise to compile does not
final stage, MACISTE will have to find when always generate a very efficient code. It
and how (meta)knowledge will be used. may be easy to define metarules to improve
3 - Increasing the power of the language it, for instance to check that some tests are
used to describe the (meta)knowledge. At redundant. But at present, using (meta)-
the start, a rule could only be a conjunction knowledge is not sufficiently efficient ; if,
of conditions, the attribute of an object in from now, I included there new metarules,
an expression could not be an expression... the compilation would be too slow. Often, I
Progressively, these limitations were do not give some bit of metaknowledge
removed and now we can express more although I know it, because it would
easily the (meta)expertises. Since the excessively slow down the system. We have
beginning, the number of MACISTE’s to wait until more metaknowledge is
metarules is the same, about 600, although available so that (meta)knowledge will be
it has much more metaknowledge. But, more efficiently used. We must be careful
thanks to the improvements of the language, with the order in which we give
the same metaknowledge can be expressed metaknowledge to MACISTE. It is better to
in fewer metarules. For the long term, it give first metaknowledge which signi-
will be necessary to include the possibilitiy ficantly improves the performances of the
to express knowledge in natural language. system while it does not require a lot of
4 - Increasing and improving the meta- time to be used by the metaknowledge
knowledge. New metaexpertises are already given.
constantly added. Some of them replace
procedures. For instance, at the start, there CONCLUSION
were programs to communicate with the
user. Now, the input of (meta)knowledge A closely linked problem is to find new
(including its edition) and the output of (meta)knowledge. As a huge quantity of
results is ruled by metaexpertises. New knowledge to use knowledge is necessary,
metaknowledge is also necessary to the system will have to discover most of
improve MACISTE’s performances. For it. To do that, we need another kind of
instance several metaexpertises are still to metaknowledge : knowledge to find know-
be defined : ledge. But to use it, we must have a
significant set of knowledge to use
412 Proc. 6th Int. Conf. on Mathematical Modelling
knowledge. For that reason, MACISTE Lenat, D. (1983). Theory formation by
started with this kind of metaknowledge. heuristic search, Artificial
waence 21. 31-59.
Knowledge to find knowledge can also be Pitrat, J. (1984). MACISTE, un systeme qui
applied to itself so that it can increase utilise des connaissances pour
itself. Lenat [1983] has shown that this is utiliser des connaissances, Colloque
possible. But, at the start, there must be a Aix-en-Provence, Publications
cooperation between the system and human 1 AFORIA , 249-269.
beings so that a new bootstrap can be
performed. The more the system advances,
the more its contribution will become
essential. Eventually, it will increase itself
without any human help.
This task is obviously very hard and will
last many years. But A.I. is a very difficult
domain and no other solution has been
proposed, but two practically impossible
ones : to program a large amount of
knowledge or to use declarative knowledge
with a limited set of procedural
metaknowledge. If A.I. does not help us, we
never will be able to reach the goal of A.I. :
computers performing better than us in any
domain.
REFERENCES
Fouet,J.M., B.Starynkewitch (1987).
Describing Control.lntern. Report. LMT
Larkin, J., H. Simon (1987). Why a diagram is
(sometimes) worth ten thousand words.
Coanitive Science 11, 65-l 00.
Lauriere, J.L. (1978). A language and a
program for stating and solving
combinatorial problems.
Artificial Intelliaence, 10, 29-127.
Lauriere, J.L. (1979). Towards efficiency
through generality, IJCAI 79, 519-521.