
114 W. Heaven et al.
Domain Properties and Actions. The set of properties Prop are either
discrete abstractions of (possibly continuous) data that the system is able to
sense, such as BallAtTarget or DoorOpen, or execution states of the system
itself, such as MovingToTarget or HoistingSouth. The boolean values of domain
properties can be changed by the occurrence of actions.
The set of actions Actions is partitioned by the set {Sys, Env
Dep
,Env
Ind
},
where Sys is a set of system actions, Env
Dep
is a set of causally-Dependent
environment actions,andEnv
Ind
is a set of causally-Independent environment
actions. System actions, as might be expected, are those actions controllable by
the system. A system action typically initiates some behaviour of the system.
For example, the system action moveToTarget initiates the system behaviour
of “moving to the target”. Environment actions, on the other hand, are not
controllable by the system (note that environment actions are indicated by an
underscore prefix to the action label, e.g.,
doorOpened). We further distinguish
between causally-dependent and causally-independent environment actions.
A causally-dependent environment action is an action that can only occur once
a system action has initiated some particular behaviour. For example, the en-
vironment action
arrivedAtTarget can only occur when MovingToTarget holds.
Causally-dependent actions play the role of “notifications”, which are moni-
tored by the system to determine whether or not the objective of a particular
behaviour has yet been reached. For example, the occurrence of
arrivedAtTarget
can be thought of as the notification of successful completion of the behaviour
initiated by the system action moveToTarget. In practice, an action such as
arrivedAtTarget coincides with the system’s sensing that it has arrived at the
target location.
In contrast, a causally-independent environment action is an environment ac-
tion that is not constrained in any way by the behaviour of the system. For exam-
ple, the environment action
doorOpened can occur whenever the door is closed,
irrespective of the behaviour of the system at that point. Causally-independent
actions are somewhat akin to input actions in I/O automata [20], though the lat-
ter are typically fully unconstrained, with all input actions enabled in every state.
Generating Domain Models. Our current implementation uses the Labelled
Transition System Analyser (LTSA) [10] to generate an LTS representation of a
domain model from a set of actions, a set of fluent propositions [21], and a set
of LTL constraints. The set of actions for the case-study domain is partitioned
along the lines described above as follows:
set Sys = {moveToTarget, moveToArmNorth, moveToArmSouth, moveNorth, moveSouth,
hoistSouth, hoistNorth}
set Env
Dep = { arrivedTarget, arrivedArmNorth, arrivedArmSouth, arrivedSouth,
arrivedNorth, hoistedNorth, hoistedSouth}
set Env
Ind = { doorOpened, doorClosed}
set Actions = {Sys, Env
Dep, Env Ind}