L. Matmatte et al. : G.D.Q.-Expert: An Expert System for Geotechnical Data
243
it combines the class concept with concepts from frames systems, particularly,
demons and rules, procedural and declarative facets. Thus an object is defined by
its class, its attributes, declarative and procedural facets attached to each of these
attributes and demons and rules which manipulate attributes and their values. In
order to clarify what we have said, we give the "values" object example:
Object "Values":
Attributes introduced by the end user:
Nom_Couche : layer name, the value of this attribute is imported from the layer
object.
EtaCConsistance : layer state of consistency, the value of this attribute is imported
from the layer object.
EtaC Consolidation : layer state of consolidation, the value of this attribute is
imported from the layer object.
Attributes calculated or introduced by the end user:
Module_pressio : pressuremeter modulus value.
Pression_limite: limit pressure value.
Volume_initial : initial volume value before the starting of the test.
Calculated attributes:
Module-sur-limite : Value of the EIPI ratio.
Fluage-sur-Iimite : Value of the PlIPf ratio
Attributes deduced from the knowledge base:
Couche_E : state of coherence of the pressuremeter modulus value with the soil
type.
Couche_PI : state of coherence of the limit pressure value with the soil type.
E_Pl : state of the EIPI ratio according to the soil type.
PI_Pf : state of the PIlPf ratio according to the soil type.
EtaCessai : state of the test after examination of obtained values.
These attributes are storage variables for different values of an attribute. Control or
computing procedures are attached to these attributes in order to avoid
introducing invalid values by the end user or to compute the value of an attribute
from those of others. Production rules are also attached to these attributes so as to
allow reasoning. Thus, a "When Changed" method is attached to the attribute
Module_pressio which is fixed when the attribute value changes. This method
prevents the end user from introducing a negative or zero value (the modulus
takes positive values only), and sends a message to the end user each time the
modulus value is non positive.
When Changed Values.Module pressio:
IF Values.Module_pressio > 0 THEN
Values.Module := TRUE
ELSE
END
END
Message.variable text := "Ie module pressiometrique"
ASK Message
Précédent

- 265/334

Suivant