<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>C. CAUVET</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>C. ROLLAND</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>. J.Y. LINGAT</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Unive~site Pa~is</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Rue de la So~bonne</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>PARIS Cedex</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>FRANCE</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>THOM'</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Vouille</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>PARIS FRANCE</string-name>
        </contrib>
      </contrib-group>
      <abstract>
        <p />
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>The pape~ aims to p~esent a CASE system which is an integ~ated
compute~ aided tool so-called RUBIS, fo~ designing and
p~ototyping Info~mation Systems.</p>
      <p>RUBIS is o~ganized a~ound the R-schema (RUBIS-schema), which
is a decla~ative specification of the Info~mation System (IS)
content, based on a conceptual model which emphasizes equally
the IS st~uctu~e and behaviou~.</p>
      <p>Afte~ a b~ief ove~view of the RUBIS a~chitectu~e, we p~esent
th~ough examples how to const~uct the R-schema using PROQUEL:
the fo~mal specification language of RUBIS. Then, we
concent~ate on two diffe~ent aspects of RUBIS: the expe~t
design tool, which helps the designe~ to p~oduce the R-schema
fo~ a given application domain, and the p~ototyping tool,
which allows the execution of specifications on test case
data.</p>
    </sec>
    <sec id="sec-2">
      <title>1. INTRODUCTION</title>
      <p>
        RUBIS wo~ks on a R-schema (RUBIS-schema) which is a decla~ative
specification of the IS, made using the fo~mal specification language
called PROQUEL (PROg~amming QUE~y Language) [
        <xref ref-type="bibr" rid="ref14">34</xref>
        ]. The R-schema
p~ovides a conceptual desc~iption of both the static and dynamic
aspects of the IS to be built. It is based on the REMORA model [1].
The static IS aspects a~e modelled by ~elations while ope~ations
(elementa~y actions on an object) and events (elementa~y state
changes t~igge~ing one o~ seve~al ope~ations) allow the modelling of
the dynamic aspects of objects. Thus, the R-schema is a collection of
~elations, ope~ations and events specifications. In this schema the
tempo~al aspects of the application a~e also taken into account; they
a~e modelled by using the time types and functions p~ovided by the
RUBIS Time Model.
      </p>
      <p>RUBIS includes th~ee diffe~ent inte~faces as compute~ aided design
tools:</p>
      <p>a G~aphic Inte~face using an icon-based ~ep~esentation of the
R-schema concepts.
- an Expe~t
helping the
conceptual schema.</p>
      <p>Design Tool wo~king on a semantic network, and
designe~ to cr-eate, validate and imp~ove the
- a Menu Inte~face based on the PROQUEL language.</p>
      <p>The G~aphic and Menu based inte~faces a~e both devoted to
expe~ienced designe~s while the Expe~t Design Inte~face can be
used by ~elatively unexpe~ienced analysts o~ designe~s.</p>
      <p>P~ototyping in RUBIS is achieved by the Tempo~al P~ocesso~ which
manages tempo~al aspects of the specification and by the Event
Processor which manages event recognition and synchronization. 80th
P~ocesso~s use the PROQUEL inte~p~eter.</p>
      <p>Thus the PROQUEL Inte~preter, the Event P~ocessor and the Tempo~al
Processo~ are the key tools for prototyping information systems with
RUBIS. They have been implemented as extensions of a Relational DBMS
[2] •</p>
    </sec>
    <sec id="sec-3">
      <title>The paper is organized as follows:</title>
      <p>The global architecture of RUBIS is given in section 2 with a brief
desc~iption of the diffe~ent RUBIS system modules.</p>
      <p>Section 3 p~esents how to specify the R-schema using the PROQUEL
