12
G. Fey and R. Drechsler
1.4.1 Adding Explanations
We consider cause–effect chains on the unit-level where actions fix the output
values. Each module is equipped with an extra output that provides all causes for
an action to form an explanation for each event. All kinds of actions are known
in advance, so their dependence on causes is hard-coded into the system. Each
module explains all its output data. The causes for the output data of one module are
generated by preceding module’s actions and requirements, so the causes explaining
an action are encoded as a bit string for referencing them.
The semantics of explanations for the robot controller is as follows: All observable actions of the robot controller are attributed to the motor control signals. The
motor control module yields explanations in terms of requirement R3 where the
speed is adjusted according to input by the power control module. Additionally,
the direction and speed of the motors are commanded and explained by the main
module. The main module in turn decides whether to follow noise or light depending
on the power status provided by the power module. The actual direction depends
on the respective sensors. Requirements, powerstate, and sensor input define the
explanations for the main module. Power module and sensor module simply depend
on input data which directly explains their output.
The explanations of the robot controller already make an abstraction from actual
data. For example, instead of explaining the precise speed of the two motors, this is
abstracted to one of the driving directions “straight,” “forward left,” “forward right,”
or “turn.”
To have reproducible explanations and record their dependence, we equip every
module with a separate module implementing the explanation unit. The explanation
unit stores explanations and provides unique tags for events. An explanation unit
essentially is a memory that stores the explanation which is a bit vector encoding
the causes for an action. The memory address serves as the unique tag for the event
associated to the current action of the respective module. By this, the unique tag
also serves as reference to the explanation for the event. This tag is accessible for
subsequent modules to produce their explanations. Uniqueness of these tags for
events is subject to the limited size of the memory. By using a simple wrap-around
arithmetic for the memory addresses, the size of the memory in the explanation unit
decides on the length of the history that can be recorded.
For example, the main module’s explanations always depend on the actions of
the sensor module and the power module together with the respective requirements.
Receiving data from the power module or the sensor module corresponds to an
action of these modules associated to an explanation with a unique tag. The main
module stores the unique tags for the explanations to generate the explanation for its
own action. Assuming that unique tags for explanations have 8 bits, an explanation
of the main module contains
– an action—2 bits (4 bits in our implementation) for the direction “straight,”
“forward left,” “forward right,” or “turn,”
Précédent

- 20/268

Suivant