DeMO (Discrete Event Modeling Ontology)
DeMO is an ontology for
discrete-event modeling (system dynamics for discrete systems). Here discrete-event system (DES) is
understood as an event-driven system with discrete states.
As a first step we start by
defining a taxonomy of discrete-event modeling formalisms based on their
theoretical modeling power. We consider Generalized Semi-Markov Process models
and Generalized Stochastic Petri Nets to be two roots of the taxonomy (highest
modeling power). Other modeling formalisms are added by placing restrictions on
higher formalisms (e.g. timed automata is a stochastic timed automata with a
deterministic clock structure, etc).
The result is a simple hierarchical structure where objects are
related through “is-a-subclass-off” (parent/child) relation.
This kind of taxonomy with
corresponding links on the Web is easily browsed by humans and may serve as a
good reference. However we can go further with ontologies. We can put more complex and meaningful
knowledge in the ontology by using stronger semantic connections in the DES
models. Not only that – we can try to make the ontology readable by machines.
OWL (Web Ontology Language)
uses formal semantics to facilitate machine readability of Web contents. The
language defines classes, their properties, relationships between classes (as
object properties), and class instances (individuals). We used Protégé OWL plug-in (ontology
building toolset) to create a discrete-event system modeling knowledge base (DeMO ontology). The resulting .owl file can be viewed in Protégé with OWL plug-in installed by
means of “Import” command.
Let’s take a closer look at
the DeMO ontology. It has two main classes: Model
and ModelElement.
Since the scope of this ontology was considered to be only DES models, the name
Model is used for the sake of simplicity.
In a larger ontology that spans beyond just discrete-event systems’ modeling it
has to be substituted by DiscreteEventModel
(or something of the sort) with the term Model
to be reserved for a more general concept.
Class ModelElement as obvious from the name describes relevant model
elements and contains three subclasses:
·
ModelPrimitive,
·
ModelBuildingBlock,
·
ModelMechanism,
ModelPrimitive describes
most basic, fundamental concepts of the model each of which is placed in a
separate class. In the case of DES these are: State, Event, Transition, EventClock, Place (for
Petri Net models), and TimeValue.
Subclasses of ModelBuildingBlock are the building
blocks of the Model (each model has a
“has-a” relation with them). Building blocks themselves are defined in terms of
subclasses of ModelPrimitive (mostly
as a “set-of”). For example StateSpace is defined as a “set-of” State, ClockStructure as a “set-of” Clock
etc.
ModelMechanism
contains subclasses that specify different mechanisms (rules of engagement) adopted
by a particular model: EventScheduling
mechanism, TransitionTriggering
mechanism, etc. TimingSpecification
for example explains the meaning behind the event clock sequence, and ClockSetting describes how the event clocks in a clock
structure are set and itself has two subclasses StochasticClockSetting and DeterministicClockSetting.
At present we haven’t defined
model mechanisms in further detail. In general at the lowest level of granularity
of the knowledge base classes turn into instances. In our case we create
instances of model mechanisms with names that may mean something to human
observer but have no machine readable semantic meaning. We decided to stop at
this level just for the sake of simplicity. One can easily imagine that a
number of different subclasses and concepts can be created only to describe
these mechanisms in further detail.
Usually the depth (level of granularity) of an ontology is determined by
the proposed application. If one considers the use of the DeMO ontology by
simulating programs than clearly further details in model mechanism
descriptions is necessary.
As mentioned above each of
these classes has several properties that either serve to define the instances
of the class (datatype properties) or the relationships with other classes.
Here is a snapshot of the small part of the graphical representation of DeMO.
(Click here for pic1.eps file)
Figure 1 Graphical representation of the part of the DeMO ontology. Here Model Element classes and there relationships are depicted. [Created using ezOWL plug-in.]
Class Model contains the DES modeling formalisms’ taxonomy described
above, but now the classes are defined using formal semantics, in particular by
putting restrictions on model properties. For example GSMP (Generalized Semi-Markov Process model) is defined as Model with the following restrictions:
·
The clock
structure is stochastic,
·
The transition
function is probabilistic,
·
Transitions are
triggered by Multiple_Events_Triggering
mechanism,
·
Transitions are
enabled through Event_Enabling
mechanism (which suppose to mean that transitions are enabled together with
triggering events),
·
And events are
scheduled through some Automata_Scheduling
mechanism.
Here’s another snapshot of
the part of the ontology:
Figure 2 Part of the DeMO ontology with GSMP class.
[Created using ezOWL plug-in. ]
The ontology is not fully
populated (not all classes have instances). As was mentioned above the decision
on where to put instances is application specific. In the case of Model classes the lowest level
envisioned is when each instance represents a particular model with defined
state space, event set, transition function, clock structure etc. This model
instances are “prepared for execution”. But one can stop at a higher level, for
example by turning the lower level model classes into instances. Such ontology
may prove to be very useful, especially combined with other ontologies and
inference tools.