language. Then, the pape~ focusses in section 4 on one of the th~ee
inte~faces, namely the Expe~t Design Inte~face. The Event P~ocessor
is detailed in section 5.
(
{
2. RUBIS ·ARCHITECTURE
The architecture of the RUBIS system is presented in figure 2.1.
This displays the three major aspects of the system, which arel
1. The (meta) data mananagement tools which handle the prototype
database and the specification database (containing the R
schema) .
2. The R-Schema design interfaces and the Validation Module.
3. The proto typing tools - the Application Monitor, the Event
Processor and the Temporal Pr-ocessor-.</p>
      <p>Each of these three aspects is introduced in turn.
(
specification
,,,
o
.</p>
      <p>: .
. ....EVENT .......</p>
      <p>PRotEssqR
·..T.EM.PORAL.;:
&lt;PRbc~S:SOR
........ .. -:--:.
&lt;..:. .. .:: .:: .. : ..... :.:-'</p>
      <sec id="sec-3-1">
        <title>PROTOTYPE</title>
      </sec>
      <sec id="sec-3-2">
        <title>DATABASE</title>
        <p>----~P_R_O_Q_U_E_L_I_N_TE_R_P_R_E_TE_R</p>
      </sec>
      <sec id="sec-3-3">
        <title>RELATIONAL D.B.M.S.</title>
        <p>I
I
IeI
"'"':::::::ir:t:i7'</p>
      </sec>
      <sec id="sec-3-4">
        <title>SPECIFICATION</title>
      </sec>
      <sec id="sec-3-5">
        <title>DATABASE</title>
        <p>2.1 The R-schema and the specification database
The R-schema is a modular description of the conceptual schema for
the Information System being developed. This schema is based on the
model of the REMORA methodology [1] [3], and describes both static
aspects (structure) and dynamic aspects (behaviour) of the IS.
The static aspects are modeled using relations representing entities
or entity associations in the real world (e.g. client, invoice, loan,
etc. ) .</p>
        <p>The dynamic aspects are modeled using:
* Operations which represent elementary actions on an application
object (e.g. add a new client, modify an order, etc.).
* Events which represent elementary state changes in the system at
which time certain operations must be triggered (e.g. when an order
arrives, insert the order into the database, reserve the requested
goods, and prepare for delivery). The description of the conditions
for the state change is defined in the event predicate. A
distinction is made between external events (which represent
messages received from the real world), internal events (which
represent elementary state changes of a relation within the
database), and temporal events (which represent temporal conditions
under which certain processing is triggered).</p>
        <p>
          The temporal aspects of the application are likewise modeled, using
the functions and temporal types of the RUBIS Temporal Model. Due to
space limitations, the temporal aspects of RUBIs are not presented in
this paper and the reader is invited to refer to [
          <xref ref-type="bibr" rid="ref12">32</xref>
          ].
        </p>
        <p>The R-schema is therefore a collec tion of relations, events and
operations. The content of the R-schema can be illustrated using a
graph (fig. 2.2)
(
EV1
c5
c2
·---------M
c4·····································~ triggering condition
op13 for operation op f:1
.......................~ relation 'modified by</p>
        <p>operation op f 3
op9
........................• internal event indicati.ng
a state-change for R2
externaL 7Tlessage
external event
indicating the arrival
of a 'meBsage
exemple of
dyna:mic transition</p>
        <p>Such a ~ep~e$entation int~oduces the dynamic t~ansitions of the IS,
showing thei~ sequence and p~ecedence. A dynamic t~ansition is
composed of (1) an event (2) all the ope~ations t~igge~ed by the
event (3) all the ~elations modified by these operations. This
corresponds to an elementary database transaction, since by
definition a RUBIS transition is atomic, and must pass the database
f~om one cohe~ent state to another. Notice that th~ triggering of an
ope~ation by an event can be conditionnal (using a t~igge~ing
condition) and ite~ative (using a t~iggering factor)
THE META-BASE
The R-schema is stored into the specification database, also called
meta-base. The IS specifications a~e called metadata to distinguish
the context of the meta-base in a relational form defined by a
metaschema.</p>
        <p>It is ext~emely impo~tant, during conceptual design, fo~ the designer
to get support f~om the RUBIS system to access to the meta-base. This
support is provided both by the th~ee compute~ based interfaces which
allow the designe~ to insert, modify and delete meta-data. The
PROQUEL language allows to di~ectly interact with the tuples of the
meta-base and is used by the th~ee design inte~faces. Fo~ example,
the designe~ can modify the specification text of an event predicate
o~ an ope~ation. Notice that such modification doesn't imply
recompiling the application; it does not even imply stopping the
use~'s activities if the text is not used at the moment.</p>
        <p>In addition, the meta-base
info~mations (e.g histo~y
designe~s ~eferences ... ).</p>
        <p>of
contains major</p>
        <p>R-schema elements,
p~oject management
sessions and
Finally the meta-base is used to sto~e info~mations used by the
system itself during the p~ototyping phase.</p>
        <p>All the meta-data a~e sto~ed in a ~elational fo~m and a~e accessible
through the PROQUEL que~y language.
2.2 The Aided Design Tools</p>
        <p>* The Graphic Interface generates the R-schema f~om a g~aphic
exp~ession of both the static relations schemes and the dynamic
t~ansition graphs.</p>
        <p>The tool is a use~-f~iendly inte~face based on windows and icons for
displaying info~mation and on pop-up menus, keyboa~d and mouse fo~
ente~ing data. It p~ovides graphical facilities fo~ changing the
drawings of g~aphical ~ep~esentations. In addition it allows the
designe~ to simultaneously see on the screen several graphical
descriptions of the R-schema.</p>
        <p>* The scope of the Expert Design Tool (EDT) is to p~ovide the
designe~ with an active and intelligent suppo~t du~ing the IS design
p~ocess, leading to the R-schema.</p>
        <p>The EDT is intended to behave like an expert designer using its own
knowledge base, which is pa~tly fo~mal and pa~tly composed of
expe~imental design ~ules.
The EDT starts with an Object Oriented description of the application
domain and progressively helps the designer to correct, complete and
make this description coherent before generating automatically the R­
schema.</p>
        <p>* The Menu Based Interface provides the designer with a guided
interaction to enter the R-specifications into the meta-base.
Insertion, modification, deletion of metadata are driven by s8quences
of menus, thus decreasing the designer effort in specifying the meta­
data to be inserted, modified or deleted from the meta-base.</p>
        <p>* The Consistency checking module aims at analysing the meta-base
and detecting the presence of undesirable features i.e specifications
not satisfying general design criteria. Checks are of three types:
- correctness checks verify that all R-schema elements are
correct with respect to the RUBIS modeling concepts and with the
PROQUEL syntax.</p>
        <p>completeness checks detect missing elements in the R-schema.
- accuracy checks are the most sophisticated checks. They detect
possibly inconsistencies in the R-schema and interact with the
designer in order to decide if corrections are needed or not.
Consistency checks are performed on the specifications at various
moments of the conceptual design process. Part of the checks are
included in the designer interfaces. Global consistency checks are
automatically performed upon completion of one conceptual design
session. They can be initiated by the designer at any moment either
on the global content of the meta-base or on a subset.
2.3. The prototyping tools</p>
        <p>* The application monitor is the end-user interface. For each
external event specification, a corresponding Application Program
(AP) is generated. The AP construction is based upon the event
structure. The application monitor executes Application Programs
according to end-user requests. In fact, executing an AP corresponds
to a message acquisition and validation. When the AP is correctly
finished, the application monitor sends the valid message into the
message queue of the Event Processor.</p>
        <p>Since the external event predicate is verified by the corresponding
AP, one may consider the reception of a valid message in the Message
Uueue as an external event occurrence. Each time a user is connected
to RUBIS, a process containing an application monitor is created.</p>
        <p>
          * The Temporal processor works independently. It sends a message
into the Message Queue each time it recognizes a temporal event.
The Temporal Processor is fully described in [
          <xref ref-type="bibr" rid="ref12">32</xref>
          ].
        </p>
        <p>* The Event processor recognizes internal events, takes into
account external and temporal events, processes and synchronizes all
events. The event Processor is detailed in section 5.</p>
        <p>* The PROQUEL interpreter executes all texts written in PROQUEL,
by sending queries to the DBMS and managing local variables, control
structures and parameter passing. It has been developed using LEX and
YACC tools of the UNIX system. Queries (expressed in relationnal
algebra) are send to a small Relationnal DBMS called PEPIN [2).</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>3. SPECIFYING THE R-SCHEMA</title>
      <p>In this section, we detail the R-schema specification using the
PROQUEL language. First, we can remark that the description of the R­
schema can be made incrementally:
- first, the static sub-schema can be described with relation
specifications (introduced by DEFINE RELATION),
- second, a first version of the dynamic sub-schema can be
obtained by specifying dynamic transitions (these specifications
are introduced by DEFINE EVENT),
- third, the dynamic sub-schema can be completed by operation,
condition and factor specifications (respectively introduced by
DEFINE OPERATION, DEFINE CONDITION and DEFINE FACTOR).</p>
      <p>We illustrate this process by considering the framework
automated subscription-library management system. The
introduced center around the following relational schema:
for an
examples</p>
    </sec>
    <sec id="sec-5">
      <title>BOOK (BOOK», PUBLISHER, TITLE)</title>
      <p>copy (BOOK», COPY», ACQDATE, PRICE, CP STATUS)
SUBSCRIBER (SUBSC»,NAME,ADDRESS,SUBDATE,SUBSC_STATUS,NUMCOPIES)
REQUEST (REQ#, SUBSC», REQDATE, REQTYPE, BOOK», REQ_STATUS)
LOAN (LOAN», LOANDATE, BOOK», COPY#, REQ»)</p>
      <p>NOTICE (NTC#, NTC_DATE, LOAN», SUBSC»)
The meaning of the attributes (when not obvious) will be given in the
examples.
* The message "LOAN REQUEST" is described in PROP. It consists of a
request number, a book number, the subscriber number, and the
request type (immediate, or hold).
* The event predicate is specified in PRED. In the example, the
"LOAN REQUEST" message is acceptable only if both the requested book
and the subscriber are present in the database.
* The TRIGGER specifies the result of the arrival of the loan
request. Three cases are possible:</p>
      <p>I
1) The request can be satisfied (c3 : a copy of the book is
available), and the subscriber is in good standing (c1 his
subscription is up to date, he has no outstanding late notice, and he
has less than three books currently on loan). In this case, a loan is
created (op1), the request is accepted (op2), the status for the book
is set to "ON LOAN" (op3), and the number of copies on loan for this
subscriber is incremented (op4).</p>
    </sec>
    <sec id="sec-6">
      <title>TEXT SPECIFICATION</title>
      <p>* a subscriber may not borrow more than three books simultaneously;
* a loan request is receivable if the subscriber is valid (his
subscription is up to date and he has no overdue books);
* if a request is type "hold", the unavailability of the requested
book causes the request to be put on hold.</p>
    </sec>
    <sec id="sec-7">
      <title>GRAPHIC SPECIFICATION</title>
      <p>(</p>
      <p>Nor 0' on
(of AND N()']' 03 AND
op6
opS</p>
    </sec>
    <sec id="sec-8">
      <title>PROQUEL SPECIFICATION</title>
    </sec>
    <sec id="sec-9">
      <title>DEFINE EVENT ev1 IS request_arrival</title>
      <p>ON MESSAGE
COMMENT "Arrival of a loan request"
PROP ( num_req : INTEGER;
num_book : INTEGER;
num_subsc : INTEGER;
type: (IMMEDIATE, HOLD); }
PRED ( (EXISTS book WHERE book# = CONTEXT.num_book)</p>
      <p>AND (EXISTS subscriber WHERE subsc# = CONTEXT.num_subsc)}
TRIGGER ( IF c1 AND c3 THEN ( op1 ON loan;
op2 ON request;
op3 ON copy;
op4 ON subscriber; };
IF c1 AND NOT c3 AND c4 THEN op5 ON request;
IF NOT c1 OR (c1 AND NOT c3 AND NOT c4)</p>
      <p>THEN op6 ON request; };</p>
      <p>2) The request cannot be satisfied (there is no available copy),
but the subscriber is in good standing and wishes to leave his request
on hold. The demand is put on hold (op5).</p>
      <p>3) The subscriber is not in good standing, or the request cannot
be satisfied for an immediate request. In this case, the request is
refused, but is still added to the database for statistical purposes
(op6) .</p>
      <p>The specification of an event in PROQUEl defines the structure of the
associated dynamic transition. The elements defined in the TRIGGER
(conditions and operations) are defined separately. This allows a
progressive and modular description of the application. In addition,
the same condition or operation may be shared by several dynamic
transitions.</p>
      <p>For example, figures 3.2 and 3.3 show the specification of condition
cl and of operation opl.</p>
    </sec>
    <sec id="sec-10">
      <title>DEFINE CONDITION cl IS good_standing</title>
      <p>COMMENT "The subscription is up to date, no pending late notices,
and less than three books on loan"
TEXT ( VAR $status : STRING;</p>
      <p>VAR $ncopy : INTEGER;
VAR $nolate : BOOLEAN;
SELECT UNIQUE subsc_status, numcopies INTO $status, $ncopy</p>
      <p>FROM subscriber WHERE subsc# = CONTEXT.num_subsc;
$nolate := NOT EXISTS notice</p>
      <p>WHERE subsc# = CONTEXT.num_subsc;
RETURN ( $status="VAlIDE" AND $ncopy&lt;3 AND $nolate );
Each specification is a module independent of the others. The
variables declared in a module have scope within that module. All
modules receive an implicit call parameter referenced by the keyword
CONTEXT. This parameter designates the message/tuple for which the
arrival/state-change generated the event. In the specifications of
evl, opl and cl, CONTEXT represents the loan request message.
When a distinction is necessa~y between the old and new value of the
contex t (in the case of an in te~na1 even t, fo~ instance), the
p~efixes OLD and NEW a~e used.</p>
      <p>The II cantex til of a dynamic tr-ansi tion is in fact an implicit
pa~amete~ passed to all PROQUEL texts which it contains. Not having
to decla~e each passage of the context by pa~amete~ clea~ly
simplifies the develope~'s specifications.</p>
      <p>A condition co~~esponds to a boolean function. Its text is
te~minated by the RETURN statement, which dete~mines the ~etu~n value
of the condition.</p>
      <p>Each ope~ation possesses an implicit exit pa~amete~ the two
successive values of the tuple it modifies. If the state change
gene~ated by the execution of the ope~ation gene~ates an inte~nal
even t, this parameter serves as the "con tex t" for the dynamic
t~ansition of the gene~ated event.</p>
      <p>Figu~e 3.3 illust~ates the cont~ibution of the combined usage of
va~iables and SQL que~ies. In the usual application development
envi~onment, the develope~ must ~eso~t to a language using "embedded
SQL" , with all the awkwa~dness this implies.</p>
      <p>The meta-base is inc~emented p~og~essively with the a~~ival of new
specifications. The ~elational mapping of the R-schema is thus
automatic, and the meta-base can be manipulated using the PROQUEL
que~y language. The designe~ can also use the p~og~amming aspects of
PROQUEL to const~uct his own p~ocedu~es and tools fo~ often used
que~ie5, validation checks on the meta-base, and 50 on. In RUBIS,
PROQUEL constitutes one of the main facto~s of integ~ation.</p>
    </sec>
    <sec id="sec-11">
      <title>4. THE EXPERT DESIGN TOOL</title>
    </sec>
    <sec id="sec-12">
      <title>4.1. Why an Expe~t Design Tool?</title>
      <p>
        The design of la~ge IS is a complex, ite~ative, long and tedious task
that must be suppo~ted by tools. The idea of compute~ aided design
tools is not new [22], [23], [
        <xref ref-type="bibr" rid="ref3">24</xref>
        ].
      </p>
      <p>Such tools p~ovide help to memo~ize the ~esults of the modelling
activities, to check consistency and completness, to p~oduce
documentation and info~m the design team on the status of design.
They help in the management of schemas, but little in thei~
p~oduction. Recent ~esea~ches have st~essed the models used fo~
building schemas and the languages used to specifying them. But none
p~og~ess has been made on the p~ocess of p~oducing these schemas.
We believe that a step fo~wa~d in the design of IS ~equi~es an effo~t
of fo~malization of the intellectual p~ocess of const~uction of
schemas in o~de~ to build softwa~e tool which b~ings a mo~e effective
help in design.</p>
      <p>We are conscious of the fact that design is a non algo~ithmic
activity. It is a complex task which is not ve~y fo~mal and is full
of ince~tainity. The expe~ienced designe~ maste~s the task of design
because he uses, on the one hand, his fo~mal knowledge of the models,
(
(
(
and on the other hand, his experience which enables him to recognize
typical cases and to treat them by analogy, to be attentive to
certain delicate aspects ...</p>
      <p>The nature of the task of design, therefore requires an effort of
formalization of, on the one hand the algorithmic part of the design
(for example algorithm of normalization) and on the other, the
heuristic part (experimental rules of designers).</p>
      <p>In addition, if we wish to support the design process by a tool, it
must be able to include both formal knowledge and experimental
knowledge.</p>
      <p>For all these reasons an expert system approach seems appropriate.
This approach will allow us to reproduce the expert's attitude, to
exploit experimental knowledge necessary to the mastering of design
by combining it with more formal knowledge.</p>
      <p>Our hypothesis was to define an expert system for aid to the design
process. The help supplied by the tool relies on a knowledge base
where the concepts and the formal rules governing their use are
grouped together with the rules of experimental know-how of design
experts. The quality of the expert system depends on the richness of
its knowledge base.</p>
      <p>To define this knowledge base we have sought to analyse the reasoning
processes carried out by the designer during the design process in
order to reproduce them in the expert system.
4.2 Expert design tool architecture and functions
In order to help designers in the R-schema production, we have chosen
to develop a tool which allows them to start with a semantic view of
the application domain, which provides guidance and tutoring to
improve and detail it and finally maps it onto elements of the R­
schema.</p>
      <p>The overall architecture
illustrated on figure 4.1.</p>
      <p>of the expert design tool (EDT) is
It shows that the EDT is organized around a semantic network which
represents the conceptual schema content at the different steps of It
shows that the EDT is organized around a semantic network which
represents the conceptual schema content at the different steps of
its design. It initially corresponds to a rough semantic view of the
application domain, progressively corrected, completed and detailed
before it can be mapped onto relations, events and operations of the
R-schema.</p>
      <p>The manipulation module allows the designer to create, modify or
delete elements of the semantic network.</p>
      <p>Using the query module, the designer can be inform on the current
version of the conceptual schema.
MANIPULATION</p>
      <p>MODULE</p>
    </sec>
    <sec id="sec-13">
      <title>QUERY</title>
      <p>MODULE</p>
    </sec>
    <sec id="sec-14">
      <title>TRANFORMER</title>
    </sec>
    <sec id="sec-15">
      <title>DIALOGUE MODULE</title>
    </sec>
    <sec id="sec-16">
      <title>SEMANTIC</title>
      <p>NETWORK</p>
    </sec>
    <sec id="sec-17">
      <title>Expert design tool architecture</title>
      <p>The Semantic Network Transformer (SNT) is the most intelligent part
of the interface. The SNT is intended to behave like an expert
designer. Using its own design knowledge, it detects inconsistencies,
incorrectness and incompletnesses, infers decisions and provides the
designer with alternative solutions for improving the current version
of the conceptual schema.</p>
      <p>The SNT is organized as an expert system with a knowledge base and an
inference engine. The knowledge base transformer includes a fact base
(which is the semantic network) and a rule base including diagnosis
rules, mapping rules and improvement rules. As the interface is
implemented with PROLOG, the inference engine is the prolog
interpreter.</p>
      <p>We focus in the following on the SNT. We introduce in turn the
semantic network and the transformer knowledge base.</p>
    </sec>
    <sec id="sec-18">
      <title>4.3 The semantic network</title>
      <p>The semantic network ~s an oriented and labelled graph. It comprises
5 types of node and 3 types of edge. Nodes and edges can be labelled.
The 5 types of node correspond to the 5 predefined objects on which
we suggest designers to concentrate on.</p>
      <p>The 3 types of edge represent the 3 predefined associations among
objects we propose to investigate during the design process.
The two main design principles underlying the semantic network
architecture are the following:
a) reality can be easily
illustrated on figure 4.2.</p>
      <p>percieved in a causal way as
have
par-ticularstate changes
r-egar-ded as</p>
    </sec>
    <sec id="sec-19">
      <title>ENTITIES</title>
    </sec>
    <sec id="sec-20">
      <title>Figur-e 4.2</title>
      <p>tr-~
mOd;/</p>
    </sec>
    <sec id="sec-21">
      <title>OPERATIONS</title>
      <p>(
(</p>
      <p>Event, Oper-ation and Enti ty ar-e 3 pr-edefined types of node of the
semantic network. We added domain and text types node in or-der- to
deal with pr-oper-ties of event, oper-ation and entity.</p>
      <p>b) r-eality is composed of complex objects. A way to deal with
the complexity of complex objects is to use aggr-egation,
generalization and gr-ouping abstr-action for-ms. They cor-r-espond
to the 3 types of edge of the semantic networ-k.</p>
      <p>Aggr-egation, gener-alization and gr-ouping apply on event, oper-ation,
domain and entity nodes. This means that the semantic view of an
application domain we pr-opose to descr-ibe thr-ough the semantic
network is a hierarchy of complex events, operations, domains and
entities.</p>
      <p>Let us detail and examplify the semantic networ-k types of node and
types of edge using the following gr-aphical notation.</p>
      <p>THE NODES
4.3.1 Semantic meaning of nodes
- A domain node r-epr-esents a data type. It is used for- the
r-epr-esentation of entity pr-oper-ties, oper-ation par-ameter-s and event
contexts. A book number, a subscriber name are examples of domains.
- An entity node modelizes an entity type of the application domain,
such as a book, a request, a subscriber ...
- An operation node represents an action type. The action of a given
type modify entities belonging to the same type. For- example a
request analysis, a new book insertion are described in the semantic
networ-k with oper-ation nodes.
- An event node descr-ibes state changes of the r-eal wor-Id that
tr-igger- executions of similar- oper-ations. A book is just ar-r-ived,
instance of book becomes available, ar-e examples of event types.</p>
      <p>THE EDGES
aggr-egation edge
gr-ouping edge
gener-alization
) edge
- A text node is a predicate declaration that completes the
description either of an operation (triggering condition of an
operation for instance) or of an event (event predicate) or of an
entity (entity constraint). If the real situation is that a copy can
be loaned only if (a) "the copy is available and the subscriber is in
good standing", the condition (a) should be described in the semantic
network using a text type node.</p>
    </sec>
    <sec id="sec-22">
      <title>4.3.2 Semantic meaning of edges</title>
      <p>The aggregation, grouping and generalization abstraction forms are
respectively represented by the "a", "r" and Il g " edges. "a", "r" and
"g" edges apply to domain, entity, operation and event nodes.
- An aggregation edge (edge a) may be defined either between two
nodes of the same type or between two nodes of distinct types.
On example 1, subscribers are described as aggregate objects with 3
components: SUBSC#, NAME and ADDRESS.
(</p>
      <p>I I</p>
      <p>SUBSCRIBER
~(a,id)</p>
      <p>a
~</p>
      <p>NAM
Aggregate components can be domain nodes or entity nodes. The "id"
label precises the aggregate identifier (SUBSC# in the example).
- A grouping edge (edge r) is defined between two nodes of the same
type. In the example below, a book is defined as a complex object;
one of its components (STOCK) is a collection object. Every member of
the collection is a copy. This means that a book in a library has
usually several copies.
I BO~K# I
a
- A generalization edge (edge g) is used for the representation of a
"i s-a" re I a tionshi p. An edge of type g is def ined between two nodes
of the same type. For example a copy can have three possible states;
used, available and reserved described as 3 object nodes related to
the copy node by three "g" edges.</p>
    </sec>
    <sec id="sec-23">
      <title>COpy USED g</title>
    </sec>
    <sec id="sec-24">
      <title>COpy gt</title>
      <p>I COpy
AIVAILABL EJ
,
g</p>
    </sec>
    <sec id="sec-25">
      <title>COPY</title>
      <p>
        RESERVEC
NOTE: In order to reach a good conceptual schema (criteria for "good"
schema are presented in [
        <xref ref-type="bibr" rid="ref10">30</xref>
        ]), we have associated constraints (or
norms) to nodes and edges of the semantic network which are part of
their definition. We illustrate some of the norms with examples.
N1: Object identification
We consider as a good design discipline to identify each object of a
conceptual schema. Thus, any entity node must have an in-going "id"
labelled edge (see example 1).
      </p>
      <p>N2: Operation atomicity
Operation atomicity (one operation is defined as acting on one and
only one entity type) is required in the semantic network. Operation
atomicity avoids ~edundancy in p~ocess desc~iption and thus
inconsistency in process execution. Consequently an operation node is
always origine of one "a" edge with an entity node as target node.
N3: Node I edge types compatibility norms
These norms avoid inconsistencies in the object constructions. The
following figure represents the autorized edge types between two node
types.</p>
    </sec>
    <sec id="sec-26">
      <title>DOMAIN</title>
      <p>ENTITY
OPERATION
EVENT
TEXT</p>
    </sec>
    <sec id="sec-27">
      <title>DOMAIN</title>
      <p>a r g
a
a r g
a
a
a r g
a
a
a
a
a
a r g</p>
    </sec>
    <sec id="sec-28">
      <title>N4: Cardinality norms</title>
      <p>
        Cardinality norms are based on an extended notion of cardinality as
introduced in the E/R Model [
        <xref ref-type="bibr" rid="ref11">31</xref>
        ].
      </p>
      <p>Let f be a function coupled with a "a" or "r ll type edge. For two
entity nodes (called A and B in the following), the f and f-1
functions can be characterized by the three following properties.
- totalness. A function f is total (t) if and only if each instance
of A is associated with at least one instance of B at any point of
time, else the function is partial (p).
- valuation. A function f is single (s) if and only if each instance
of A is associated with at most one instance of B at any point of
time, else the function is multiple (m).
.:... permanency. The function is permanent (p) if and only if the set of
instances of B associated to an instance a of A, at a time t is
included in the set of instances of B associated to a at a time t'
( t ' &gt; t ), else the function is variable (v).</p>
      <p>All combinations of properties are not allowed. The matrix on figure
4.4 summarized valid combinations of cardinalities. For instance the
&lt;tmp, tsp&gt; couple of cardinalities for a "r" edge is allowed. Let us
take an example, the function between the nodes STOCK and BOOK is
total (t), multiple (m) and permanent (p), its opposite is total (t),
simple (s) and permanent (p). This function can be associated with an
"r lt edge in the network.</p>
      <p>tsp
tsv</p>
      <p>a
a
r
tmp
a
tmv
a
psp
a
psv
a
pmp
a
pmv
a
tsp
tsv
tmp
tmv
psp
psv
pmp
pmv</p>
    </sec>
    <sec id="sec-29">
      <title>4.4 The transformer base of rules</title>
      <p>In order to help the designer to progressively improve the content of
the semantic network during the design stage, the semantic network
transformer uses essentially three classes of rules: diagnosis
rules, improvement rules, mapping rules.
Let us concent~ate and examplify the two fi~st classes (mapping ~ules
a~e used to map nodes and edges of the semantic netwo~k onto R-schema
elements and a~e quite usual).
4.4.1 Diagnosis ~ules
Diagnosis ~ules playa double ~ole; they automatically detect e~~o~s
in the semantic netwo~k and p~opose one (o~ seve~al) solution(s) to
co~~ect each type of e~~o~.</p>
      <p>Thus, using diagnosis ~ules, the t~anfo~me~ is both a p~eventive and
a c~eative tool.</p>
      <p>E~~o~ detection is based on six design aspects, to which we have
associated six g~oups of diagnosis ~ules.</p>
      <p>- (a) object identification,</p>
      <p>(b) entity st~uctu~ation,
- (c) event and ope~ation st~uctu~ation,</p>
      <p>(d) semantic netwo~k consistency,
- (e) semantic netwo~k completeness,</p>
      <p>(f) semantic netwo~k co~~ectness.</p>
      <p>Rules of type (a) and (b) a~e illust~ated by examples.</p>
      <p>Figu~e (1) desc~ibes pa~t of a semantic netwo~k which will be
detected as inco~~ect because of the non-identification of the AUTHOR
enti ty node (the object identification no~m N1 is violated).
rJo~i1
a
(3 )
Thus, the SNT will p~opose two alte~native acceptable solutions:
- Eithe~ to t~ansfo~m AUTHOR into a domain node (2),
- o~ to leave AUTHOR as an entity node, but necessa~ily
identified by a domain node (AUTHII) (3).</p>
      <p>The diagnosis / co~~ection
p~ocess is an inte~active one. The SNT
I
will fo~ instance in the p~evious case, explain to the designe~ (if
~equi~ed) that in the fi~st solution autho~s will be conside~ed only
as p~ope~ty of books and not as independant entities.</p>
      <p>In the following example the semantic netwo~k content illust~ated in
( I ), means:</p>
      <p>6
&lt;pmv,p~
a</p>
      <p>SUBSCRIBER
(1)
a</p>
    </sec>
    <sec id="sec-30">
      <title>COpy</title>
      <p>a
a</p>
    </sec>
    <sec id="sec-31">
      <title>SUBSCRIBER</title>
      <p>(2 )
a
a
SUBSCRIBER is an agg~egate entity node and a component entity node
fo~ the object COPY. The ca~dinalities of the ~elationship a~e as
follows:
- &lt;psv&gt; a copy may be used by any subsc~ibe~,
a copy may be used at most one subsc~ibe~,
a copy may be used by distinct subsc~ibe~s at distinct times.
- &lt;pmv&gt; a subsc~ibe~ may bo~~ow any book,
a subscriber may borrow several books,
a subsc~ibe~ may bo~~ow diffe~ent books.</p>
      <p>This content is detected as inco~~ect (the type of the a~c is not
valid acco~ding the cardinality no~ms).</p>
      <p>Thus the SNT proposes an alte~native description (2). The new entity
LOAN is introduced as an aggregate entity with the two COPY and
SUBSCRIBER entity nodes as components. The cardinalities of the two
new edges are &lt;pmp,tsp) and &lt;pmp,tsp&gt;; that is acceptable according
to entity structuration rules.</p>
      <p>Of cou~se the interactive process will be activated in orde~ to
complete the description of the new node LOAN.</p>
    </sec>
    <sec id="sec-32">
      <title>4.4.2 Improvement ~ules</title>
      <p>These rules aim at giving facilities to improve the semantic netwo~k
content. Cont~a~ily to diagnostic ~ules, imp~ovement rules apply on
valid parts of the semantic network.</p>
      <p>Basically these rules are formalization of design expert heuristics
infered from the designer practical experience. They are based on
pattern recognition and suggest for each initial pattern of the
semantic network a more sophisticated one (or several alternative
ones) according to some specific design discipline.</p>
      <p>For instance as we will illustrate
sophisticate the representation
of
later the SNT can try to</p>
      <p>enti ty classes using
specialization; or it can suggest a more complete representation of
entities based on temporal reasoning; or even combine these two
aspects.</p>
      <p>Improvement rules relate to:
historization of entities and relationships,
specialization (of entity, event and operation types),
behaviour completion,
- domain structuration.</p>
      <p>Similarly to diagnosis rules, improvement rules identify a specific
pattern in the semantic network and propose to the designer one or
several improved representations pointing out some, may be; forbidden
or undertaken design problem. Let us give two examples of semantic
network transformations.</p>
      <p>Situation (1) corresponds to a pattern identified with a &lt;tsp, psp)
couple of cardinalities.</p>
    </sec>
    <sec id="sec-33">
      <title>IREQUESTI</title>
      <p>&lt;tsp, psp) t a
I LOAN I
(1)</p>
    </sec>
    <sec id="sec-34">
      <title>REQUESTI</title>
      <p>g /</p>
    </sec>
    <sec id="sec-35">
      <title>ACCEPTED REQUEST ta</title>
    </sec>
    <sec id="sec-36">
      <title>LOAN</title>
      <p>""g</p>
    </sec>
    <sec id="sec-37">
      <title>WAITING REQUEST</title>
      <p>(2 )
In this example, two entity nodes REQUEST and LOAN are aggregated in
such a way that:
- a loan is associated with one and only one request;
furthermore a loan is always associated with the same request
(tsp) ,</p>
      <p>a request may be "not accepted"; thus it is not associated to
a loan (ps p) .</p>
      <p>The SNT proposes to improve the description presented in (1). This
solution suggests to distinguish "accepted requests" and "waiting
requests" that have, probably, different and specific operations and
events. Following this line the designer can complete the new
network. For instance he can add the operation node ACCEPTANCE
WAITING REQUEST. This new operation node is defined on REQUEST
WAITING. In this context, the designer must find the event type that
triggers this operation type. In the example, the event type is COPY
BECOMES AVAILABLE. Finally the designer reaches a more complete .and
precise description of reality summarized as follows:</p>
      <p>(3 )
ACCEPTE
REQUEST
g
a</p>
      <p>aC
r--.......--_,</p>
      <p>ACCEPTANCE OF
WA .I..T I NG REQU.JEST</p>
      <p>, I
COpy BECOMES</p>
      <p>AJVAILABILE
The following example relates to behaviour completion
historization of entities. Let us consider situation ( 1 ) :
and
(a) This rule suggests to the designer to describe the behaviour of
the entity type STOCK. STOCK is a collection object. Every member of
the collection is a copy.</p>
    </sec>
    <sec id="sec-38">
      <title>The representation (2)</title>
      <p>LOST_COPY and NEW_COPY.</p>
      <p>proposes two
modification events on STOCK:
(b) On this new representation, the SNT can apply a new improvement
rule which suggests to the designer to memorize the lost copies. The
new proposed representation (3) uses the generalization/
specialization structure.</p>
      <p>a</p>
    </sec>
    <sec id="sec-39">
      <title>LOST COpy</title>
      <p>/ - /
(
a
a</p>
    </sec>
    <sec id="sec-40">
      <title>AUTHOR</title>
      <p>I" " i</p>
      <p>g
.---"-----j
~OST_COP1Y
g</p>
      <p>During the design process, the EDT drives actively and intelligently
the designer, and progressively improve the semantic network until
reaching a satisfactory solution for the designer and for the EDT.
Then, the semantic network can be mapped onto R-schema elements,
which can be used by the prototyping tools.</p>
    </sec>
    <sec id="sec-41">
      <title>5 PROTOTYPING TOOLS</title>
      <p>Information System prototyping is based on an automatic management of
the database dynamics specified in the R-schema.</p>
      <p>This involves :
automatic recognition of events;
automatic triggering of appropriate operations when an event
occurs;
- operation execution control;</p>
      <p>event synchronization.</p>
      <p>To attain such an automation, we have chosen to
a) use a relational DBMS to deal with
- managing the relations of the meta-base corresponding to the</p>
      <p>R-schema specification;
- executing operations texts and evaluating factors, conditions
and predicates this requires an interpreter more powerful
than a simple SQl interpreter.
b) develop a mechanism able to :
recognize an event;
determine which operations to execute;
- trigger and control operations execution;</p>
      <p>synchronize event-chaining.</p>
      <p>This mechanism is similar to the inference engine of a forward
chaining expert system, whose cyclic function is to :
- test the rule premisses;
- choose a candidate rule;
- execute the action-part of the rule;
and which possesses a rule-chaining strategy.</p>
      <p>The mechanism we propose is composed of four units managing all kinds
of events.</p>
      <p>the temporal processor recognizes temporal events;
the event processor recognizes internal events and processes
all events and their synchronization;
the PROQUEL interpreter executes all texts of predicates,
conditions, factors and operations when required by the event
processor;
- the application monitor allows to introduce instances of
external events as test cases for prototyping.
We focus now on the event processor which is the key part of the
proto typing tool.</p>
      <p>The event processor fulfils three main functions
takes into account external and temporal events;
processes events;
orders them.</p>
      <p>The first function is based on a FIFO management of the Message
Queue. The second function consists of a meta-base search for
appropriate conditions, factors and operations that will be evaluated
or executed by the relational DBMS. These two functions do not
presen t any major difficulties, as opposed to the third function,
presented in the following section.</p>
      <p>The chosen strategy for event synchronization is based on the
induction notion, and on the use of the induction graph, which is
derived from the R-schema.
The induction notion is used to point out the ordering of events from
the R-schema.</p>
    </sec>
    <sec id="sec-42">
      <title>DEFINITION :</title>
      <p>An event EVi inducts an event EVj, if and only if</p>
      <p>EVi triggers OPn which modifies the relation recognized by EVj,
- an occurrence of EVi, followed by the execution of OPn can
produce an occurrence of EVj.</p>
      <p>Graphically, the situation is the following
\
" -, OPn</p>
      <p>\ EV i &gt;&lt;:,...,--------&lt;
"./</p>
      <p>Rk
b----The notation used to represent an induction is</p>
    </sec>
    <sec id="sec-43">
      <title>5.2 The Induction Graph construction The Induction Graph uses the above notation. It contains OPn EVi--)EVj</title>
      <p>- nodes representing R-schema events,
directed edges representing inductions,
weights on the edges, which represent operations and are used
as "induction condi tion-s".</p>
      <p>The Induction Graph construction is accomplished in two steps:
- an automatic step, producing the Maximal Induction Graph,
a manual step transforming the Maximal Induction Graph into
the Induction Graph.
The Maximal Induction Graph can be automatically deduced from the
Rschema
- "a priori possible chainings" are obtained by analysing the ON,
TYPE and TRIGGER parts of event and operation specifications.
For a given event EVi, the chain is composed of all those events
ascertaining relations modified by the operations triggered by
EVi,
in order to keep only "structurally possible chainings", the
occurrence of each operation's TYPE (INSERT, DELETE, UPDATE) is
checked within the ON part (i.e the category) of the internal
event(s) it seems to induce. So, impossible chainings like "a
product deletion produces a new availability" will be removed
from the graph.</p>
      <p>presents the induction graph corresponding to our case</p>
    </sec>
    <sec id="sec-44">
      <title>A Maximal Induction Graph</title>
      <p>2nd STEP
The designer then manually modifies the Maximal Induction Graph,
until he obtains the final Induction Graph.</p>
      <p>During this step, the designer removes all the chainings that seem
impossible to him from the graph. For example, EV4 ("loan request")
seems to induce EVe ("copy availability"). This is because EV4
triggers a modify operation on COpy (ope) and EVe recognizes
insertions or modifications of the COPY status.</p>
      <p>In reality, an EV4 occurrence will never generate an EVe occurrence
since ope always put the COPY status to "LOANED", and EVe only
recognizes modifications setting a COPY status to "AVAILABLE".
This kind of "false induction" cannot be detected automatically since
it involves a semantical interpretation of predicates, conditions,
factors and operations.</p>
      <p>The final Induction Graph is an optimized and generally non-connected
graph, which contains only "semantically possible chainings". Figure
5.2 presents the Induction Graph corresponding to the Maximal
Induction Graph of figure 5.1.</p>
      <p>If there are cycles in the Induction Graph, they are detected
automatically, and the designer is asked to a confirm an "impossible
endless loopll.
EV3</p>
      <p>EV6
OP5l~</p>
      <p>~P8
~EV4
EV8</p>
      <p>EV7</p>
    </sec>
    <sec id="sec-45">
      <title>5.3 Internal event chaining strategy</title>
      <p>Given an exte~nal or temporal event to be processed, the chosen
strategy is based on a llbreadth-first" traversa I of the even t
Induction sub-graph.
** The</p>
      <p>induction sub-graph of an event is the maximal connected
component, whose root is the event concerned.</p>
      <p>8y using this kind of sub-graph when an external or temporal event
EVi occurs, the Event Processor can lear"n immediately what "the
set of internal events it will probably have to process" is. This
set of internal events is called the EVi Induction Class and is
written C(EVi). For example, referring to figure 5.2, the EV1
Induction Class is :</p>
      <p>C(EV1) = { EV3, EV4, EV6, EV7, EV8 )
** The internal event sequence construction is based on a breadth­
first traversal of the Induction sub-graph.</p>
      <p>EV4</p>
      <p>EV7
1s t
2nd
3rd
c yc Ie: EV 1
cycle: EV3 + EV4
cycle: EV6 + EV7 + EV8
For example, if EV1 occurs, the complete processing cycle will
include
It means that within each cycle, all events from the same level are
processed.</p>
      <p>(</p>
      <p>OP5/
( EV6</p>
      <p>EV3"'
~7
'EV8</p>
      <p>EV1
~
~
)</p>
    </sec>
    <sec id="sec-46">
      <title>1st cycle</title>
      <p>) 2nd cycle
) 3rd cycle</p>
      <p>The "breadth-first" strategy (e.g EV1, EV3+EV4, EV6+EV7+EVSl has a
real advantage over a "depth-first" (EV1, EV3, EV6, EV4, EV7) or a
"random" strategy (EV1, EV3, EVS, EV4, EV7, EV6). In fact, this
strategy permits optimal management of the input/output implicit
parameters. Idle time between
gener-ation of an "oper-ation output parameter",
and its use as input parameter to process the event
induced by this operation, is minimal.</p>
      <p>Internal events are recognized as soon as "noticeable state changes"
occur (in fact just after all operations triggered at the same
level have been executed); and these events are processed as soon as
they are recognized (i.e during the next basic cycle of the event
processor).</p>
      <p>In this manner, there is no parameter waiting for use during a
complete basic cycle. This is not true with other strategies; for
instance, in the "depth-first" strategy, the EV4 input parameters
must be kept in memory as long as EV3 and EV6 are still being
processed.</p>
      <p>The purpose of the Induction Graph is an optimization of the Event
Processor work. For example, refering to figure 5.2, during the
processing of ev2, if OP4 isn't in the list of operations to execute,
a whole part of the EV2 Induction sub-graph can be pruned off</p>
      <p>O~EV~
EV~</p>
      <p>EV5
opS \</p>
      <p>OP9!</p>
      <p>~p~
EV7</p>
      <p>EV9</p>
      <p>EVI0</p>
    </sec>
    <sec id="sec-47">
      <title>So it permits:</title>
      <p>.. avoidance of useless predicate tests (EV5, EV9, EVIO),
- avoidance of useless parameter recording,
- an earlier freeing of resources ("read-Iocked" relations for
predicate, condition and facto,.- evaluation; "write-locked"
relations for ope,.-ation execution).</p>
      <p>It appears
smaller and
the empty
processed. )
that an external or temporal Induction Class will become
smaller after each basic cycle, and will finally reach
state. (another external or temporal event will then be
At any moment, the Event Processor knows what it is processing and
what it must deal with next; so it controls the whole process fully.
USING THE PROTOTYPE
During the experimentation of the prototype, the Event Processor
displays a trace of what it is doing : which events are currently
processed or waiting, which conditions are true, which operations
have to be executed, and so on.</p>
      <p>Analysing this t~ace, the designe~ can easily detect if things a~e
going w~ong (bad ~esult fo~ a condition, database e~~o~ on a
p~edicate evaluation, occu~~ence of a w~ong event, ... ) and
immediately co~~ect the e~~o~s, modifying the specifications th~ough
one of the design inte~faces.</p>
      <p>Applying an ite~ative st~ategy, the designe~ will p~og~essively
~efine his specifications until the behaviou~ of the p~ototype is
fully co~~ect fo~ him and fo~ the end-users.
b. CONCLUSION
In this pape~, we have p~esented an integ~ated compute~ aided tool
socalled RUBIS, fo~ designing and p~ototyping Info~mation Systems.
(
The RUBIS-schema is a decla~ative specification of the IS, made using
the fo~mal specification language called PROQUEL (PROg~amming QUE~y
Language). The R-schema p~ovides a conceptual desc~iption of both the
static and dynamic aspects of the IS to be built. The static IS
aspects a~e modelled by ~elations while operations (elementa~y
actions on an object) and events (elementa~y state changes t~igge~ing
one o~ seve~al ope~ationsJ allow the modelling of the dynamic aspects
of objects. Thus, the R-schema is a collection of ~elations,
ope~ations and events specifications. In this schema the tempo~al
aspects of the application a~e also taken into account; they a~e
modelled by using the time types and functions p~ovided by the RUBIS
Time Model.</p>
      <p>RUBIS includes three different interfaces as compute~ aided design
tools: a G~aphic Inte~face, an Expe~t Design Tool wo~king on a
"complex object" desc~iption of the application domain and a Menu
Inte~face based on the PROQUEL language.</p>
      <p>The G~aphic and Menu based inte~faces a~e both devoted to expe~ienced
designe~s while the Expe~t Design Inte~face can be used by ~elatively
unexperlenced analysts or designers.</p>
      <p>P~ototyping in RUBIS is achieved by the Tempo~al P~ocesso~ which
manages tempo~al aspects of the specification and by the Event
P~ocesso~ which manages event ~ecognition and synch~onization. Both
P~ocesso~s use the PROQUEL inte~p~ete~.</p>
      <p>A fi~st ve~sion of RUBIS is ~unning on SUN Wo~kstation, unde~ the
UNIX system. P~ototyping tools a~e w~itten using the C language, and
design tools a~e using the X-Windows system. The expe~t design
inte~face is pa~tly w~itten in P~olog.</p>
      <p>Cu~~ent developments a~e leading towa~ds
- the development of a functional debugge~ fo~ the p~ototyping
aspects;
- the extension of PROQUEL to a ~eal pe~sistent language;
- the p~ovision fo~ the implementation of code gene~ato~s which
will t~anslate the PROQUEL specifications into a ta~get
"embedded language" (Pascal/SQL, C/QUEL, ... J;
- the development of a graphical interface to manipulate the</p>
      <sec id="sec-47-1">
        <title>Semantic Network; - the extention of the expert design interface to include tutorial functionnalities. REFERENCES</title>
      </sec>
      <sec id="sec-47-2">
        <title>1[1J C. ROLLAND, C. RICHARD: The Remora methodology for information</title>
        <p>'systems design and management in IFIP WG8.1 working conference on
." Information systems design methodologies: a comparative review" 1982
[2J BOUCHET and al. "Databases for Microcomputers : the PEPIN</p>
      </sec>
      <sec id="sec-47-3">
        <title>Approach" ACM SIGMOD/SIGSMALLS, Orlando, Florida, Oct.1981.</title>
        <p>[3J ROLLAND C, BENCI G, FOUCAUT 0 "Conception de Systemes
.d'Information : La Methode REMORA", Eyrolles 1987.
[4J BUBENKO J .A. "The temporal dimension in Information Processing"
in Architecture and Models in Database Management, G.M. NIJSSEN, ed.</p>
      </sec>
      <sec id="sec-47-4">
        <title>North-Holland (1977).</title>
        <p>[5J WIEDERHOLD G., FRIES J.F., WEYL S. "Structured organization of</p>
      </sec>
      <sec id="sec-47-5">
        <title>Clinical Databases" Proc. of AFIPS National Computer Conf., Anheim,</title>
        <p>.1975.
;[6J BOLOUR A., ANDERSON T.L., DEKEYSER L.J. and WONG H.K.T. "The
,role of time in information processing : A survey" ACM SIGMOD RECORD
~ol. 12, nO 3, April 1982.
[7) SNODGRASS R. "The temporal query language TQUEL" ACM</p>
      </sec>
      <sec id="sec-47-6">
        <title>Transactions On Databases Systems, vol. 12, nO 2, June 1987.</title>
        <p>[8) NAVATHE S.B., AHMED R. "TSQL: A language interface for history
databases" AFCET-IFIP WG8.1 TAIS Conf., Sophia-Antipolis, France, May
1987.
[9J CODD E.F. "A Relational Model of Data for Large Shared Data</p>
      </sec>
      <sec id="sec-47-7">
        <title>Banks" Communications of the ACM, vol. 13, nO 6, 1970.</title>
        <p>[10) M.R. GUSTAFSSON, J .A. BUBENKO T. KARLSSON: "A Declarative</p>
      </sec>
      <sec id="sec-47-8">
        <title>Approach to Conceptual Information Processing" in IFIP WG8.1 Working</title>
        <p>Conference on "Information Systems Design Methodologies: a
comparative review" 1982.
[11) ANDERSON T .L. "Modeling time at the conceptual level" Proc.</p>
      </sec>
      <sec id="sec-47-9">
        <title>2nd International Conf. on Databases, Jerusalem, June 1982.</title>
        <p>[12) SNODGRASS R., AHN I. "A taxonomy of time in da tabases" Proc.
of ACM SIGMOD 85, Mar. 1985.
[13) ZLOOF M.M. "Query By Example: a database language" IBM</p>
      </sec>
      <sec id="sec-47-10">
        <title>Systems Journal, vol. 16, nO 4,1977.</title>
        <p>[14) OVERMYER R., STONEBRAKER M. "Implementation of a time-expert
in a Database System" ACM SIGMOD RECORDS, vol. 12, nO 3, Apr. 1982.
[15J ADIBA M., 8UI QUANG N., PALAZZO J. "Time concepts for
generalized data bases" ACM Annual Conference, Denver, Colorado,
U. S • A., Dc t. 1985.
[16) AHN I., SNODGRASS R. "Performance evaluation of a Temporal</p>
      </sec>
      <sec id="sec-47-11">
        <title>Database Management system" Proc. of ACM SIGMOD Conf., 1986.</title>
        <p>[17) DADAM P., LUM V., WERNER H.D. "Integration of Time Versions
into a Relational Database System" Proc. of 10th VLDB, Singapour,
Aug. 1984.
[18) ADIBA M., BUI QUANG N. : "Historical multi-media databases"</p>
      </sec>
      <sec id="sec-47-12">
        <title>Proc. of 12th VLD8, Kyoto, Japan, Aug. 1986.</title>
        <p>[19) BARBIC F., PERNICI B. "Time modeling in Office Information·
Systems" Proc. of ACM SIGMOD Conf., Austin, Texas, May 1985.
[20) CLIFFORD J., RAO A.</p>
        <p>"A simple general structure for temporal</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <article-title>domains" AFCET-IFIP WG8.1 TAIS Conf</article-title>
          .,
          <string-name>
            <surname>Sophia-Antipolis</surname>
          </string-name>
          , France, May
          <year>1987</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [21]
          <string-name>
            <surname>BOLOUR</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>DEKEYSER L.J.</surname>
          </string-name>
          <article-title>"Abstractions in temporal information"</article-title>
          <source>Information Systems</source>
          , vol.
          <volume>8</volume>
          , nO 1,
          <year>1983</year>
          [22] DBE : Data Base Engineering review vol
          <volume>17</volume>
          , n04,
          <article-title>Special issue on data design aids methods and environment</article-title>
          ,
          <source>Dec</source>
          .
          <volume>84</volume>
          [23]
          <string-name>
            <surname>S. CERI</surname>
          </string-name>
          :
          <article-title>"Methodologies and Tools for Database Design"</article-title>
          ed,
          <source>North Holland Publ Co</source>
          <year>1983</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>R.P.</given-names>
            <surname>BRAGGER</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. DUDLER</given-names>
            ,
            <surname>J. REBSAMEN</surname>
          </string-name>
          ,
          <string-name>
            <surname>C.</surname>
          </string-name>
          <article-title>A. ZEHNDER: "GAMBIT: An interactive Database Design Tool for Data Structures, Integrity Constraints and Transactions" in Database Techniques for Professional Workstations</article-title>
          ,
          <source>ETH Zurich</source>
          <year>1983</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [25]
          <string-name>
            <surname>J.M SMITH</surname>
            ,
            <given-names>C.P.</given-names>
          </string-name>
          <string-name>
            <surname>SMITH:</surname>
          </string-name>
          <article-title>Database Abstractions Aggregation</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <source>Communications of ACM. June</source>
          <year>1977</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [26]
          <string-name>
            <surname>J.M. SMITH</surname>
            ,
            <given-names>C.P.</given-names>
          </string-name>
          <string-name>
            <surname>SMITH:</surname>
          </string-name>
          <article-title>Database Abstractions Aggregation and Generalization</article-title>
          .
          <source>ACM TRANSACTIONS on Database Systems. June</source>
          <year>1977</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [27]
          <string-name>
            <surname>M.L BRODIE</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          <article-title>SILVA: Active and Passive Component Modeling: ACM/PCM in IFIP WG8.1 working conference on "Information systems design methodologies: a comparative review" 1982.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [28]
          <string-name>
            <surname>KAHN</surname>
            <given-names>K.</given-names>
          </string-name>
          , GORRY G. A. :
          <article-title>"Mechanizing Temporal Knowledge"</article-title>
          <source>Artificial Intelligence</source>
          , Vol.
          <volume>9</volume>
          , N°l, Aug.
          <year>1977</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [29]
          <string-name>
            <surname>MITTAL S.</surname>
          </string-name>
          <article-title>: "Event-based Organization of temporal Databases"</article-title>
          <source>Proc. CSCSI/SCEIO Conf</source>
          .
          <volume>82</volume>
          ,
          <string-name>
            <surname>Saskatoon</surname>
          </string-name>
          , Saskatchewan,
          <fpage>17</fpage>
          -
          <lpage>19</lpage>
          May
          <year>1982</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <string-name>
            <surname>[30J CAUVET C.</surname>
          </string-name>
          <article-title>"Un modele et un outil d'aide a la conception des Systemes d'</article-title>
          <source>Information" Ph. D. Univ. of Paris 6</source>
          , Nov.
          <year>1988</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          <article-title>[31J CHEN P. "The Entity/Relationship model : towards a unified view of data"</article-title>
          ,
          <source>ACM TODS</source>
          , Vol
          <volume>1</volume>
          , nO 1,
          <year>1976</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [32J NOBECOURT
          <string-name>
            <surname>P.</surname>
          </string-name>
          , ROLLAND C., LINGAT J.Y. :
          <article-title>"Temporal management in an extended relational system" 6th British National Conf</article-title>
          . on Databases, Cardiff,
          <string-name>
            <surname>G.B.</surname>
          </string-name>
          ,
          <year>July 1988</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          <string-name>
            <surname>[33J LINGAT J.</surname>
            <given-names>Y</given-names>
          </string-name>
          , NOBECOURT P., ROLLAND C.
          <article-title>: "Behaviour management in database applications"</article-title>
          <source>VLDB</source>
          <year>1987</year>
          , Brighton,
          <string-name>
            <given-names>G.B.</given-names>
            ,
            <surname>Sept</surname>
          </string-name>
          .
          <year>1987</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          <string-name>
            <surname>[34J LlNGAT J.Y</surname>
          </string-name>
          ,
          <string-name>
            <surname>COLIGNON</surname>
            <given-names>P</given-names>
          </string-name>
          ,
          <string-name>
            <surname>ROLLAND C.</surname>
          </string-name>
          <article-title>: "Rapid prototyping : the PROQUEL language"</article-title>
          <source>VLDB 88</source>
          , Los Angeles, USA, Sept
          <volume>88</volume>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>