0% found this document useful (0 votes)
107 views5 pages

Declarative Knowledge To Use Declarative K - 1988 - Mathematical and Computer Mo

The document discusses a system called MACISTE that aims to use all of its knowledge and metaknowledge in a declarative form without any procedural aspects included by human programmers. It must bootstrap itself by using metaknowledge on itself in order to compile its declarative knowledge and metaknowledge. At the beginning, some procedures are needed to start the process, but they are progressively removed as the metaknowledge generates the necessary procedures to compile itself declaratively. By climbing up meta-levels, the system ensures it can use metaknowledge on metaknowledge, but must devise a way to stop the unlimited ascent at some point once the compilation is complete.

Uploaded by

darshan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
107 views5 pages

Declarative Knowledge To Use Declarative K - 1988 - Mathematical and Computer Mo

The document discusses a system called MACISTE that aims to use all of its knowledge and metaknowledge in a declarative form without any procedural aspects included by human programmers. It must bootstrap itself by using metaknowledge on itself in order to compile its declarative knowledge and metaknowledge. At the beginning, some procedures are needed to start the process, but they are progressively removed as the metaknowledge generates the necessary procedures to compile itself declaratively. By climbing up meta-levels, the system ensures it can use metaknowledge on metaknowledge, but must devise a way to stop the unlimited ascent at some point once the compilation is complete.

Uploaded by

darshan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

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.

You might also like