Graphs and semantic networks are a means of representing knowledge-based on the relationships between objects. The nodes correspond to these objects, and links (lines or arcs) between them describe the dependencies. This is only a kind of representation without capabilities of processing. Final implementation of this kind of representation usually uses rule-based systems.
Fig. .4 Graph representation of dependency
among process variables
and faults in transient state.
Frames and object oriented representations.
A frame is a data structure for representing objects, situations, facts or other kind of knowledge by breaking it down into their constituent parts. A simple example of using frames consists in structuring data in tables. The use of frames involves a set of mechanisms (access, new, reset and change of values) to deal with frame attributes or slots. Inheritance is another important property of frames. Graphical representation of frames offers an easy to use interface to users. For instance, frames are present in G2 to represent knowledge related to process variables and objects. Attributes as sampling time, length, connections and other are used to describe data and relationship between them. Copies of these graphical objects conserve all the attributes (inheritance).
The actual object oriented languages are very extended to support this type of representation with additional features. Languages such as C++ or Smalltalk permit to declare complex data structures, called classes, embedding data (object attributes) and methods (to manage and/or to access to its attributes). Main benefits of Object Oriented Programming (OOP) are resumed in the following properties :
The basic difference between OOP and procedural programming resides
in that the data is not clearly separated from the code. The programming
structure called object is used to encapsulate both, data
(or attributes) and methods (procedures describing how actions
of these objects must be performed) related to this data forming complex
structures. In OOP, objects are created as instances of classes,
or template structures, as in procedural languages variables are declared
according to types of data. The extended use of object oriented languages
in the domain of automatic control is surveyed in [Jobling
et al. 1994].