I.
2.4. Languages, shells and tools
Although the expert systems are a branch of the AI, there are
languages specialized for expert systems which are completely different from
the common languages of the AI, like LISP and PROLOG. Although, many others
were developed, like IPL-II, SAIL, CONNIVER, KRL and Smalltalk. They are used
amply, except for ends of research.
A language for expert systems is language of a nature higher
than the languages like LISP or C because it makes possible to make certain
things with many facilities, but also it makes it possible to attack a very
small row of problems. This means that the specialized nature of these
languages makes them adaptable to work out expert systems, but not for the
programming in general. In most of case, it is even necessary to leave
temporally the language for expert system and to carry out a function in a
language of conventional treatment.
The principal functional difference between these languages is
the approach of the representation. The procedural languages concentrate to
provide flexible and robust techniques to represent the data. For example, the
structures of data like the matrices, the registers, the chained lists, the
piles, the queues and the trees are created and handled easily. The modern
languages as Modulated-2, Ada, C++, Java, and so on, are conceived to
facilitate the abstraction of the data, by providing
structures for their encapsulation like modules or packages. This provides a
level of abstraction which is then established with methods like operators and
instructions of control to produce a program. Data are closely dependent with
methods which handle them. On the other hand, the languages for expert systems
concentrate to provide robust and flexible forms to represent knowledge; the
paradigm of the expert systems allows two levels of abstraction: abstraction of
the data and abstraction of knowledge. The languages for
expert systems specifically separate the data of the methods to handle them. An
example of this separation is the one of facts (abstraction of the data) and of
the rules (abstraction of knowledge) which employ a language for expert system
based on the rules.
The difference in approach provides also the difference in
methodology of design of the program. Because of the close connection between
the data and knowledge in the directed programs treatment, the programmers must
describe the sequences of execution carefully. However, the explicit separation
of the data and knowledge in the languages for expert systems requires a
control much less rigid of the sequence of execution. In general, we use a part
of code completely separated, the mechanism of inference, to apply knowledge to
the data; this separation between knowledge and data allows a high degree of
parallelism and modularity.
By choosing a language, a fundamental question must be if the
problem requires more knowledge or of intelligence? The expert systems depend
on a great quantity on specialized knowledge or experiment to solve a problem,
while the AI puts the emphasis on a method for the solution of the problem. It
is common that the expert systems depend on the correspondence of the models in
a field of knowledge restricted to guide their execution, while the AI usually
concentrates in the search for paradigms in less restricted fields.
The usual manner to determine whether it required there of an
expert system is to decide if we want to program the experiment of a human
specialist, if this one exists and wants to cooperate. At this point in time a
proposal of the expert system can have success.
The way to choose a language for expert system is full with
confusions. A few years ago, the choice of a language for expert system was
very direct, there was only nearly 6 languages available and was in general
free or cost a nominal price which was paid at the university where they
developed.
However, with the increasing commercial explosion in the field
of the expert systems, since the Seventies, the choice of a language is not
simple any more. Currently, there is dozen languages available, with prices
which arrive up to 75.000 $ US. Although it is still possible to obtain free
some of the old languages like the OPS5.
In addition to the confusion of choice among the languages
available, the terminology used to describe them is confused. Certain salesmen
talk about «tools», while others talk about «shells» and
some others about «integrated environments». To keep clearness, these
terms will be defined as follows:
Language: it is a translator of orders
written with a specific syntax. A language for expert system provides also a
mechanism of inference which carries out the instructions of the language.
According to the way in which it is implemented, the mechanism of inference can
provide the front, back chaining or both at the same time. According to this
definition, LISP is not a language for expert system, but PROLOG, yes. However,
it is possible to write a language of expert system by using LISP and the AI in
PROLOG. We can even write a language for expert systems or the AI out of
assembler. The questions concerning the time of development, suitability, the
conservation, the effectiveness and speed determine in which language must be
written the software.
Tool: is a language additionally associated
to the tools for facilitating the development, the purification and the use of
the application programs. The tools can include the image and text editors, the
purifying ones, the managers of files and even the generators of code. We can
also adapt assemblers of platform crossed to transport the code of development
to a different hardware. For example, an expert system can be developed in VAX
of DEC and then to be assembled to be carried out in Motorola 68000. Certain
tools can even admit the use of different paradigms, like the chaining before
and back in an application.
Shell: tool for special purposes, conceived
for a certain type of applications in which the user must only provide the base
of knowledge. The traditional example is Shell of EMYCIN (MYCIN empties) which
was carried out by eliminating the base from medical knowledge of expert system
MYCIN.
|