illé, 1991b); they
ig (Bouillé, 1992).
ve not exactly the
sometimes replace
3c), they are more
spectively expert
1ated learning.
, a rule possibly
cher for a neuron,
tivating a process
other a.d.t., as
acc re —
DT
an
's and neurons.
red for the present
this requirement is
e would like to
] representation of
, together with a
upon a perfectly
purpose of the
"81, particularly
tography (Bouillé,
been developped;
ical terrain models
7), (Baton-Hubert,
,b), as well as
toponymy on the
S system includes
ist here mention:
file system,
itabase,based upon
91a),
stem managing an
] facts,the database
ledge base,
ine managing an
illimited set of discrete processes, in connection to a
second engine managing continous processes,
-a neural engine managing an illimited set of
object-oriented neurons, possibly fuzzy, ensuring
an automated learning, in cooperation with the
expert system,
-a 3D stereoscopical animated graphical engine, in a
multimedia context,
-a specific layer devoted to the robotics (Bouillé,
1986), in prevision of the large application of
robotics to geography and cartography in the next
decade.
The complete system includes a compiler-compiler,
an ADT'81 compiler, an optimizer, a decompiler and
an executer, and provides a complete class-based
integrated platform for GIS design and development
(Bouillé, 1994b).
3. INTRODUCING CONSTRAINTS
Any type may be associated to a condition, which
looks like a string, which may be updated at run-
time, and which will be executed any time the a.d.t.
is invoked by any process. A typical example
concerns an atribute named temperature; for creating
a class, its attribute and specifying this one, the
following statements have been used (figure 10); the
result graphicaly appears on the figure 11.
CREATE "AREA" ;
Fig. 10 : Basical condition in ADT'81.
COND
+
temp »0
AREA
neu
Fig. 11 : The consequence of the statements.
In this first simple example, an attribute only was
concerned; in a second very simple example, we
consider an area which number of neighbors cannot
be greater than 6, for instance; for expressing that,
43
we have created the link between classes which is
"NEIGHBOR", it is a link on the class "AREA"
itself; for obtaining at run time all the links going
out of an object of the class "AREA", we need to use
a functor entitled : OPSCRC (Object Positive Semi-
Cocircuit restricted to the Relationship and final
Class), and for obtaining the final objects, we need
the functor entitled OFIN (Object FINal); for having
the number of these neighbors, we just need the
functor entitled CARD, which name naturaly does
not require any explanation: the necessary
statements are expressed on the figure 12 below.
CREATE "AREA" "neighbor" "AREA REFLEXIVE :
"AREA" "neighbor" "AREA" ' COND :-
THIS'OPSCRC("neighbor" "AREA") OFIN'CARD»-46 :
Fig. 12 : Basical condition on a link.
The result may be seen as expressed on the figure
13, expressing that the neighbor is carrying a
condition which will be tested any time a new link
between objects will be instanciated, corresponding
to this link on the class "AREA".
COND
this'OPSCRC("neighbor" "area")'ofin'card»-6
+
neighbor
AREA
Fig.13 : The consequence of the statements.
This concept of condition, expressed by COND is
not the only one allowing to perform automaticaly
something in connection to a given a.d.t. ; another
one, more complex is named ACTION.
An ACTION is a set of statements, associated to an
a.d.t., accepting any programming statements, in any
number; at run-time, when the a.d.t. is invoked, the
action is automaticaly executed. This ACTION is a
string which can be assigned, modified or deleted at
run-time; for instance, it can be read from the user
peripheral. Likewise for the condition. An action
may for instance update the condition of any other
a.d.t.. The User may easily remark that an a.d.t.
simultaneously carrying a condition and an action
exactly looks like a rule. In fact, it allows to make an
economy of this one, and is more flexible. A
condition, COND, may contain a more complex
= ee ua a ax CE oe mcs z= =
Ï
|
|
j
|
4
|