Professional Documents
Culture Documents
VOLUME 1
S ERIES E DITOR : I SMAIL K HALIL
A MSTERDAM PARIS
Agent-Based Ubiquitous
Computing
A MSTERDAM PARIS
Atlantis Press
29, avenue Laumi`ere
75019 Paris, France
For information on all Atlantis Press publications, visit our website at: www.atlantis-press.com
Copyright
This book, or any parts thereof, may not be reproduced for commercial purposes in any form or by
any means, electronic or mechanical, including photocopying, recording or any information storage
and retrieval system known or to be invented, without prior permission from the Publisher.
ISBN: 978-90-78677-10-9
ISSN: 1875-7669
e-ISBN: 978-94-91216-31-2
To our children,
Patrick, Sofia, Jose, Javier and Maria.
Preface
Ubiquitous computing names the third wave in computing, where the personal computing
era appears when technology recedes into the background of our lives. The widespread use
of new mobile technology implementing wireless communications such as personal digital
assistants (PDAs) and smart phones enables a new type of advanced applications. In the
past years, the main focus of research in mobile services has aimed at the anytime-anywhere
principle (ubiquitous computing). However, there is more to it. The increasing demand for
distributed problem solving led to the development of multi-agent systems. The latter are
formed from a collection of independent software entities whose collective skills can be
applied in complex and real-time domains. The target of such systems is to demonstrate
how goal directed, robust and optimal behavior can arise from interactions between individual autonomous intelligent software agents. These software entities exhibit characteristics
like autonomy, responsiveness, pro-activeness and social ability. Their functionality and
effectiveness has proven to be highly depended on the design and development and the application domain. In fact, in several cases, the design and development of effective services
should take into account the characteristics of the context from which a service is requested.
Context is the set of suitable environmental states and settings concerning a user, which are
relevant for a situation sensitive application in the process of adapting the services and information offered to the user. Agent technology seems to be the right technology to offer
the possibility of exploring the dynamic context of the user in order to provide added-value
services or to execute more and complex tasks. In this respect, agent-based ubiquitous
computing can benefit from marrying the agent-based technology for the extensive usage
of distributed functionality, to be deployed for lightweight devices and enable to combine
ubiquity and intelligence in different application areas and challenge with questions the
research communities in computer science, artificial intelligence and engineering.
We noticed during the AAMAS workshop we organized about this issue in 2007 that, although a number of other books on ubiquitous computing have been published in the last
years, none of these has focused on the agent-based perspective. So we opened a call
for chapters to gather input and feedback concerning the above challenges, through the
collection of the high-quality contributions that reflect and advance the state-of-the art in
agent-based ubiquitous application systems. It brought together researchers, agent-based
vii
viii
software developers, users and practitioners involved in the area of agent-based ubiquitous
systems, coming from many disciplines, with the target to discuss the different fundamental principles for construction and design of agents for specific applications, how they
co-operate and communicate, what tasks can be set and how different properties like coordination and communication have been implemented, and which are the different problems
they had to cope with. Existing perspectives of ubiquitous agents within different application domains have been welcome, as well as the different mechanisms for design and
cooperation that can be used within different agent building environments. Specifically, the
book focused on the different disciplines contributing to the design, cooperation, coordination and implementation problems of ubiquitous computing applications and how these
can be solved through the utilization of agents.
Thanks are due to all contributors and referees for their kind cooperation and enthusiasm,
and to Zeger Karssen (Editorial Atlantis Press) for his kind advice and help to publish this
volume.
E. Mangina, J. Carbo and J.M. Molina
Contents
Preface
1.
vii
Introduction . . . . . . . . . . . . . . . . . . .
Classification of authorization policies conflicts
The basics of argumentation . . . . . . . . . .
Using argumentation to resolve policy conflicts
Related work . . . . . . . . . . . . . . . . . .
Conclusions and future work . . . . . . . . . .
Acknowledgments . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
2
3
7
10
11
11
13
2.6
2.7
3.
Introduction . . . . . . . . . . . . . . . . . . . . . . . . .
Social interface agents . . . . . . . . . . . . . . . . . . .
Ubiquitous robots . . . . . . . . . . . . . . . . . . . . . .
2.3.1 Augmented HRI and immersive interfaces . . . .
Ubiquitous agents . . . . . . . . . . . . . . . . . . . . . .
2.4.1 Discussion . . . . . . . . . . . . . . . . . . . . .
Dynamic embodiment . . . . . . . . . . . . . . . . . . .
2.5.1 Agent chameleons . . . . . . . . . . . . . . . . .
2.5.2 Discussion . . . . . . . . . . . . . . . . . . . . .
MiRA chameleons . . . . . . . . . . . . . . . . . . . . .
2.6.1 Requirements . . . . . . . . . . . . . . . . . . .
2.6.2 The socially situated agent architecture (SoSAA) .
2.6.3 Implementation . . . . . . . . . . . . . . . . . .
2.6.4 Testbed . . . . . . . . . . . . . . . . . . . . . . .
2.6.5 Discussion . . . . . . . . . . . . . . . . . . . . .
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
13
15
16
17
18
19
20
21
22
23
24
25
27
30
32
33
35
Tibor Bosse, Mark Hoogendoorn, Michel C.A. Klein, and Jan Treur
3.1
3.2
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modelling approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ix
35
36
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11
3.12
4.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
37
40
42
45
48
49
53
54
54
54
54
55
55
55
56
56
56
56
56
57
58
58
58
59
59
60
63
4.2
4.3
4.4
5.
Introduction . . . . . . . . . . . . .
4.1.1 Multi agent systems (MAS)
4.1.2 Ubiquitous computing . . .
4.1.3 Case based reasoning . . .
4.1.4 Peer-to-peer . . . . . . . .
4.1.5 Mobile ad-hoc networks . .
System architecture . . . . . . . . .
4.2.1 Reasoning process . . . . .
4.2.2 Communication process . .
A case of study: An intelligent gym
Conclusions . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
63
64
66
66
69
70
71
72
74
77
83
85
5.2
Introduction . . . . .
5.1.1 Background:
5.1.2 Background:
SimAMF . . . . . .
. . . . . . . . . . . . . . . .
Concepts . . . . . . . . . .
The active metadata concept
. . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
85
86
87
89
Contents
5.3
5.4
6.
xi
5.2.1 Motivation . . . . . . . . . . . . . . . . . . .
5.2.2 Related work . . . . . . . . . . . . . . . . . .
5.2.3 Implementation . . . . . . . . . . . . . . . .
5.2.4 Simulation visualization . . . . . . . . . . . .
5.2.5 Experiments . . . . . . . . . . . . . . . . . .
SWARM-AMF . . . . . . . . . . . . . . . . . . . . .
5.3.1 Background . . . . . . . . . . . . . . . . . .
5.3.2 System design . . . . . . . . . . . . . . . . .
5.3.3 An experiment using some swarming metrics .
5.3.4 Experimental design . . . . . . . . . . . . . .
5.3.5 Results . . . . . . . . . . . . . . . . . . . . .
5.3.6 Conclusions . . . . . . . . . . . . . . . . . .
List of acronyms . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 89
. 89
. 90
. 91
. 92
. 93
. 94
. 95
. 97
. 98
. 99
. 99
. 101
103
6.4
6.5
6.6
7.
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . .
Related works . . . . . . . . . . . . . . . . . . . . . . . . .
Cooperative surveillance agents architecture . . . . . . . . .
6.3.1 Sensor and coalition layer . . . . . . . . . . . . . .
6.3.2 Coalition protocol . . . . . . . . . . . . . . . . . .
Information fusion for tracking during coalition maintenance
6.4.1 Time-space alignment . . . . . . . . . . . . . . . .
6.4.2 Map correction . . . . . . . . . . . . . . . . . . . .
Experiments . . . . . . . . . . . . . . . . . . . . . . . . . .
Conclusions and future work . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
103
104
105
107
108
109
110
110
111
114
117
7.4
7.5
7.6
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Context-aware multi-agent framework for heterogeneous domains
7.2.1 Multi-agent architecture . . . . . . . . . . . . . . . . . .
BDI model . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.3.1 Beliefs . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.3.2 Desires . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.3.3 Intentions . . . . . . . . . . . . . . . . . . . . . . . . .
Gaia methodology . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.1 Analysis phase . . . . . . . . . . . . . . . . . . . . . . .
Analysis and design using Gaia methodology . . . . . . . . . . .
7.5.1 The environmental model . . . . . . . . . . . . . . . . .
7.5.2 The organization structure . . . . . . . . . . . . . . . . .
7.5.3 Role model . . . . . . . . . . . . . . . . . . . . . . . . .
7.5.4 Interaction model . . . . . . . . . . . . . . . . . . . . .
7.5.5 Organizational rules . . . . . . . . . . . . . . . . . . . .
7.5.6 Agent model . . . . . . . . . . . . . . . . . . . . . . . .
7.5.7 Service model . . . . . . . . . . . . . . . . . . . . . . .
Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
117
118
119
120
121
121
122
122
122
123
124
124
124
125
126
126
126
126
xii
8.
131
8.3
8.4
8.5
8.6
8.7
9.
Introduction . . . . . . . . . . . .
Background technology . . . . . .
8.2.1 Context models . . . . .
8.2.2 Context reasoning . . . .
Smart space infrastructure . . . .
Context-aware service platform . .
8.4.1 Context-awarereasoning .
8.4.2 Service planning . . . . .
8.4.3 Context knowledge base .
Demonstration scenario . . . . . .
8.5.1 Context-aware reasoning
8.5.2 Service planning . . . . .
Related work . . . . . . . . . . .
Conclusion . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
131
132
132
133
134
136
137
138
139
141
142
143
145
146
147
9.3
9.4
9.5
9.6
10.
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Problem domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2.1 Electricity generation units . . . . . . . . . . . . . . . . . .
9.2.2 Knowledge engineering . . . . . . . . . . . . . . . . . . . .
Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.3.1 Agent programming paradigm . . . . . . . . . . . . . . . .
9.3.2 Intelligent Power Plant engineer Assistant MAS (IPPAMAS)
Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.1 Data mining . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4.2 Multi-agent system . . . . . . . . . . . . . . . . . . . . . .
9.4.3 Wireless transmission . . . . . . . . . . . . . . . . . . . . .
9.4.4 Profiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.5.1 MAS performance . . . . . . . . . . . . . . . . . . . . . . .
9.5.2 User evaluation . . . . . . . . . . . . . . . . . . . . . . . .
Concluding remarks and future enhancements . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
147
148
148
149
150
150
151
157
157
157
158
159
159
159
160
161
163
Introduction . . . . . . . . . . . . . . . . . . . . . . . .
Related work . . . . . . . . . . . . . . . . . . . . . . .
10.2.1 Multi-agent systems based learning technologies
10.2.2 The mobile device . . . . . . . . . . . . . . . .
10.2.3 Modular education at UCD . . . . . . . . . . .
10.2.4 Learning styles . . . . . . . . . . . . . . . . . .
10.2.5 Teaching strategies . . . . . . . . . . . . . . .
10.2.6 Evaluation techniques . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
163
164
164
167
169
170
170
170
Contents
10.3
10.4
10.5
10.6
xiii
Bibliography
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
171
172
173
173
174
174
174
175
177
177
178
179
180
181
183
Chapter 1
Abstract
Agent-based ubiquitous computing environments have many sources of complexity. One of the most
important is derived from the high number of agents which must survive in such kind of system.
In systems with a high population of agents, conflicts are very frequent. Thus, there is a need for
highly efficient techniques to solve conflictive situations, when they are produced. In this chapter, we
propose an approach based on argumentation to solve authorization conflicts. Authorization decisions
are taken with authorization policies and conflicts are solved by the agent themselves by arguing.
Keywords: Pervasive environments, argumentation, conflicts, authorization policies
1.1 Introduction
In pervasive environments, one of the main concerns must be to enable effective coordination mechanisms for devices, services, applications and users [Perich et al. (2004)]. Due to the high number of
potential communicating entities in the system, situations in which a drop of productivity may occur
are highly probable. More specifically, these situations are produced because of different conflicts
among entities. In consequence, this kind of systems must be prepared for dealing with conflicts.
Conflicts may arise in coordination tasks within Multi-Agent Systems (MAS), because of conflicting
goals or beliefs. When there is a conflict of this type, the mechanism for settling on it goes through
a negotiation process. Think, for example, on a ubiquitous system which is in charge of managing a
building with many offices and humans. The latter are considered as users of the system by means
of hand held devices, smart phones or any laptop or PC, which are connected to the applications and
services of the building by using the network. When the system is based on autonomous agents, they
probably have a partial and imprecise vision of the world they live in. If, for example, an emergency
situation is produced due to a fire in the building, the autonomous agents could be responsible of deciding how to manage security of the building (e.g. avoid access to persons into unauthorized places)
E. Mangina et al., Agent-Based Ubiquitous Computing, Atlantis Ambient and Pervasive Intelligence 1,
DOI 10.1007/978-94-91216-31-2_1, 2009 Atlantis Press/World Scientific
001
and, at the same time, allowing a quick and effective evacuation. It might be the case that a user needs
to get out of the building through a corridor which has a forbidden access status with respect to that
user. How to proceed in this case to preserve the integrity of the workers in the building?
Traditional mechanisms dealing with such problems are focused on avoiding conflict occurrence,
as for example social laws [Shohama and Tennenholtz (1995)], coordination through cooperation
when agents are benevolent [Lesser (1999)] and truth maintenance systems [Doyle (1979)], among
the most relevant. Social laws are difficult to implement in rather simple environments and they
seem to be non-applicable in complex environments like those of pervasive systems. Cooperation
implies the assumption of benevolent agents. However, since MAS in pervasive scenarios are open
systems, some agents could have private interests, and even being willing to cooperate, they will pursue their own goals. Hence, it seems hard to define a dynamic cooperation plan needed here. Truth
maintenance systems try to explain why conflicts happen by registering the reasons that derive the
conflicting conclusions, but they are not able to reason about the conflict itself, i.e., the sources of the
conflict are not taken into consideration. On the other hand, negotiation processes [Rosenschein and
Zlotkin (1994)] have shown to be useful in pervasive systems to enable effective coordination once
conflicts have appeared. This kind of negotiation is based on self-interested agents, as a pervasive
system, in its general sense, is an open system where agents may not be willing to cooperate for
anything. In this approach, conflicts are taken as unavoidable; therefore some methods are needed
to solve them. Argumentation-based negotiation processes [Parsons et al. (1998)] are a set of specific techniques that relies on argumentative theories in order to solve conflicts, by extending the
negotiation proposals with the reasons or foundations associated to each proposal.
Argumentation deals with several fields in knowledge engineering [Carbogim et al. (2000)]. One
of the outcomes in this extensive line of work is an abstract and generic framework for reasoning
under incomplete and inconsistent information [Prakken and Sartor (1996)]. In this paper, such a
generic framework has been instantiated using the Semantic Web [Berners-Lee et al. (2001)] information representation approach, i.e. OWL ontologies. As a result, all the knowledge managed in the
pervasive system, including arguments and rules themselves, is represented by means of Semantic
Web ontologies. Hence, we are focusing on an innovative research line that is focused on automatically creating and attacking arguments during the argumentation process.
The main goal of this chapter consists of taking the first steps in combining an argumentation
system to solve beliefs conflicts in pervasive environments. As a result, the argumentative approach
is introduced in ubiquitous computing systems as a manner to solve the different types of conflicts that
are found among autonomous entities. The normal security procedures of most working environments
such as the one mentioned above are managed by a policy-based framework. In this kind of systems,
policies are used by the pervasive infrastructure to authorize software entities to perform critical
actions, which directly influence the security of workers when there is an emergency situation. These
policies have the form of if-then rules and are manually defined by the system administrator.
The rest of the chapter is structured as follows. Section 1.2 introduces the kind of conflicts
that could be found in the context of distributed systems management through rule-based policies,
more specifically through authorization policies. Section 1.3 is devoted to give some notions of
argumentation theory, at a basic level. In section 1.4, the use of the argumentative approach in
ubiquitous computing systems is illustrated with a concrete example. Section 8.6 describes some of
the most relevant works related with the ideas presented in this chapter. Finally, section 5.3.6 includes
most important conclusions extracted from the light of this chapter and the future work.
account to evaluate the rules or not. In the first case, the conflicts obtained are called semantic
conflicts, because they are generated by using information related to the current state of the system.
They are really difficult to detect, and their appearance is conditioned to the dynamic state of the
application domain. In the second case, we have syntactic conflicts as they can be detected by simply
looking at the rule structure. This type of conflict occurs irrespective of the state of the particular
application domain and may be the result of specification errors in the policy. However, they may
also be legitimately derived from other rules.
Focusing on authorization policies, modality conflicts are the only syntactic conflicts that can be
detected from the rule syntax that defines these policies. Modality conflicts occur when a subject is
both authorized and forbidden for the same activities on a target. Recalling the building scenario, an
example of this type of conflict is observed when two different policies about a user (or role) forbid
and permit her to enter a specific room at the same time.
On the other hand, there are different types of semantic conflicts in authorization policies:
Conflict of Duties. This conflict is a failure to ensure separation of duties. The duties in this case
are privileges on the same resource that are defined as conflicting according to the semantics of
the application domain. A example is observed when an agent is authorized to sound and disable
the same alarm. It should be noted that the conflict does not exist if the alarm that should be
sounded is not the same as the one that should be disabled.
Conflict of Interests. A conflict of interests occurs because a subject has multiple interests that
it must service, i.e. conflicting responsibilities. Such a conflict can arise as a result of various
roles being assigned to the agent with conflicting responsibilities. A example is observed when
an agent is authorized to sound the fire alarm and to activate the flood alarm, but according to
the system general rules both privileges cannot be authorized to the same agent.
Conflict of Multiple Managers. It occurs when the goals of the two subjects are semantically
incompatible. A example is observed when an agent is authorized to sound the alarm and other
agent is authorized to disable the same alarm, and both privileges cannot occur at the same time.
Conflict of Self-Management. In this case, the subject has itself as target in the rule. Role
assignment leads to the situation in which an agent effectively spans two or more levels of the
authority hierarchy. A example is observed when an agent has the privilege to delegate privileges
to itself.
Syntactic conflicts can be analyzed by simply considering the policies. Modality conflicts can be
detected only from the syntax of the policy specification, by looking for inconsistencies. However,
semantic conflicts require a good understanding of the semantics of the system, which are represented
by system models. Successful detection of policy conflicts places a number of requirements on the
description of the system.
the environment, themselves and the rest of agents. Hence, several scenarios in which different and
conflictive agents opinions about a concrete issue may exist.
Using a symbolic notation, the process of argumentation can be defined by means of the following
expression:
( , G)
where is a set of formulas representing the agents knowledge base (a.k.a. theory), the pair ( , G) is
called the argument, is a consequence relation operator, is a logical formula known as conclusion,
and G is the set of ground facts and rules from which is inferred, with G . Note that the specific
meaning of will depend on the underlaying logic and the type of inference employed. In this work,
the argument process is driven by deductive inference. As a result, is equivalent to the modus
ponens operator.
Example 1.1. Suppose that an agent owns this simple beliefs base: s = {a, a b, c}. Thus, this
agent could construct the following argument (c, {a, a b, b, b c}), which concludes c by means
of a ground fact, a, and two implications, a b and b c.
Hence, an argument consists of the conclusion of a reasoning process, and the track of the reasoning process from the initial knowledge base until the resulting conclusion. More formally, using
the notation proposed by Parson in [Parsons et al. (1998)], an argument is defined as follows.
Definition 1.1 (Argument). An argument for a formula is a pair ( , G) where G is a set of grounds
for . Consequently, a set of grounds G for is an ordered set s1 , . . . , sn such that the following
three conditions hold
(1) sn = n dn , where dn is the rule or axiom applied in the n-th step to deduce from n ; and
(2) every si , i < n, is either a formula from i or si = i di i ; and
(3) every p j i is either an assumed formula in the knowledge base of the entity or deduced,
k , k < i.
Every si is called a step in the argument. Observe that the axiom dn associated to corresponds
to the modus ponens (mp) operator for all the arguments defined in this work, as it has previously
been explained.
Example 1.2. Applying definition 1.1, the argument of the example 1.1 will be
(c, s1 , s2 ),
where
s1 = {a, a b} mp b,
s2 = {b, b c} mp c.
Since the consequence relation axiom (dn ) in this approach is determined to be the mp operator, it will be omitted henceforth in order to simplify the expressions. When an agent generates a
conclusion which expresses some beliefs about the environment, other agents sharing the same application domain may then propose arguments supporting that formula or contradicting the whole or
a part of it. There are systems which support contradictory beliefs about particular pieces of the application domain. Examples of such systems may be found in paraconsistent logics [Priest (2002)].
However, in many real life applications, reaching an agreement about conflictive beliefs by all the
agents involved in the system is needed. And that is when an argumentation process comes into play.
Basically, all agents with conflicting beliefs must show their own arguments about those beliefs and
commonly determine which one should be accepted for all.
One widely recognized approach to reach such an agreement is based on establishing a measure
of the strength of all the exposed arguments and accept the strongest one. This is precisely the
approach followed in [Parsons et al. (1998)]. In that work, the authors distinguish between several
kinds of arguments and different argument strengths. Regarding argument definition, they are divided
into two basic types: Tautology and non-trivial.
Definition 1.2 (Tautology). Any argument that is obtained by using any deductive mechanism but
formulae from a theory is a tautology. These arguments will not be present in conflicts because, in
principle, they can not be in contradiction. They are true in any application domain and any situation
(if considering only deductive inference, as in this case).
Definition 1.3 (Non-trivial argument). Any argument that is obtained by using any deductive
mechanism from the theory and that does not contain any contradiction in it is a non-trivial argument.
Tautologies are also known as axioms, and they express universal statements that are accepted
a priori. On the other hand, the most general class of non-trivial arguments are generated from the
ground facts and rules that belong to the domain, with the condition that the steps si that form the
argument can not be contradicted among them.
Example 1.3. Argument UT = (a (a b), s1 ), where s1 = {} A2 a (a b)1 is a tautology,
since it only uses a deductive axiom. Instead, the argument in the example 1.2 is a non-trivial
argument, using facts and implications from s . Finally, the argument Utrivial = (d, s1 ) where
s1 = {d, d d} d can not be classified as tautology neither as non-trivial, because of s1 contradicts itself.
Before moving into argument classification, it is necessary to explain the attacks that can be
made to an argument. Basically, there are two types of attack over an argument U: Rebut, when
the conclusion of an argument T is in conflict with Us conclusion; and undercut, when the T s
conclusion is in conflict with any Us partial conclusion (from steps si ).
Definition 1.4 (Rebut). An argument T = ( , F) rebuts an argument U = ( , G) iff the pair of conclusions ( , ) is in conflict. The most intuitive conflict in propositional logic is . Other more
complex conflict can be defined depending on the semantic of the application domain (see section
1.2).
Definition 1.5 (Undercut). An argument T = ( , F) undercuts an argument U = ( , G) iff any pair
of conclusions ( , i ) is in conflict, where i are the partial conclusions from each si , i = 1..n 1
such as si G.
Note that the rebutting attack is symmetric, i.e., if argument T rebuts U, then U also rebuts T .
This characteristic does not hold in the undercutting attack.
Example 1.4. Suppose two different agents, Ag1 , Ag2 . Suppose that agent Ag1 has the following
Ag1 = {a, a b, b c} as its beliefs base. Moreover, let suppose that Ag1 builds the following
argument (please, note that, for the sake of readability, we will use the notation si, j to express the j-th
step in the argument i-th):
1 Where
U1 = (c, s1,1 , s1,2 ),
s1,1 = {a, a b} b
s1,2 = {b, b c} c
This argument is non-trivial. Now, suppose that another Ag2 appears with Ag2 = {a, a d, d
c, a e, e b} and it builds the following argument:
U2 = {b, s2,1 , s2,2 },
s2,1 = {a, a e} e
s2,2 = {e, e b} b
Clearly, U2 undercuts U1 since the conclusion of the former, b, attacks step s1,2 of U1 . Finally,
suppose that Ag2 builds another argument U3 :
U3 = {c, s3,1 , s3,2 },
s3,1 = {a, a d} d
s3,2 = {d, d c} c
In this case, U3 rebuts U1 , because of both conclusions are contradictories, (c, c).
The argument classification mechanism is based on classes of acceptability following the definitions 1.2-1.5. This mechanism is important since it provides entities with a way of deciding how
to react to the incoming of a new argument, by relating them to its owns arguments and knowledge.
There are five classes ordered according to increasing acceptability or argument strength.
Definition 1.6 (Argument strength). The acceptability of any argument can be divided into classes
A1 A5 depending on its strength:
A1 is the class of all arguments that may be generated from .
A2 is the class of all consistent (non-trivial) arguments that may be generated from .
A3 is the class of all arguments that may be generated from and that could be undercut but not
rebutted with other arguments from .
A4 is the class of all arguments that may be made from and that could neither be undercut nor
rebutted with other arguments from .
A5 is the class of all tautological arguments that may be made from .
Thus, the more an argument is classified in higher class, the more acceptable it is because is
less questionable. For example, if most of the arguments for a proposal are in level A4 and the
arguments against do not reach A3 , an entity will accept that proposal. Obviously, each entity sets an
acceptability class to an argument depending on its own knowledge.
Example 1.5 (Continuing from example 1.4). Before receiving arguments from Ag2 , agent Ag1
will internally classify U1 as an A4 argument, because it is a non-trivial argument and has got no argument attacking it. Consequently, providing that Ag2 communicates U2 , Ag1 will class the argument
U1 in A3 , while U2 would be classified into A4 level (U2 undercuts U1 ). Therefore, Ag1 will have to
choose U2 argument as the more acceptable. Finally, when Ag1 receives U3 , it would set both U3 and
U1 into the A2 class, because they rebut each other.
If several arguments are ranked in the same level, an agent will prefer its own arguments, supposing the rationality of the agent. It could be necessary to determine whether the argumentation
process is resoluble or not, that is to say, if an agent is able to generate an argument that dominates
the rest. To this end, a persuasion dialogue needs to be defined, in which a set of protocols is defined
to control what utterances can be used each time and when they are allowed to be divulged (i.e., under
which conditions they are appropriated). Furthermore, they regulate the utterances effects (i.e., what
changes represent in the entitys internal model), identify the end of the dialogue and establish what
the outcomes of the dialog are (i.e, which argument is the most acceptable). Discussion about this
topic is beyond the scope of this chapter, but the interested reader is referred to [Prakken (2006)] for
an excellent review on persuasion dialogues.
(;,7
(;,7
$JHQW5RRP
)LUH
$ODUP
)LUH
'RRU$
$JHQW)ORRU
-RKQ
Fig. 1.1
3UHVHQFH
'HWHFWRU
Suppose the scenario in Figure 1.1. It represents a concrete part of a floor within a building.
It has two main spaces: a corridor, from the bottom to the right, and a room. Observe that there
are two sensors, one of presence and another one which detects possible fire situations. The area of
responsibility of the two controller agents in the floor is also represented. AgentRoom is in charge
of controlling the security of the room, AdministrationRoom, through Door A because there are
critical equipments there, and AgentFloor is in charge of monitoring the whole set of sensors in the
floor. Finally, there is a user, John, located at the corridor, identified by a RFID label, and detected
by AgentFloor thanks to the presence sensor. Suddenly, a situation of emergency occurs: the floor
is on fire. Thus, when AgentFloor detects the fire through the corresponding sensor, it activates
an evacuation procedure by means of visual panels distributed throughout the building. The problem
arises when John needs to go out, due to the fact that the only authorized way he can take, the corridor,
is on fire. The room is an alternative exit, however it is locked as John is not authorized to enter.
With the aim of modeling this particular scenario and the concepts related to authorization, the
agents make use of Semantic Web ontologies [Berners-Lee et al. (2001)]. In particular, this work
reuses part of the CIM (Common Information Model) information model. This model is a specification of the elements of interest in a distributed system for management. It is a standard of the DMTF
(Distributed Management Task Force). We have redefined this model in order to use it in a Semantic
Web based framework (i.e. by using OWL [Smith et al. (2004)] and SWRL [Garcia-Clemente et al.
(2005)]). A partial view of the CIM ontology that describes the application domain can be seen in
figure 1.2. Main relations here (i.e. they are seen as predicates afterward) are AuthorizedSubject
0DQDJHG(OHPHQW
0HPEHU2I&ROOHFWLRQ
$XWKRUL]HG6XEMHFW
$XWKRUL]HG7DUJHW
3URFHVV,QGLFDWLRQ
,GHQWLW\&RQWH[W
&ROOHFWLRQ
5ROH
3ULYLOHJH
,GHQWLW\
'RRU
$XWKRUL]HG3ULYLOHJH
$OHUW,QGLFDWLRQ
Fig. 1.2 Partial view of the CIM ontology used by the agents to model the scenario
and AuthorizedTarget, which refer to the entity or person which is authorized to do something,
and the entity over which the authorized person will perform the authorized action, respectively (for
more information on this topic, please see [Martinez et al. (2006)]). Elements of this ontology will
be used in the rest of the section as part of the example.
In order to exchange arguments, the agents use the persuasive dialogue framework described
in [Amgoud and Parsons (2002)]. Particularly, the agents employ the utterances assert(U) and
accept(U), where U is an argument, to express a tentative argument that has locally been derived,
and to accept it, respectively. Moreover, the utterance request(U) allows an agent to ask for the
performance of some action that satisfies the intention expressed in U.
Next, the development of the proposed scenario follows. Suppose that both AgentFloor and
AgentRoom are BDI agents, and that AgentFloor owns the following beliefs:
AF = {type(DoorA, Door),type(John, Identity), IdentityContext(John, DoorA),
type(Open, AuthorizedPrivilege),type(Student, Role), MemberO fCollection(John, Student),
type(FireAlarm, AlertIndication), ProbableCause(FireAlarm, FireDetected )}
Thus, AgentFloor believes that student John is near Door A (represented by the IdentityContext
relation) and also that a fire has been detected in the floor. Moreover, AgentFloor uses the following
rule Open Door:
Open Door : type(?x, Identity),type(?d, Door), IdentityContext(?x, ?d)]
Note that the rule Open Door is utilized in the argumentation step s1,1 . Although it is only
indicated by its name, the complete definition of the rule is actually contained in the argument (analogously for the rest of the rules in the arguments below). Since AgentFloor knows that there is an
emergency situation on the floor, its argumentation is sent to all nearby agents to make them awareness of the obligation of opening Door A, by means of the communicative act assert(U1 ). Therefore,
argument U1 is received by AgentRoom and then added to its knowledge base. On the other hand,
AgentRoom has the following beliefs:
AR = {type(DoorA, Door),type(John, Identity), IdentityContext(John, DoorA),
type(Open, AuthorizedPrivilege),type(Student, Role),type(Admin, Role),
MemberO fCollection(John, Student)}
and the rules Rest Door and Auth Door:
Rest Door :
Auth Door :
meaning that students are not authorized to open DoorA (rule Rest Door), since the room that it
opens into is a restricted room, only to be used by administrators (rule Auth Door). Consequently,
AgentRoom manages to bring up an argument that denies opening the door:
U2 = {[AuthorizedTarget(Open, DoorA), AuthorizedSub ject(Open, John)], s2,1 },
where
s2,1 = [{type(John, Identity), MemberO fCollection(John, Student),type(DoorA, Door),
IdentityContext(John, DoorA), Rest Door}
AuthorizedTarget(Open, DoorA), AuthorizedSub ject(Open, John)
From definition 1.4, both arguments rebut each other, therefore AgentRoom classifies them into
level A2 , and rationally an agent prefers its own arguments against others arguments. Hence,
AgentRoom will not open DoorA. Afterward, AgentRoom will send its argument with assert(U2 )
to AgentFloor, and then the latter will classify both arguments in the same manner. At this point,
a conflictive situation has been reached, in which AgentFloor forces John to pass the door, and
AgentRoom does not authorize him to do that action, keeping the door closed.
The simple approach of using different classes of arguments given in definition 1.6 does not
suffice for solving the conflict posed here by arguments U1 and U2 . However, argumentation can be
seen inside or as part of a negotiation process in which agents make offers (i.e. AgentFloor sends
U1 to AgentRoom), and the critics to the offers (i.e. AgentRoom) sends their counterarguments to the
proponent (argument U2 ).
10
11
theory that is mainly concerned with the acceptability of the arguments. His approach is based on
a special form of logic programming with negation as failure, where the attacking relation of arguments is defined using a non-monotonic inference process to derive the fact p from failure to derive
p. However, attack of one argument on another is assumed to succeed. This is not always applicable: sometimes it is needed to decide which argument is more acceptable according to different
parameters. Contrarily, Kakas[Kakas and Moraitis (2003)] uses a framework of logic programming
without negation as failure, thus the attacking relation is realized through monotonic proofs of contrary conclusions and a priority relation on the sentences of the theory that make up these proofs. Our
line is more aligned to the latter, since the priority relations can be dynamically changed in order to
adapt the agents behavior to the changing environments. In [Prakken and Sartor (1996)], a framework for assessing conflicting arguments is presented. In this case, negation could be both weak and
explicit. Arguments that contain weak negation are said to be defeasible, as they can be defeated by
other arguments attacking this type of negation. Conflicts between arguments are resolved according to priorities on the rules. Priorities themselves are derived as argumentative conclusions, thus
they are also defeasible, what in turn means that are not fixed. Arguments are justified dialectically,
i.e., through a dialogue between a proponent and an opponent. We also work in this line, adding
a clearer structure to the arguments. Another interesting framework of dialogue is [Amgoud and
Parsons (2002)], where the agents preferences are taken into account in the argumentation process.
1.7 Acknowledgments
This work has been supported by the Spanish Ministerio de Ciencia e Innovacion (MICINN) under
the grant AP2006-4154 in frames of the FPU Program. Thanks also to the Funding Program for Re-
12
search Groups of Excellence granted as well by the Seneca Foundation with code 04552/GERM/06.
Finally, we also acknowledge the Spanish Ministry of Education and Science through the Research
Project TIN-2005-08501-C03-02.
Chapter 2
Abstract
Human-Robot Interaction poses significant research challenges. Recent research suggests that personalisation and individualisation are key factors for establishing lifelong human-robot relationships.
This raises difficulties as roboticists seek to incorporate robots into the digital society where an increasing amount of human activities relies on digital technologies and ubiquitous infrastructures. In
essence, a robot may be perceived as either an embedded or mobile artefact in an arbitrary environment that must be interacted with in a seamless and intuitive fashion. This chapter explores some of
the alternative ways and the design issues to achieve these objectives. Specifically, it describes a new
system, which we call Mixed Reality Agent (MiRA) Chameleon, that combines the latest advancements on agent-based ubiquitous architectures with mixed reality technology to deliver personalised
and ubiquitous robot agents.
2.1 Introduction
The diffusion of robotic platforms into our daily lives involves many new design challenges. The
fact that we are all individuals influences our expectations and design requirements for those tools
and systems with which we interact. Robots are no different in this respect. They need to operate
in our daily life environments, such as hospitals, exhibitions and museums, welfare facilities and
households. Not only will these robots have to deal with various complicated tasks, but they are
also expected to behave in a socially intelligent and individualised manner to meet the diverse requirements of each user [Dautenhahn (1998)]. For these reasons, personalised, custom-made robotic
design is one of the technology strategies advocated by the Japan Robot Association (JARA) for
creating a Robot Society in the 21st Century [JARA (2008)].
The other challenge faced by todays roboticists is the integration of robots into digital society,
as an ever-growing amount of human activities relies on digital technology. Trends such as inexpensive internet access and the diffusion of wireless computing devices have made ubiquitous or
E. Mangina et al., Agent-Based Ubiquitous Computing, Atlantis Ambient and Pervasive Intelligence 1,
DOI 10.1007/978-94-91216-31-2_2, 2009 Atlantis Press/World Scientific
13
14
pervasive computing a practical reality that augments the normal physical environment and supports
the delivery of services to human users anytime and anywhere. Endowing these ubiquitous devices
with intelligent behaviour, and thus creating intelligent environments, is termed Ambient Intelligence
(AmI) [Aarts (2004)].
However, while many robotic initiatives now share the thesis that robots are a compelling instance of those artefacts which comprise and deliver the ambient space, reconciling the personalization/social aspect with pervasiveness and ubiquity - e.g. through the integration with existing
ubiquitous infrastructures - still remains a largely unexplored area of research. On both fronts, user
interface agents, e.g. acting as virtual assistants to their user, have been already widely adopted as
intelligent, adaptive social interfaces to the digital world, e.g. in form of virtual characters interacting
with the user via PCs, PDAs, and the Internet. As such, the experience accumulated it these applicative domains may be purposefully used to inform robotics research. While in the past, software
agents and robots have usually been attributed to distinct domains, software and hardware respectively, the modern conception is, in fact, to consider them as particular instances of the same notion
of agent - an autonomous entity capable of reactive and pro-active behaviour in the environment it
inhabits.
In addition, one of the foremost aids to the design of both modern robot and ubiquitous/pervasive
systems comes from the developments in agent-oriented software engineering (AOSE). AOSE promotes the designing and the developing of applications in terms of multiple autonomous software
agents for their characteristic ability of delivering context-sensitive, adaptive solutions. As such,
multiagent techniques, related software engineering methodologies, and development tools are natural candidates for the implementation of these systems.
The work described in this paper is representative of the of the kind of multi-disciplinary effort characterising todays agent research. This paper describes the MiRA (Mixed Reality Agent)
Chameleons project (Figure 2.1), which leverage on past experiences and agent-related technologies
to build socially competent robot agents by combining physical robotic bodies with virtual characters
displayed via Mixed Reality (MR) visualization. Through such an innovative integration approach,
a MiRA Chameleon exhibits tangible physical presence while offering rich expressional capabilities
and personalisation features that are complex and expensive to realise with pure hardware-based solutions. Crucially, thanks to its AOSE methodology, it also promises to maintain all the expressivity of
the MR medium without loosing the tremendous opportunities for ubiquity and adaptation associated
with its virtual component.
Fig. 2.1 Live demonstration of MiRA Chameleons at the UCD Open Day, December 2007 (actual images displayed in the users head mounted display during live experiments and user trials with our application).
15
Before proceeding with the rest of the paper, though, it is necessary to reflect further on the
intelligent agent paradigm.
16
The result is that, despite technical and methodological differences between dealing with robotic
and software/virtual domains, today a large number of issues behind the construction of successful
social agents cross the boundaries of agent species.
What distinguishes all the research in socially intelligent agents is the emphasis given to the role
of the human as a social interaction partner of artificial agents and, subsequently, to the relevance
attributed to aspects of human-style social intelligence in informing and shaping such interactions.
The consensus in social agent research is that effective human-agent interaction greatly leverages the
instauration of a human-style social relationship between human and agent.
Effective social interaction ultimately depends upon the recognition of other points of view and
the understanding of their intentions and emotions [Dautenhahn (1997)]. Humans convey this information through explicit communication (natural language) as well as an array of non-verbal
cues [Kidd and Breazeal (2005)], such as tactile interaction, postures, gestures, and facial expressions. The latter are used both to convey emotions and also as social signals of intent, e.g. for
regulating the flow of dialogue, while gestures are commonly used to clarify speech. Deictic spatial
gestures (e.g. gaze, pointing), in particular, can compactly convey geometric information (e.g. location, direction) while also being a major component of joint visual attention between humans [Kidd
and Breazeal (2005)].
17
the social interaction aspect. In particular, iCat can communicate information encoded in coloured
light throgh multi-color LEDs in its feet and ears, speak natural language, and also use facial expression to give emotional feedback to the user. One of the key research questions investigated within
this project is to find out whether these expressions and capabilities can be organised to give the robot
a personality, and which type of personality would be most appropriate during interaction with users.
These studies have shown that mechanically-rendered emotions and behaviours can have a significant effect on the way users perceive and interact with robots. Moreover, they have also shown
that users prefer to interact with a socially intelligent robot for a range of applications, compared to
more conventional interaction means.
18
viewing the data (e.g. sensor data such as sonar and laser scans) in context with the real world, the
developer is able to compare the robots world view against the ground truth of the real world image thus promoting a better understanding and consequent evaluation of the inner workings of
the robot control system. As such, AR/MR visualisation can also be used as natural complement of
hardware in the loop simulations.
Stilman et al. [Stilman et al. (2005)], for example, instrumented a laboratory space with a motion
capture system that tracks retro-reflective markers on robot bodies and heads and other objects such
as chairs and tables. By combining this ground truth with virtual artefacts, such as simulated robots
or simulated objects, a hybrid real/virtual space is constructed that can be used to support simulated
sensing. Through HMDs, researchers can visualise real or simulated robots during walking tests
among both real and virtual obstacles. In addition, they can also avail of virtual artefacts, such as the
visualisation of the robots intended footsteps on the floor, to aid their judgment of the robots sensing
and path planning capabilities.
These applications are often realised with mobile AR systems [Feiner et al. (1997)], which enable
the combination of AR immersive visualisation and user mobility. Compared to stationary computer
systems, portable solutions enable human operators to gain an understanding and evaluate the state
and the intentions of a robot system while moving around in the same environment that the robot is
operating in.
Giesler [Giesler et al. (2004)] developed a mobile AR system for control of an autonomous
mobile platform. The system combines robot self-localisation with the localisation of the HMDwearing user in the same frame of reference. The position and orientation of the users HMD is
found by means of multiple fiducials distributed in the working area, which are then recognised and
tracked through the ARToolkit software library [Kato and Billinghurst (1999)]. The user is also
equipped with a cursor, in the form of a pen terminating in a cube formed by ARToolkit fiducials.
Since the orientation of the cube is visible from every angle, the user can point to imaginary spots
on the floor, just like moving a mouse on a desktop computer. Gieslers application enables the
rapid prototyping and manipulation of topological maps that are interactively defined in the working
environment. Consequently, the user can instruct the robot with commands such as go to this node.
Finally, Daily et al. [Daily et al. (2003)]. describe an AR system for enhancing HRI with robotic
swarms, e.g. in search and rescue scenarios. Their system is highly specialised toward a very interesting but narrow class of applications (search and rescue) as the particular solution adopted for tracking
and data communication (optic-based with no networking) suffers of obvious bandwidth limitations.
However, their application is very interesting as it shows how AR can enhance the robots interaction
capabilities in this case by allowing each robot in the swarm to point to the direction of the victim
without the need of a physical component (e.g. an arm).
19
ural candidates for maintaining the connection with the user through his daily activities [Barakonyi
et al. (2004)].
However, to date, there are not many examples of virtual characters being used in these applications. The few projects that do [Gutierrez et al. (2003)] suffer of limitations that are inherent in their
screen-based representation. It is not possible for the agents to leave the screen and wander freely
or to interact with physical objects in the real world. In such a context, and with the divide between
their 2D screen embodiment and the 3D physical world, it is also more difficult for them to attract and
engage the user. For example, they cannot effectively point (or look) in a 3D physical surrounding.
Hence, a different, and more popular, approach is to enable virtual agents to share the same 3D space
as humans by employing immersive user interfaces.
The easiest implementations of such systems employ table-top AR platforms, such as Magicbook [Billinghurst et al. (2001)] and TARBoard [Lee et al. (2005)], in which the users HMD pose is
tracked only within a limited range. Other applications are instead confronted with mobile AR systems. Notable implementations include pervasive game environments, such as ARQuake [Thomas
et al. (2000)] or AquaGuantlet [Tamura et al. (2001)], both of which enable multiple players to fight
against virtual enemies added to the real environment through AR visualisation.
In both table-top and mobile AR settings, users can interact with virtual conversational agents,
through speech or tangible user interfaces, e.g. by manipulating objects whose 3D pose is also
tracked. These systems constitute suitable frameworks for investigating face-to-face human-agent
social interaction. The conversational agent Welbo [Anabuki et al. (2000)], for example, is an interface agent that guides, helps, and serves the users in an MR Living Room where the users can
visually simulate the location of virtual furniture. Pedagogical Embodied Conversational Agents
(PECA) [Doswell (2005)] are similar virtual agents that apply proven pedagogical techniques to interact with human learners in various learning scenarios, including outdoor student tours of historical
buildings.
For this purpose, an increasing number of these systems are employing sophisticated agent control architectures. In particular, the Nexus [OHare et al. (2004)] and the UbiAgent [Barakonyi et al.
(2004)] frameworks demonstrate how virtual agents equipped with BDI (Belief, Desire, Intention)
control systems can provide the reasoning apparatus for creating believable characters that are responsive to modifications and stimuli in their environment, but are also proactive and goal-oriented.
Both systems demonstrate the capabilities of creating applications (e.g. supporting collaborative scenarios) with multiple virtual agents and multiple users, where virtual agents posses a high degree of
autonomy and can watch the MR space, in particular by sensing each others relative positions as well
as the movements of other physical objects. In addition to position-tracking devices, these systems
may also employ other sensors, such as light and temperature sensors for gathering information about
the physical environment in which they are visualized.
2.4.1 Discussion
The review reported in the last two sections helps to highlight a convergence between some of the
agent applications produced in both the robotic and virtual domain. From the virtual domain, ubiquitous agents such as in UbiAgent [Barakonyi et al. (2004)] and Nexus [OHare et al. (2004)] (see
Section 2.4) help virtual characters escape purely virtual environments and socially engage humans in
their physical environments, especially when they employ MR technology. From the robotic domain,
ubiquitous robots and augmented HRI systems (with or without AR visualisation) are motivated by
the difficulty of creating autonomous robot agents that sense and act in the physical world.
Independently from the genre, either robotic or virtual, the construction of agents operating in
the ubiquitous space offers some characteristic engineering challenges. For example, their effectiveness requires a geometric correspondence between virtual and real elements of the ubiquitous space,
20
which can usually be obtained by employing dedicated localisation mechanisms. Notably, however,
geometric correspondence represents only a basic requirement in these types of applications. The
hybrid model constructed within the hybrid simulation system [Stilman et al. (2005)] reviewed in
the previous section is a good example of ubiquitous space that can be thought as the result of the
superimposition of two sub-spaces, namely: the real and the virtual sub-space. A more sophisticated
system that allows for scenarios involving tactile interaction would necessarily pose the additional
constraint of physical realism (e.g. impenetrability, gravity, etc.), in order to recreate the same robotenvironment dynamic of real experiments.
On the other hand, in order to be employable as effective social characters in real environments,
virtual characters, in systems such as Nexus and UbiAgent, need to perceive not only the position
(for gaze behaviour [Wagner et al. (2006)] [Prendingera et al. (2004)] and the placement of the
virtual agent [Anabuki et al. (2000)]) but also the state of the humans they interact with [Klein et al.
(1999)], e.g. their moods, given, for example, by the state of the conversation and their gestures.
Since these agents, in contrast to robots, lack a physical body they need to cooperate with a ubiquitous
infrastructure, e.g. wireless sensor networks including cameras and localisation sensors deployed in
the environment where human-agent interaction takes place.
The source of most of the difficulties in engineering agent systems present in the ubiquitous
environment, compared, for example, to purely real or purely virtual scenarios, can be explained in
terms of agent embodiment, intended as the structural coupling between the agent and its environment
(see [Ziemke (2003)]). If we want to embody an agent in such an environment, its virtual and its
real sub-space need to be structurally coupled. If this consistency between the two sub-spaces is not
properly engineered, the agents interaction with one sub-space would not be affected by the actions
of the agent with the other sub-space, which will violate the requirement for structural coupling
between the agent and its environment.
The other issue to be resolved for embodying social interface agents into ubiquitous settings is to
decide the type of their embodiment. While a lot of studies that compare physical and virtual agents
credit the robot with better results in a lot of areas (e.g. credibility, social presence, social awareness,
enjoyment, engagement, persuasiveness, likeability), there are others that indicate that some of these
results could originate from the nature of the task investigated. For example, Yamamoto et al. [abd
K. Shinozawa et al. (2003)] have compared the influence of a robot and a virtual character on user
decisions in a recommendation task. They carried out identical tasks, once with virtual objects on
a computer screen and once with physical objects in the real world, and have found that the virtual
agent scores better in the virtual world and the physical agent scores better in the real world. These
experiments suggest that the nature of the task has a big influence on which type of embodiment is
appropriate for the agent.
While there are other works showing that an AR virtual character can be the medium to make
the user interact with the AR space, e.g. to move virtual furniture around the real room in Welbo, or
architectural 3D models in PECA, an AR character still lacks the capability to physically affect the
real world.
Consequently, an agent that wants to be truly ubiquitous and assist the user in both real and
virtual tasks needs to be able to assume both physical and virtual embodiment forms. But to maintain
an individualised and personal relationship, the agent has to also display the same persona/identity to
the user. A possible solution to this conundrum is the concept of dynamic embodiment which will be
explored in the next section.
21
the agent projects the same (or, at least, a recognisably similar) persona to the user. So what is really
needed is a form of dynamic embodiment, whereby the agent can change its embodiment form to fit
the task at hand.
Our idea of dynamic embodiment is closely related with the concepts expressed in the work of
Kaplan [Kaplan (2005)], in which he observes how it is often possible to separate a robot software
system from the robot hardware. Modern robot architectures (e.g. see [Dragone (2007)] for a review)
already adhere to the common software engineering practice of placing a middleware layer between
application and operating system. This middleware layer is mainly concerned with enabling access
to the systems hardware (e.g. through interfaces/drivers to sensors and actuators) and computational
resources, resolving heterogeneity and distribution and also automating much of the development of
new systems by providing common, re-usable functionalities.
While traditional robot middleware enable the rapid configuration of the software to support new
robot platforms or hardware layouts, these are essentially off-line integration features. Kaplans work,
instead, refers to the concept of agent migration, i.e. the ability to move the execution of software
agents across the network. Under this perspective, a robot can be considered as a software agent in
charge of a robotic platform.
Kaplan proposes to use the term teleportation to refer to migration between two identical bodies
(e.g. two different robots of the same model/composed of the same hardware components), and metamorphosis to refer to the transfer of a software agent migrating between two non-identical bodies (e.g.
a personal robot and a PDA). Using teleportation and metamorphosis, software agents controlling
robots can change their body in order to find the most appropriate form for any given situation/task.
Physical robots then become another observation point, from which software agents can follow the
user in his/her activities and movements.
This also increases the number of possible agent-user interaction scenarios, which can include
a variety of real world situated interaction, supporting, for example, applications in which the agent
needs to learn to adapt to the user. A notable example of mutation and metamorphosis in agent-based
ubiquitous robots is investigated within the Agent Chameleons project [Duffy et al. (2003); Martin
et al. (2005)], which will be considered shortly.
22
travel with the user, helping with flight connections and attending tasks such as filtering e-mails or
negotiating the transit of the user through the airport. Once at the hotel room, the agent may then
leave its computational environment by migrating from the users PDA to a computer in control of
a service robot that is gracefully provided by the (futuristic) hotel. With its new physical body, the
agent will then be able to continue assisting the user, this time by also using its physical capabilities.
Notably, this scenario is substantially different from the one in which the user is simply assigned a
service robot on his arrival at the hotel. In the scenario foreseen by the Agent Chameleons project, the
robot would effectively act as the users personal assistant. By having access to his personal data, the
robot would, for example, be able to serve the perfect coffee without having to query the user about
his preferences. Such results may be achieved with the personal assistant agent communicating the
necessary instructions to the robot. However, a solution based upon migration may be more efficient
and would also offer the advantage of not having to release private user details. In addition, an Agent
Chameleon goes a step further by making sure that the user knows that all the agents are a mutated
form of his personal assistant. For instance, the Agent Chameleon will use the same synthetic voice
or will display other characteristic personality traits that are independent from his specific bodily
form, thus preserving the advantages of the familiar relationships between the user and its assistant.
Experiments have been undertaken that demonstrate the concepts of teleportation, and mutation
of Agent Chameleons. Figure 2.2 illustrates the layers of the system architecture behind those experiments. At the base exists a middleware layer, interfacing with the specific environment inhabited by
the agent. This may consist either of an API toward the functionalities of a specific application, in
the case of the agent inhabiting a purely software environment, or of a hardware-control API, in the
case where the agent possesses a robotic body. Above this is the native Java Virtual Machine (JVM).
Beyond this resides the Java API and built on top of that is Agent Factory (AF) [OHare et al. (1998);
Collier (2001)], a multiagent programming toolkit developed in UCD.
Fig. 2.2
2.5.2 Discussion
The implementation of agent mutation in the demonstrative system realised within the Agent
Chameleons project is limited in several aspects. First of all, it relies upon an existing isomorphism between the entities involved in the mutation, namely the software agents, the robots and their
23
respective environments (simulated vs. real). Second, both systems are kept very simple by using
miniature Kephera robots for table-top experiments. As a result, mutation can be simply achieved by
migrating the agent in charge of the simulated robot from the simulator to the real robotic platform.
Even within such constraints, the main problem of this type of mutation is that the agent is oblivious
to the type of environment it is operating in, e.g. ignoring if its perceptions are originated by the
simulator or by physical sensing or if its actions are carried out by simulated or hardware actuators.
This entails the assumption that the same agent is equally able to control both the simulated and the
real robot, provided that the connections between its sensory-motor apparatus and the environment
are appropriately rewired (to the simulator or to real robot hardware). Although such an assumption
is admissible in the specific conditions posed by the demonstrative systems, it is an exception rather
than the norm. A more effective implementation of the Agent Chameleon should be mindful of the
differences between simulated and real world in order to better adapt to the different scenarios and
different robots, but also benefit from the different possibilities awarded to the agent by each of its
distinct forms.
In addition, such basic implementations of agent mutation do not address the more general case
in which a generic agent not a simulated robot wishes to take control of a robotic platform in
order to execute a task in the physical world. In particular, the truly interesting potential of the Agent
Chameleon scenario is the ability to support individualised and possibly social interaction with the
user in both real and virtual settings. However, the Agent Chameleon project lacks a test-bed to
investigate these ideas.
Although it is possible to investigate the possibilities of agents mutating their form when embodied in a virtual environment [Martin et al. (2005)], they loose this capability in the physical world.
A possible solution to these limitations would be to use a screen-based interface, e.g. as in the robot
GRACE [Simmons et al. (2003)]. This would give a users personal assistant agent, which assumes
the form of a virtual character on the users PC and PDAs, the possibility to appear on the robots
screen to signal that the agent has taken the control of it. The service robot in the hotel example
discussed in Section 2.5.1 will then have the same appearance and behaviour of the service robot
used by the user in his own home.
A second option, explored in the remainder of this chapter, is to use mixed reality as an interface
between the Agent Chameleon and the end-user.
24
body, or even figuring as the robots driver [Holz et al. (2006)]. In every case, in contrast to robots
with virtual characters visualised on a screen placed on top of them, such as GRACE [Simmons et al.
(2003)], the mixed reality characters are visible from all angles and are not subjected to diminishing
visibility at greater distances.
When they employ simple robots, such as in Jeeves [Young et al. (2007)] or Dragone et al.s
MiRA project [Dragone et al. (2006)], these systems are advantageous in applications with a high
robot-to-user ratio, as a single wearable interface can augment the interaction capabilities of multiple
simple robots (e.g. with no screen, head or arms).
Dragone et al.s MiRA and Jeeves also take greater advantage of their mixed reality components,
as they are free from the engineering effort of realising sophisticated mechanical interfaces. For
example, a MiRA can have the ability to point and gaze in 3D by means of virtual limbs without
having to construct any physical counterpart. In this manner, it can overcome the inherent limitations
of screen-based solutions, as well as provide a rich repertoire of gestures and facial expressions,
which can be used to advertise its capabilities and communicate its state (see Fig. 2.4).
Fig. 2.4 Examples of gestures and facial expressions in MiRA Chameleons (actual images displayed in the users
head-mounted display during live experiments and user trials with our application).
Notably, being based on virtual artefacts, behavioural capabilities of Mixed Reality Agents are
not limited to natural human-like forms, but can also include more complex effects involving other
virtual objects and cartoon-like animations. Jeeves [Young et al. (2007)], for example, tags real
objects with virtual stickers and uses cartoon animation as an intuitive form of social interaction.
The remaining of this paper will focus on Dragone et al.s MiRA project, which is renamed MiRA
Chameleons here in order to more clearly distinguish it from Jeeves and U-Tsu-Shi-O-Mi [Shoji et al.
(2006)]. The other reason for this name is that the MiRA Chameleons project carries over experience
accumulated within the Agent Chameleons project by adding an agent-based coordination dimension
between the wearable MR user interface and the robot forming a MiRA.
The vision realised within the MiRA Chameleons project is to build an ubiquitous agent that
can truly cross the divide between the digital and physical world, by taking advantage of all aspects
of dynamic embodiment, and which can also simply mutate its external appearance by acting on its
virtual part.
2.6.1 Requirements
In order to create a proper test-bed for such an integrated approach, it is important to support its implementation in a flexible manner that would overcome the limitations of the early implementations
of Agent Chameleons and also ease multiple instantiation of the system. For example, rather than
ad-hoc coupling of the robot and the users wearable MR interface, the system should work with
heterogeneous robot hardware and computational platforms. Rather than using pre-configured connections between a fixed set of devices, the user should be free to move and chose among the devices
25
26
(5) A run-time engine in charge of the execution and scheduling of activity-type components (e.g.
sensor drivers, sensory-motor behaviours, data-processing routines).
In addition, an adapter layer in SoSAA provides a set of meta-level operators, which collectively
define an interface to the intentional layer. In particular, the adapter layer allows access by multiple
intentional agents, called component agents. The adapter layer provides meta-level operators and
perceptors that collectively define the computational environment shared by the component agents in
the intentional layer. Perceptors query the component framework and provide component agents with
knowledge about events, the set of installed components, their interfaces, their actual binding, and
their run-time performances, while actuators control the loading, unloading, configuration, activation,
de-activation, and binding of components.
In summary: SoSAA requires the wrapping of functional skills within low-level components before they can be administered by component agents in the intentional layer. This enables the adoption
of a low-level component model, for example, in terms of different component types with specific
behavioural and collaboration patterns, which can be oriented toward supporting specific application
domains. Low-level functional components in SoSAA will react to events according to a particular
behaviour until they are instructed to do otherwise by the agents in the SoSAA intentional layer. Additionally, individual components may communicate amongst one another at the sub-symbolic level
using inter-component communication channels. This results in the intentional layer being free to
concentrate on higher-level reasoning. Furthermore, at the intentional level, SoSAA can leverage on
ACL communication and dedicated AOSE methodologies, employing an organisational/social view
27
through which analysis and modelling of inter-agent interaction can be performed. In particular, roles
in role-based architectures help structuring one system as a set of more manageable sub-systems by
acting as abstract specifications of behavioural patterns Finally, since the adapter layer is defined
in terms of both standard agent capabilities and common features of component models, SoSAAs
design facilitates the replacement of different agent platforms and different component-based frameworks.
The separation between component agents and functional components in SoSAA is essential to
decouple for engineering purposes the agents mind from their working environment. Under
this perspective, functional components provide the agents body, that is, the medium through which
the agents mind can sense and affect a working environment. While the agents mind can then
be programmed according to different cognitive models, for example BDI, domain and environmentspecific issues can be taken into account in the engineering of the underlining functional components.
There are currently two instantiations of SoSAA, both based on two open-source frameworks,
namely: the Agent Factory (AF) multi-agent toolkit and the Java Modular Component Framework
(JMCF)1 . In addition to the standard versions, both frameworks come in versions that address computationally constrained devices, namely with AFME (AF Micro Edition), and JMCFME (JMCF Micro
Edition). In particular, these latter versions loose some of their flexibility in favour of their smaller
footprint, for instance, by renouncing Javas reflection functionalities. However, the result is that by
combining the respective versions, a SoSAA system can be distributed on different computational
nodes on a computer network (SoSAA nodes), each characterized by the presence of the SoSAA
infrastructure.
2.6.3 Implementation
By supporting the integration of intentional agents and functional components in open and ubiquitous
environments, the SoSAA framework enables the characteristic polymorphic combination of robotic
and virtual components that characterises MiRA Chameleons.
Figure 2.6 shows how a MiRA Chameleon system is implemented as the collaboration between
different types of SoSAA nodes, namely the standard SoSAA nodes, which are deployed on the
robots and on back-end server-type nodes, and SoSAA-ME nodes, which are deployed on users
portable devices such as PDAs or mobile phones as well as on MiRA MR wearable interfaces.
In essence, a MiRA Chameleon is the result of a collaboration between a robot and a user node
(see Figure 2.7), which communicate over an ad-hoc wireless network link in order to exhibit cohesion and behavioural consistency to the observer. Tracking is achieved by simply placing a cubic
marker on top of the robot and tracking its position from the camera associated with the users HMD.
The tracking information is then used to align the image of the virtual character with that of the real
robot.
In order to be a believable component of the mixed reality agent, the behaviour of the virtual
character needs to exhibit a degree of awareness of its surroundings, comparable to a robot being
physically embodied through an array of physical sensors and actuators. In MiRA Chamaleon, the
instrument for such situatedness is the update input stream, which notifies the MR interface about
the nature and relative position of the obstacles and other objects of interest perceived by the robot,
and also about the intentions of the robot. This allows direct control of deictic and anticipatory
animations of the associated virtual character, which can visually represent the robots intentions
(similar to Jeevess cartoon-like expressions of the robots state [Young et al. (2007)]).
On the other hand, since the MR overlay of virtual images onto the users field of vision requires
exact knowledge about the position and gaze of the user, this information can also be relayed to the
robot. In doing so, the wearable interface helps the robot to know the position (and the identity) of
1 SoSAA,
AgentFactory and the JMCF are all available for download at http://www.agentfactory.com
28
the user, while the user can use his gaze direction to spatially reference objects and way-points in
order to influence the robots behaviour. The communication between wearable interface and robot
is therefore essential in reinforcing the embodiment of each part of a MiRA (see the discussion in
Section 2.4.1) and augmenting the systems HRI capabilities by merging these parts into a single
agent.
Fig. 2.7
The nature of the functional components deployed on each node depends on the node type. Functional components in portable devices wrap application-specific and user interface (e.g. text-based)
functionalities. On a typical robot node, components can range from active components encapsu-
29
30
employ a set of coordination protocols, based on FIPA-ACL, to supervise the federation of their respective low-level component frameworks, and also to facilitate opening, closing, and controlling the
flow of information, and bearing higher-level conversation between inter-component backchannels.
Once aware of each others presence, e.g. through the UDP peer-discovery service, communicators in the different nodes can manage the migration of component agents from the users PAA to
the his portable device to the MiRA MR wearable interface. Similarly, as soon as a robots communicator starts to collaborate with the users wearable node, the two can exchange information, e.g.
about each others identity, and also agree on migrating some functionalities from the user node to
the robot node before the robot enters the visual field of the users HMD. After this first connection,
and until robot and human depart from each other, the two nodes will then collaborate to deliver a
MiRA composed of the real robot and a virtual character visualised through the users HMD.
2.6.4 Testbed
An example will better illustrate how the functionalities of MiRA Chameleon are implemented availing of the SoSAA framework. In particular, in order to drive the implementation of the new MiRA
Chameleon system, we implemented a simple application scenario to demonstrate the joint exploitation of gaze tracking and positional awareness[Dragone et al. (2006)], and the expressivities capabilities of MiRAs [Dragone et al. (2007)] by asking users to observe and collaborate with a soccer
playing robot. Specifically, the user can ask the robot to find and fetch an orange colored ball, and
also direct some of the robots movements to facilitate the successful and speedy execution of the
task. A number of application-specific component agents and functional components in each node
complement the generic infrastructure, described in the previous section.
31
The behavioural animations of the virtual character are implemented via OpenVRML (http:
//www.openvrml.org), an open source C++ library enabling a programmatic access to the VRML
model of the avatar. The avatars employed in MiRA Chameleons are also part of the distribution
of the Virtual Character Animator software by ParallelGraphic. Some of these avatars are simple
caricature characters (as the one depicted on the left in Figure 2.9) while others are cartoon-type
humanoid characters compliant with the H-Anim 1.1 standard (see the right avatar in Figure 2.9). By
using the access provided by OpenVRML to the virtual models loaded in the application, the system
can automatically form a picture of the structure of each virtual character, e.g. reporting the joints
in their models, if they are H-Anim models, and also the presence of pre-defined animations scripts.
This information is then exported through the SoSAA adapter and finally represented in the SoSAA
intentional layer in form of belief sets, which are then used by the component agents supervising the
avatar.
32
Fig. 2.9 Different examples of avatars (actual images displayed in the users head mounted display during live
experiments and user trials with our application).
Lets say, for instance, that the robot wants to greet the user. Since the robot does not have
hardware capabilities to do that, it will request the help of the user node through an ACL request
<greet the user>. The user interface agent will forward the request to the avatar agent in charge
of the virtual character associated with the robot. The avatar character will then carry out this highlevel request by using the specific capabilities of the virtual character. As a result, the snowman
character will greet the user by turning its whole body toward the user and by waving its hat - an
animation built into the characters VRML model. In contrast, H-Anim characters will be able to
more naturally gaze at the user and wave their hands. In both cases, facing the user is possible
because the animation activities know the position and the orientation of the user in relation to the
robot-centric frame of reference.
2.6.5 Discussion
In general, through its SoSAA-based implementation, MiRA Chameleons can easily adapt to different users, different robots, and different applications, as there is no pre-defined coupling between
the robot and the appearance and behaviour of its associated virtual character. Instead, thanks to the
agent-based coordination described in the previous section, the system as a whole can take contextsensitive decisions in order to deliver a personalised, adaptive, augmented HRI interface.
In particular, the MiRA Chameleons system is a suitable testbed to experiment with external
mutation as envisaged within the Agent Chameleon project. By way of example, the system may
utilise the role description for the robot as well as a profile of the observer (e.g. his identity and
preferences) in order to personalise the form of the avatar, e.g. to project a snowman avatar while
engaging in playful activity and a more serious avatar when teaching.
Such a personalisation of form may be augmented by way of personalisation of behaviour. As the
user interface agent resides on the users wearable computer, it may easily access (or indeed learn)
useful personal data about the user that can be consequently used to negotiate the robots behaviour
to better suit the perceived needs of the user. Notably, an important advantage of having the user
interface agent acts as an intermediary between the user and the robot is that the robots behaviour
33
can be influenced without disclosing personal data of the user. For instance, if the user needs to
follow the robot, the user interface agent proactively may ask the robot to slow down in order to
prevent possible collision with the user.
2.7 Conclusion
This paper has advocated that robots play a significant role in the digital society. However, their heterogeneous nature, as well as their characteristically rigid and inflexible forms, pose significant barriers to the development of effective interaction modalities. Thus the objective of attaining seamless
and intuitive interaction, as per the ubiquitous computing and ambient intelligence visions, remains
somewhat distant. One cost-effective and flexible solution to this is to engage an eclectic mixture of
technologies that harmonises human-robot interaction with other interaction modalities.
Dynamic embodiment offers one avenue for realising agents that can traverse technology boundaries and offer a consistent interface to the end-user while taking advantage of the facilities that
individual platforms, of which robots are one instance, offer.
Mixed reality, incorporating virtual characters, offers an intriguing approach for modelling
robotic forms in a flexible and adaptable manner. A combination of dynamic embodiment and MR
enables the robotic entities to be endowed with interfaces that both harmonise with and augment
conventional user interfaces.
Making the leap from proof of concept to practical system is an essential step to investigate the
usability of such systems in everyday applications. This paper describes an important step in such a
direction by presenting our system architecture based on the SoSAA software framework.
Future work will be dedicated to improve the interoperability of our solution, by employing
standard representations of the systems functional ontologies, and to create a stable environment for
testing and developing suitable methodologies supporting the adaptability of the system (e.g. through
learning).
Chapter 3
Abstract
A reusable agent-based generic model is presented for a specific class of Ambient Intelligence applications: those cases addressing human wellbeing and functioning from a human-like understanding.
The model incorporates ontologies, knowledge and dynamic models from human-directed sciences
such as psychology, social science, neuroscience and biomedical sciences. The model has been
formally specified, and it is shown how for specific applications it can be instantiated by applicationspecific elements, thus providing an executable specification that can be used for prototyping. Moreover, it is shown how dynamic properties can be formally specified and verified against generated
traces.
3.1 Introduction
The environment in which humans operate has an important influence on their wellbeing and performance. For example, a comfortable workspace or an attentive partner may contribute to good performance or prevention of health problems. Recent developments within Ambient Intelligence provide
technological possibilities to contribute to such personal care; cf. [Aarts et al. (2003)], [Aarts et al.
(2001)], [Riva et al. (2005)]. For example, our car may warn us when we are falling asleep while
driving or when we are too drunk to drive. Such applications can be based on possibilities to acquire
sensor information about humans and their functioning, but more substantial applications depend
on the availability of adequate knowledge for analysis of information about human functioning. If
knowledge about human functioning is represented in a formal and computational format in devices
in the environment, these devices can show more human-like understanding, and (re)act accordingly
by undertaking actions in a knowledgeable manner that improve the humans wellbeing and performance. As another example, the workspaces of naval officers may include systems that track their
gaze and characteristics of stimuli (e.g., airplanes on a radar screen), and use this information in a
computational model that is able to estimate where their attention is focussed at; cf. [Bosse et al.
E. Mangina et al., Agent-Based Ubiquitous Computing, Atlantis Ambient and Pervasive Intelligence 1,
DOI 10.1007/978-94-91216-31-2_3, 2009 Atlantis Press/World Scientific
35
36
(2006b)]. When it turns out that an officer neglects parts of a radar screen, such a system can either indicate this to the person (by a warning), or arrange in the background that another person or
computer system takes care of this neglected part.
In recent years, human-directed scientific areas such as cognitive science, psychology, neuroscience and biomedical sciences have made substantial progress in providing an increased insight
in the various physical and mental aspects involved in human functioning. Although much work
still remains to be done, dynamic models have been developed and formalised for a variety of such
aspects and the way in which humans (try to) manage or regulate them. From a biomedical angle, examples of such aspects are (management of) heart functioning, diabetes, eating regulation disorders,
and HIV-infection; e.g., [Bosse et al. (2006a)], [Green (2005)]. From a psychological and social angle, examples are emotion regulation, attention regulation, addiction management, trust management,
stress management, and criminal behaviour management; e.g., [Gross (2007)], [Bosse et al. (2007)],
[Bosse et al. (2008c)].
The focus of this paper is on the class of Ambient Intelligence applications as described, where
the ambient software has context awareness (see, for example, [Schmidt (2005)], [Schmidt et al.
(1999)], [Schmidt et al. (2001)]) about human behaviours and states, and (re)acts on these accordingly. For this class of applications an agent-based generic model is presented, which has been formally specified. For a specific application, this model can be instantiated by case-specific knowledge
to obtain a specific model in the form of executable specifications that can be used for simulation and
analysis. In addition to the naval officer case already mentioned, the generic model has been tested
on a number of other Ambient Intelligence applications of the class as indicated. Three of these
applications are discussed as an illustration, in Section 5, 6 and 7 respectively. Section 3.2 describes
the modelling approach. In Section 3.3 the global architecture of the generic model is presented.
Section 4 shows the internal structure of an ambient agent in this model. Section 8 shows how overall
properties of this type of Ambient Intelligence system can be specified, verified against traces and
logically related to properties of the systems subcomponents. Finally, Section 9 is a discussion.
Process and Information Aspects Processes are modelled as components. A component can
either be an active process, namely an agent, or a source that can be consulted or manipulated, which
is a world component. In order to enable interaction between components, interaction links between
such components are identified and specified. Ontologies specify interfaces for components, but also
what interactions can take place between components, and the functionalities of components.
Specification Language In order to execute and verify human-like ambience models, the expressive language TTL is used [Bosse et al. (2008b)], [Jonker and Treur (2002)]. This predicate logical
language supports formal specification and analysis of dynamic properties, covering both qualitative
and quantitative aspects. TTL is built on atoms referring to states, time points and traces. A state of
a process for (state) ontology Ont is an assignment of truth values to the set of ground atoms in the
ontology. The set of all possible states for ontology Ont is denoted by STATES(Ont). To describe
sequences of states, a fixed time frame T is assumed which is linearly ordered. A trace over state
37
ontology Ont and time frame T is a mapping : T STATES(Ont), i.e., a sequence of states t (t
T) in STATES(Ont). The set of dynamic properties DYNPROP(Ont) is the set of temporal statements
that can be formulated with respect to traces based on the state ontology Ont in the following manner.
Given a trace over state ontology Ont, the state in at time point t is denoted by state( , t). These
states can be related to state properties via the formally defined satisfaction relation |=, comparable
to the Holds-predicate in the Situation Calculus [Reiter (2001)]: state( , t) |= p denotes that state property p holds in trace at time t. Based on these statements, dynamic properties can be formulated
in a sorted first-order predicate logic, using quantifiers over time and traces and the usual first-order
logical connectives such as , , , , , . A special software environment has been developed for
TTL, featuring both a Property Editor for building and editing TTL properties and a Checking Tool
that enables formal verification of such properties against a set of (simulated or empirical) traces.
Executable Format To specify simulation models and to execute these models, the language
LEADSTO, an executable sublanguage of TTL, is used. The basic building blocks of this language
are causal relations of the format e, f ,g,h , which means:
if
then
where and are state properties of the form conjunction of literals (where a literal is an atom or
the negation of an atom), and e, f, g, h non-negative real numbers.
Interaction Between Agents Interaction between two agents may be communication or bodily
interaction, for example, fighting. When within the agent a distinction is made between mind and
body, communication can be modelled as information transfer between an agents mind and another
agents mind. Whether for a given application of the generic model, within agents a mind and a
body are distinguished, depends on the assumptions made about the application domain. If it is
assumed that communication is independent of and cannot be affected by other processes in the
world, then communication can most efficiently be modelled as information transfer between minds.
If, in contrast, it is to be modelled how communication is affected by other processes in the world
(e.g., effects on the quality of a channel or network), then it is more adequate to model communication
as bodily interaction. Obviously, also in cases that it is to be modelled how agents affect each others
bodies, as in fighting, the latter is the most adequate option.
Agent-World Interaction Interaction between an agent and a world component can be either
observation or action performance; cf. [Brazier et al. (2000)]. An action is generated by an agent,
38
subject
ambient
agents
world
and transfers to a world component to have its effect there. An observation has two directions: the
observation focus is generated by an agent and transfers to a world component (providing access to
a certain aspect of the world), and the provision of the observation result is generated by the world
component and transfers to the agent. Combinations of interactions are possible, such as performing
an action and observing the effect of the action afterwards. When the agents body is distinguished
from its mind, interaction between agent and world can be modelled as transfer between this body
and a world component. In addition, interaction between the agents mind and its body (the vertical
arrows in Figure 1) can be used to model the effect of mental processes (deciding on actions and
observations to undertake) on the agent-world interaction and vice versa (incorporating observation
results). Also here, whether for a given application of the generic model interaction between an agent
and the world is modelled according to the first or the second option, depends on the assumptions
made about the application domain. If it is assumed that performance of an intended action generated
by the mind has a direct effect on the world and has no relevant effect on an agents body, then it can
most efficiently be modelled according to the first option. If, in contrast, it is to be modelled how
actions and observations are also affected by other processes in the body or world, then the second
option is more adequate. Also in cases that it is to be modelled how the world affects an agent body,
obviously the second option is the most adequate option.
The naval officer example Table 3.2 illustrates the different types of components and interactions for a case concerning a naval officer, as briefly explained in the introduction. The officer keeps
track of incoming planes on a radar screen, and acts on those ones classified as dangerous.
Generic State Ontologies at the Global Level For the information exchanged between components
at the global level, generic ontologies have been specified. This has been done in a universal ordersorted predicate logic format that easily can be translated into more specific ontology languages.
Table 3.3 provides an overview of the generic sorts and predicates used in interactions at the global
level. Examples of the use of this ontology will be found in the case studies.
Generic Temporal Relations for Interaction at the Global Level Interaction between
global level components is defined by the following specifications. Note that in such specifications,
for state properties the prefix input, output or internal is used. This is an indexing of the language
elements to indicate that it concerns specific variants of them either present at the input, output or
internally within the agent.
Action Propagation from Agent to World Component
39
subject
agent
subject communication;
subject body interaction
subject world
component
ambient
agent
ambient-subject communication;
ambient-subject body interaction
ambient
world
component
subject
world component
subject observation focus;
subject
action
performance;
subject body-world interaction
subject world component
interaction
ambient
agent
subject-ambient communication;
subject-ambient body interaction
ambient communication;
ambient body interaction
ambient
world component
subject-ambient observation focus;
subject-ambient action
performance;
subject-ambient bodyworld interaction
subject-ambient world
component interaction
subject agents
subject world components
human naval officer
radar screen with moving planes
observation and action by subject agent
naval officer gaze focuses on radar screen with planes, extracts information from radar screen view,
naval officer acts on planes that are dangerous
ambient agents
dynamic task allocation agent (including an eye tracker), task-specific agent
communication between ambient agents
communication between task allocation agent and task-specific agent on task requests
communication
observation and action
task allocation agent communiambient agent has observation focates over-looked dangerous item to
cus on radar screen and naval officer
naval officer
gaze
ambient agent extracts info from
views
40
Components within the Ambient Agent Model In [Brazier et al. (2000)] the componentbased Generic Agent Model (GAM) is presented, formally specified in DESIRE [Brazier et al.
(2002)]. The process control model was combined with this agent model GAM. Within GAM the
component World Interaction Management takes care of interaction with the world, the component
Agent Interaction Management takes care of communication with other agents. Moreover, the component Maintenance of World Information maintains information about the world, and the component
Maintenance of Agent Information maintains information about other agents. In the component Agent
Specific Task, specific tasks can be modelled. Adopting this component-based agent model GAM,
the Ambient Agent Model has been obtained as a refinement, by incorporating components of the
generic process control model described above.
The component Maintenance of Agent Information has three subcomponents. The subcomponent
Maintenance of a Dynamic Agent Model maintains the causal and temporal relationships for the
subject agents functioning. For example, this may model the relationship between a naval officers
gaze direction, characteristics of an object at the screen, and the attention level for this object. The
subcomponent Maintenance of an Agent State Model maintains a snapshot of the (current) state of the
agent. As an example, this may model the gaze direction, or the level of attention for a certain object
at the screen. The subcomponent Maintenance of an Agent History Model maintains the history of
the (current) state of the agent. This may for instance model the trajectory of the gaze direction, or
the level of attention for a certain object at the screen over time.
Similarly, the component Maintenance of World Information has three subcomponents for a dynamic world model, a world state model, and a world history model, respectively. Moreover, the
component Agent Specific Task has the following three subcomponents, devoted to the agents process control task. The subcomponent Simulation Execution extends the information in the agent state
model based on the internally represented dynamic agent model for the subject agents functioning.
For example, this may determine the attention level from a naval officers gaze direction, and the
41
characteristics of an object at the screen, and his previous attention level. The subcomponent Process
Analysis assesses the current state of the agent. For instance, this may determine that a dangerous
item has a level of attention that is too low. This component may use different generic methods of
assessment, among which (what-if) simulations and (model-based) diagnostic methods, based on the
dynamic and state models as maintained. The subcomponent Plan Determination determines whether
action has to be undertaken, and, if so, which ones (e.g. to determine that the dangerous item with
low attention from the naval officer has to be handled by another agent).
Finally, as in the model GAM, the components World Interaction Management and Agent Interaction Management prepare (based on internally generated information) and receive (and internally
forward) interaction with the world and other agents. Table 3.4 provides an overview of the different
components within the Ambient Agent Model, illustrated for the case of the naval officer.
Table 3.4 Components within the Ambient Agent Model
Maintenance of Agent Information
maintenance of dynamic models
model relating attention state to human body state and world state
maintenance of state models
model of attention state and gaze state of the naval officer
subject agent
model of state of radar screen with planes
subject world component
maintenance of history models
model of gaze trajectory and attention of time
Maintenance of World Information (similar to Maintenance of Agent Information)
Agent Specific Task
simulation execution
update the naval officers attention state from gaze and radar screen state
process analysis
determine whether a dangerous item is overlooked
plan determination
determine an option to address overlooked dangerous items (to warn the naval
officer, or to allocate another human or ambient agent to this task)
World Interaction Management
processing received observation results of screen and gaze
Agent Interaction Management
preparing a warning to the officer
preparing a request to take over a task
Generic State Ontologies within Ambient Agent and World To express the information
involved in the agents internal processes, the ontology shown in Table 3.5 was specified.
Table 3.5 Generic Ontology used within the Ambient Agent Model
Predicate
Description
belief(I:INFO EL)
information I is believed
world fact(I:INFO EL)
I is a world fact
has effect(A:ACTION, I:INFO EL)
action A has effect I
Function to INFO EL
Description
leads to after(I:INFO EL, J:INFO EL, D:REAL)
state property I leads to state property J after duration D
at(I:INFO EL, T:TIME)
state property I holds at time T
As an example belief(leads to after(I:INFO EL, J:INFO EL, D:REAL)) is an expression based on this
ontology which represents that the agent has the knowledge that state property I leads to state property
J with a certain time delay specified by D. This can provide enhanced context awareness (in addition
to information obtained by sensoring).
Generic Temporal Relations within an Ambient Agent The temporal relations for the
functionality within the Ambient Agent are as follows.
Belief Generation based on Observation, Communication and Simulation
42
X:AGENT, I:INFO EL, W:WORLD input(X)|observed from(I, W) internal(X)|belief(is reliable for(W, I))
internal(X)|belief(I)
X,Y:AGENT, I:INFO EL input(X)|communicated from to(I,Y,X) internal(X)|belief(is reliable for(X, I))
internal(X)|belief(I)
X:AGENT I,J:INFO EL D:REAL T:TIME internal(X)|belief(at(I, T)) internal(X)|belief(leads to after(I, J, D))
internal(X)|belief(at(J, T+D))
Here, the first rule is a generic rule for the component World Interaction Management. Similarly,
the second rule is a generic rule for the component Agent Interaction Management. When the sources
are assumed always reliable, the conditions on reliability can be left out of the first two rules. The
last generic rule within the agents component Simulation Execution specifies how a dynamic model
that is explicitly represented as part of the agents knowledge (within its component Maintenance
of Dynamic Models) can be used to perform simulation, thus extending the agents beliefs about the
world state at different points in time. This can be considered an internally represented deductive
causal reasoning method. As another option, an abductive causal reasoning method can be internally
represented in a simplified form as follows.
Belief Generation based on Simple Abduction
X:AGENT I,J:INFO EL D:REAL T:TIME
internal(X)|belief(at(J, T)) internal(X)|belief(leads to after(I, J, D)) internal(X)|belief(at(I, T-D))
Generic Temporal Relations within a World For World Components the following specifications indicate the actions effects and how observations provide their results.
Action Execution and Observation Result Generation in the World
W:WORLD COMP A:ACTION I:INFO EL input(W)|performing in(A, W) internal(W)|has eect(A,I)
internal(W)|world fact(I)
W:WORLD COMP I:INFO EL input(W)|observation focus in(I, W) internal(W)|world fact(I)
output(W)|observation result from(I, W)
W:WORLD COMP I:INFO EL input(W)|observation focus in(I, W) internal(W)|world fact(not(I))
output(W)|observation result from(not(I), W)
43
Table 3.6 Components and Interactions of the Ambient Driver Support System
subject agents
subject world components
subject components
human driver
car and environment
observation and action by subject agent in subject world component
subject interactions
driver observes car and environment, operates car and gaze
ambient agents
ambient components
steering, gaze-focus, and alcohol-level sensoring agent; steering, gaze-focus, and alcohol level monitoring agent; driver assessment agent, cruise control agent
communication between ambient agents
ambient interactions
steering sensoring agent communicates to steering monitoring agent
gaze-focus sensoring agent communicates gaze focus to gaze-focus monitoring agent
alcohol-level sensoring agent communicates to alcohol-level monitoring agent
alcohol level monitoring agent reports to driver assessment agent alcohol level
eye-focus monitoring agent reports to driver assessment agent unfocused gaze
steering monitoring agent reports to driver assessment agent abnormal steering
driver assessment agent communicates to cruise control agent state of driver
observation and action by ambient agent in subject world component
interactions
steering sensoring agent observes steering wheel operation
between subject and
gaze-focus sensoring agent observes driver body gaze focus
ambient
alcohol-level sensoring agent measures alcohol level in sweat of driver hand palms
cruise control agent slows down car or stops engine
Driver
Assessment
agent
Cruise
Control
agent
car and
environment
Steering
Monitoring
agent
Steering Sensoring
agent
Gaze - focus
Monitoring
agent
Alcohol -level
Moni toring
agent
Gaze-focus Sensoring
agent
driver
behavioural: abnormal steering operation and an unfocused gaze. The dynamic model is represented
by the following beliefs in the component Maintenance of Dynamic Models.
internal(driver assessment agent)|belief(leadsto(alcohol level high, driver assessment(negative), D))
internal(driver assessment agent)|belief(leadsto(abnormal steering operation unfocused gaze,
driver assessment(negative), D))
44
The Driver Assessment Agent receives this observable information from the various monitoring
agents, of which the precise specification has been omitted for the sake of brevity. By the simple
abductive reasoning method specified by the generic temporal rule in Section 3.4, when relevant the
Driver Assessment Agent can derive that the driver has a high alcohol level, from which the agent
concludes that the driver assessment is negative. These are stored as beliefs in the component Maintenance of an Agent State Model and communicated to the Cruise Control Agent. The Cruise Control
Agent takes the appropriate measures. The first temporal rule specifies that if the driver assessment
is negative, and the car is not driving, then the ignition of the car is blocked:
internal(cruise control agent)|belief(driver assessment(negative))
internal(cruise control agent)|belief(car is not driving)
output(cruise control agent)|performing in(block ignition, car and environment)
If the car is already driving, whereas the assessment is negative, the car is slowed down.
internal(cruise control agent)|belief(driver assessment(negative))
internal(cruise control agent)|belief(car is driving)
output(cruise control agent)|performing in(slow down car, car and environment)
Based upon such temporal rules, simulation runs of the system have been generated, of which an
example trace is shown in Figure 3.3. In the figure, the left side indicates the atoms that occur during
the simulation whereas the right side indicates a time line where a dark box indicates the atom is true
at that time point and a grey box indicates false.
In the trace, the initial alcohol level in the sweat is 0.4 per mille which is below the maximum
allowed level of 0.5 per mille.
internal(alcohol level sensoring agent)|observed result from(alcohol level(0.4), driver)
The driver starts the car and accelerates, resulting in a driving car.
internal(car and environment)|world fact(car driving)
internal(car_and_environment)|world_fact(car_not_driving)
output(driver)|performing_in(start_engine, car_and_environment)
internal(driver)|world_fact(alcohol_level(0.4))
output(car_and_environment)|observation_result_from(car_not_driving, car_and_environment)
input(car_and_environment)|performing_in(start_engine, car_and_environment)
output(driver)|observation_result_from(alcohol_level(0.4), driver)
input(cruise_control_agent)|observed_result_from(car_not_driving, car_and_environment)
input(alcohol_level_sensoring_agent)|observed_result_from(alcohol_level(0.4), driver)
internal(car_and_environment)|world_fact(engine_running)
output(car_and_environment)|observation_result_from(engine_running, car_and_environment)
output(driver)|performing_in(accelerate, car_and_environment)
output(alcohol_level_sensoring_agent)|communication_from_to(alcohol_level(0.4), alcohol_level_sensoring_agent, alcohol_level_monitoring_agent)
input(driver)|observed_result_from(engine_running, car_and_environment)
input(car_and_environment)|performing_in(accelerate, car_and_environment)
input(alcohol_level_monitoring_agent)|communicated_from_to(alcohol_level(0.4), alcohol_level_sensoring_agent, alcohol_level_monitoring_agent)
internal(car_and_environment)|world_fact(car_driving)
output(car_and_environment)|observation_result_from(car_driving, car_and_environment)
input(cruise_control_agent)|observed_result_from(car_driving, car_and_environment)
input(driver)|observed_result_from(car_driving, car_and_environment)
internal(driver)|world_fact(alcohol_level(0.6))
output(driver)|observation_result_from(alcohol_level(0.6), driver)
input(alcohol_level_sensoring_agent)|observed_result_from(alcohol_level(0.6), driver)
output(alcohol_level_sensoring_agent)|communication_from_to(alcohol_level(0.6), alcohol_level_sensoring_agent, alcohol_level_monitoring_agent)
input(alcohol_level_monitoring_agent)|communicated_from_to(alcohol_level(0.6), alcohol_level_sensoring_agent, alcohol_level_monitoring_agent)
output(alcohol_level_monitoring_agent)|communication_from_to(alcohol_level_high, alcohol_level_monitoring_agent, driver_assessment_agent)
input(driver_assessment_agent)|communicated_from_to(alcohol_level_high, alcohol_level_monitoring_agent, driver_assessment_agent)
output(driver_assessment_agent)|communication_from_to(driver_assessment(negative), driver_assessment_agent, cruise_control_agent)
input(cruise_control_agent)|communicated_from_to(driver_assessment(negative), driver_assessment_agent, cruise_control_agent)
output(cruise_control_agent)|performing_in(slow_down_car, car_and_environment)
input(car_and_environment)|performing_in(slow_down_car, car_and_environment)
output(cruise_control_agent)|performing_in(block_ignition, car_and_environment)
input(car_and_environment)|performing_in(block_ignition, car_and_environment)
internal(car_and_environment)|world_fact(engine_always_off)
time
10
15
Fig. 3.3 Example simulation trace of the ambient driver support system
20
25
30
35
40
45
50
45
However, after a while the drivers alcohol level rises to 0.6 per mille, which is classified as high
by the Alcohol Level Monitoring Agent, and this is communicated to the Driver Assessment Agent:
input(driver assessment agent)|communicated from to(alcohol level high, alcohol level monitoring agent,
driver assessment agent)
By the abductive reasoning method this agent assesses the driver as negative, which is communicated
to the Cruise Control Agent, which starts to intervene. First it slows down the car, and after it stopped,
the agent blocks the ignition:
output(cruise control agent)|performing in(slow down car, car and environment)
output(cruise control agent)|performing in(block ignition, car and environment)
A more elaborated description of the model and the simulation results can be found in [Bosse et al.
(2008a)].
Initially the system only records the sound, which is dynamically analysed by an aggression
detection system. As soon as this system detects that the recorded sound is different (more aggressive)
from the standard background noise, it turns on the camera and warns the officers at the police station.
Subsequently, the police can assess the situation remotely using the camera pictures, and if necessary,
they can send police officers to the place to stop the aggression. Also for the ambient aggression
handling system, a number of domain-specific temporal rules have been established. For a complete
overview of all domain specific rules, see Appendix 3.11. First of all, the component Maintenance of
Dynamic Models within the Sound Analysis Agent contains a representation of a dynamic model of
aggression and consequences thereof. A main consequence considered here is that aggression leads
to sounds and sound levels that deviate from the normal sounds. This is represented as
46
stating that aggression in the crowd leads to sounds with a certain frequency (for simplicity
represented as sound(loud)).
Sound
Analysis
Agent
Camera
Control
Agent
police-officerat-station
microphone agent
camera agent
police-officerat-street
persons
in crowd
Fig. 3.4
The latter is observable information, so when this comes in, by a simple abductive reasoning
method the Sound Analysis Agent concludes a belief that there is aggression in the crowd; this
information is transferred to the Camera Control Agent, upon which the latter agent communicates
a request for view to the Camera Agent. This is done via the following rule (which is part of the
component Plan Determination of the Camera Control Agent):
internal(camera control agent)|belief(aggression in crowd)
output(camera control agent)|communication from to(inspection needed, camera control agent, camera agent)
Eventually, when the current sound and the view are perceived, both types of information are
transferred to the police officer at the station. For the simulation, this police officer uses the following
temporal rule (which is part of the component Process Analysis of the police officer) to conclude that
there is probably aggression in the crowd:
S:SOUND V:VIEW
internal(police ocer at station)|belief(inspection needed)
internal(police ocer at station)|belief(sound(S))
internal(police ocer at station)|belief(view(V))
internal(police ocer at station)|belief(sound view classication(S, V, aggressive))
internal(police ocer at station)|belief(aggression in crowd)
If this officer concludes the belief that there is aggression in the crowd, the police officer at the
station notifies the police officer at the street that inspection is needed. As a result, this police officer
will go to the location of the aggression to observe the actual situation. He will use a similar rule to
the one above to conclude that there is indeed aggression, and if this is the case, he will perform the
action of stopping the aggression. An example trace that was generated on the basis of these temporal
rules is shown in Figure 3.5.
47
As seen in this trace, from the start of the simulation, there is aggression in the crowd, which is
indicated by a loud sound and the view of fighting persons:
internal(persons in crowd)|world fact(sound(loud))
internal(persons in crowd)|world fact(view(ghting persons))
The Microphone Agent transfers the sound to the Sound Analysis Agent:
output(microphone agent)|communication from to(sound(loud), microphone agent, sound analysis agent)
By simple abductive reasoning the Sound Analysis Agent generates the belief that there aggression,
and informs the Camera Control Agent and the police officer at the station:
output(sound analysis agent)|communication from to(inspection needed, sound analysis agent,
camera control agent)
output(sound analysis agent)|communication from to(inspection needed, sound analysis agent,
police ocer at station)
output(sound analysis agent)|communication from to(sound(loud), sound analysis agent, police ocer at station)
output(microphone_agent)|observation_focus_in(sound(loud), persons_in_crowd)
output(microphone_agent)|observation_focus_in(sound(quiet), persons_in_crowd)
internal(persons_in_crowd)|world_fact(sound(loud))
internal(persons_in_crowd)|world_fact(view(fighting_persons))
input(microphone_agent)|observed_result_from(sound(loud), persons_in_crowd)
internal(microphone_agent)|belief(sound(loud))
output(microphone_agent)|communication_from_to(sound(loud), microphone_agent, sound_analysis_agent)
input(sound_analysis_agent)|communicated_from_to(sound(loud), microphone_agent, sound_analysis_agent)
internal(sound_analysis_agent)|belief(sound(loud))
internal(sound_analysis_agent)|belief(aggression_in_crowd)
output(sound_analysis_agent)|communication_from_to(inspection_needed, sound_analysis_agent, camera_control_agent)
output(sound_analysis_agent)|communication_from_to(inspection_needed, sound_analysis_agent, police_officer_at_station)
output(sound_analysis_agent)|communication_from_to(sound(loud), sound_analysis_agent, police_officer_at_station)
input(camera_control_agent)|communicated_from_to(inspection_needed, sound_analysis_agent, camera_control_agent)
input(police_officer_at_station)|communicated_from_to(inspection_needed, sound_analysis_agent, police_officer_at_station)
input(police_officer_at_station)|communicated_from_to(sound(loud), sound_analysis_agent, police_officer_at_station)
internal(camera_control_agent)|belief(inspection_needed)
internal(police_officer_at_station)|belief(inspection_needed)
internal(police_officer_at_station)|belief(sound(loud))
internal(camera_control_agent)|belief(aggression_in_crowd)
output(camera_control_agent)|communication_from_to(inspection_needed, camera_control_agent, camera_agent)
input(camera_agent)|communicated_from_to(inspection_needed, camera_control_agent, camera_agent)
internal(camera_agent)|belief(inspection_needed)
output(camera_agent)|observation_focus_in(view(calm_persons), persons_in_crowd)
output(camera_agent)|observation_focus_in(view(fighting_persons), persons_in_crowd)
input(camera_agent)|observed_result_from(view(fighting_persons), persons_in_crowd)
internal(camera_agent)|belief(view(fighting_persons))
output(camera_agent)|communication_from_to(view(fighting_persons), camera_agent, police_officer_at_station)
input(police_officer_at_station)|communicated_from_to(view(fighting_persons), camera_agent, police_officer_at_station)
internal(police_officer_at_station)|belief(view(fighting_persons))
internal(police_officer_at_station)|belief(aggression_in_crowd)
output(police_officer_at_station)|communication_from_to(inspection_needed, police_officer_at_station, police_officer_at_street)
input(police_officer_at_street)|communicated_from_to(inspection_needed, police_officer_at_station, police_officer_at_street)
internal(police_officer_at_street)|belief(inspection_needed)
output(police_officer_at_street)|observation_focus_in(sound(loud), persons_in_crowd)
output(police_officer_at_street)|observation_focus_in(sound(quiet), persons_in_crowd)
output(police_officer_at_street)|observation_focus_in(view(calm_persons), persons_in_crowd)
output(police_officer_at_street)|observation_focus_in(view(fighting_persons), persons_in_crowd)
input(police_officer_at_street)|observed_result_from(sound(loud), persons_in_crowd)
input(police_officer_at_street)|observed_result_from(view(fighting_persons), persons_in_crowd)
internal(police_officer_at_street)|belief(sound(loud))
internal(police_officer_at_street)|belief(view(fighting_persons))
internal(police_officer_at_street)|belief(aggression_in_crowd)
output(police_officer_at_street)|performing_in(stop_aggression, persons_in_crowd)
input(persons_in_crowd)|performing_in(stop_aggression, persons_in_crowd)
internal(persons_in_crowd)|world_fact(aggression_stops)
internal(persons_in_crowd)|world_fact(sound(quiet))
internal(persons_in_crowd)|world_fact(view(calm_persons))
time
Fig. 3.5
10
20
30
40
50
60
70
80
90
100
48
Next, the Camera Control Agent informs the Camera Agent that inspection is needed:
output(camera control agent)|communication from to(inspection needed, camera control agent, camera agent)
This information is then transferred to the police officer at the station, who generates the belief that
there is aggression in the crowd:
internal(police ocer at station)|belief(aggression in crowd)
After this, the police officer at the station notifies the police officer at the street that (further) inspection is needed, who confirms that there is indeed aggression in the crowd, and undertakes the action
of stopping the aggression (which eventually results in a quiet and calm environment):
output(police ocer at street)|performing in(stop aggresion, persons in crowd)
Medicine Box
Agent
Patient
Medicine box
Usage
Support
Agent
Patient Phone
Patient
Data
Doctor Phone
Doctor
Fig. 3.6
The (ambient) Usage Support Agent has a dynamic model of the medicine concentration in the
patient. This model is used to estimate the current concentration, which is also communicated to
the (ambient) Medicine Box Agent. The Medicine Box Agent monitors whether medicine is taken
from the box, and the position thereof in the box. In case, for example, the patient intends to take
the medicine too soon after the previous dose, it finds out that the medicine should not be taken at
the moment (i.e., the sum of the estimated current medicine level plus a new dose is too high), and
49
communicates a warning to the patient by a beep sound. Furthermore, all information obtained by
this agent is passed on to the (ambient) Usage Support Agent. All information about medicine usage
is stored in the patient database by this agent. If the patient tried to take the medicine too early, a
warning SMS with a short explanation is communicated to the cell phone of the patient, in addition
to the beep sound already communicated by the Medicine Box Agent. On the other hand, in case the
Usage Support Agent finds out that the medicine is not taken on time (i.e., the medicine concentration
is estimated too low for the patient and no medicine was taken yet), it can take measures as well. First
of all, it can warn the patient by communicating an SMS to the patient cell phone. This is done soon
after the patient should have taken the medicine. In case the patient still does not take medicine
(for example after a number of hours), the agent can communicate an SMS to the cell phone of the
appropriate doctor. The doctor can look into the patient database to see the medicine usage, and
in case the doctor feels it is necessary to discuss the state of affairs with the patient, he or she can
contact the patient via a call from the doctor cell phone to the patient cell phone. Table 3.8 presents
an overview of the various components and their interactions.
The specification of the interaction between the various components within the medicine box
case has similarity with the two other cases and has therefore been omitted for the sake of brevity, see
Appendix 3.12 for more details. One major difference however is the model the usage support agent
has of the patient. The agent maintains a quantitative model of the medicine level of the patient using
the following knowledge:
internal(usage support agent)|belief(leadsto to (
medicine level(M, C) usage eect(M, E) decay(M, G),
medicine level(M, (C+E) - G*(C+E)*D), D)
This model basically specifies that a current medicine level C of medicine M and a known usage
effect at the current time point of E combined with a decay value of G, leads to a belief of a new
medicine level C + E G * (C + E) * D after duration D. Below, Figure 3.7 shows how the medicine
level varies over time when the ambient system support the medicine versus the case where the
system is not active. The minimum medicine level required in the patients blood is 0.3 whereas the
maximum allowed medicine level is 1.4. As can be seen, the medicine level using the system does
meet these demands whereas without support the level does not.
A more elaborated description of the model and the simulation results can be found in [Hoogendoorn
et al. (2008)].
Properties of the system as a whole A natural property of the Ambient Driver Support System
is that a drunken driver cannot continue driving. A driver is considered drunk if the blood alcohol
level is above threshold a. The global properties (GP) of the presented systems (abbreviated as ADSS,
AAHS and AMUMS respectively) are:
GP1(ADSS) No drunken driver
If the drivers blood alcohol level is above threshold a, then within 30 seconds the car will not drive
and the engine will be off
:TRACE, t:TIME, R:REAL
50
For the Ambient Aggression Handling System a similar property is that aggression is stopped as soon
as it occurs. Here for the example a situation is considered aggressive if persons are fighting and there
is a high sound level.
GP1(AAHS) No aggression
If the persons in the crowd are fighting and noisy, then within 35 time steps they will be calm and
quite
:TRACE, t:TIME
state( , t, internal(persons in crowd)) |= world fact(view(ghting persons)) &
state( , t, internal(persons in crowd)) |= world fact(sound(loud))
t2:TIME < t:TIME + 35 [ state( , t, internal(persons in crowd)) |= world fact(view(calm persons)) &
state( , t, internal(persons in crowd)) |= world fact(sound(quiet)) ]
For the Ambient Medicine Usage Management System, a relevant property is that the medicine concentration is relatively stable, which means that it stays between an upper and lower bound.
GP1(AMUMS) Stable Medicine Concentration
At any time point the medicine concentration is between lower bound M1 and upper bound M2
:TRACE, t:TIME, R:REAL
51
Fig. 3.7 Medicine level with (top figure) and without ambient system usage (x-axis denotes time and y-axis
denotes the medicine level, note the different scale)
All three of these properties have been automatically verified (using the TTL checker tool [Bosse
et al. (2008b)]) against the traces shown in the paper. For each of these trace whereby the system is
in use, the property GP1 holds.
The property GP1 of the system as a whole can be logically related to properties of the subsystems
(shown in the second column in the table) by the following inter level relation:
S1 & M1 & A1 & P1 & SP1 GP1
This expresses that the system functions well when all of the subsystems for sensoring, monitoring,
assessment, plan determination and the subject process function well.
52
Properties of subsystems The properties characterising correct functioning of each of the subsystems are described below.
S1 Sensoring system
If the sensory system receives observation input from the world and driver concerning alcohol level,
gaze focus and steering operation, then it will provide as output this information for the monitoring
system.
M1 Monitoring system
If the monitoring system receives sensor information input concerning alcohol level, gaze-focus and
steering operation from the sensoring system, then it will provide as output monitoring information
concerning qualification of alcohol-level, gaze-focus and steering operation for the assessment system.
A1 Assessment system
If this system receives monitoring information concerning specific qualifications of alcohol-level,
gaze-focus and steering operation, then it will provide as output a qualification of the state.
P1 Plan determination system
If the plan determination system receives an overall qualification of the state, then it will generate as
output actions to be undertaken.
SP1 Subject process
If the subject process receives actions to be undertaken, then it will obtain the effects of these actions.
If the drivers blood alcohol level is above threshold a, then the driver will operate the steering wheel
abnormally and the drivers gaze is unfocused.
Properties of components As indicated in Table 3.9 in the fourth column, each property of a
subsystem is logically related to properties of the components within the subsystem. For example,
the inter level relation
SSA1 & GSA1 & ASA1 S1
expresses that the sensoring subsystem functions well when each of the sensoring agents functions
well (similarly, for the monitoring subsystem). Examples of properties characterising correct functioning of components are the following. The properties for the other sensoring and monitoring
agents (GSA1, ASA1, GMA1, AMA1) are similar.
SSA1 Steering Sensoring agent
If the Steering Sensoring agent receives observation results about steering wheel operation then it
will communicate this information to the Steering Monitoring agent observation.
SMA1 Steering Monitoring agent
If the Steering Monitoring agent receives observation results about the steering wheel, and this operation is abnormal, then it will communicate to the Driver Assessment Agent that steering operation
is abnormal.
The properties for the Driver Assessment Agent are:
DAA1 Assessment based on alcohol
If the Driver Assessment Agent receives input that the alcohol level is high, then it will generate as
output communication to the Cruise Control agent that the driver state is inadequate.
DAA2 Assessment based on behaviour
If the Driver Assessment Agent receives input that steering operation is abnormal and gaze is unfocused, then it will generate as output communication to the Cruise Control agent that the driver state
is inadequate.
For the Cruise Control Agent the properties are:
53
The Use of Interlevel Relations in Fault Diagnosis Sometimes an error might occur in a
component within the system. Therefore, a trace has also been generated whereby the functioning of
the various agents is correct with a certain probability. In the resulting trace, the overall property GP1
does not hold. Therefore, the refined properties have been verified to determine the exact cause of this
failure, and the results thereof show that the alcohol level monitoring agent does not communicate
that the alcohol level is high, whereas the level is in fact too high.
3.9 Discussion
The challenge addressed in this paper is to provide a generic model that covers the class of Ambient Intelligence applications that show human-like understanding and supporting behaviour. Here
human-like understanding is defined as understanding in the sense of being able to analyse and estimate what is going on in the humans mind and body (a form of mind/bodyreading). Input for these
processes are observed information about the humans physiological and behavioural states and dynamic models for the humans physical and mental processes. For the mental side such a dynamic
model is sometimes called a Theory of Mind (e.g., [Dennett (1987a)], [Gaerdenfors (2003)], [Goldman (2006)]) and may cover concepts such as emotion, attention, intention, and belief. This can be
extended to integration with the humans physical processes, relating, for example, to skin conditions,
heart rates, and levels of blood sugar, insulin, adrenalin, testosterone, serotonin, and specific medication taken. In this class of Ambient Intelligence applications, knowledge from human-directed
disciplines is exploited, in order to take care of (and support in a knowledgeable manner) humans in
their daily living, in medical, psychological and social respects. Thus, an ambience is created that
uses essential knowledge from the human-directed disciplines to provide a more human-like understanding of human functioning, and from this understanding can provide adequate support. This may
concern, for example, elderly people, criminals and psychiatric patients, but also humans in highly
demanding tasks.
The generic model introduced in this paper is a template for the specific class of Ambient Intelligence applications as described. One of the characteristics of this class is that a high level of
human-directed context awareness plays a role; see also [Schmidt (2005)], [Schmidt et al. (1999)],
[Schmidt et al. (2001)]. The ambient software and hardware design is described in an agent-based
manner at a conceptual design level and to support context awareness has generic facilities built in to
represent human state models and dynamic process models, and methods for model-based simulation
and analysis on the basis of such models. For a particular application, biomedical, neurological, psy-
54
chological and/or social ontologies, knowledge and dynamic models about human functioning can
be specified. The generic model includes slots where such application-specific content can be filled
in to get an executable design for a working system. This specific content, together with the generic
methods to operate on it, enables ambient agents to show human-like understanding of humans and
to react on the basis of this understanding in a knowledgeable manner. The model has been positively
evaluated in three case studies related to existing Ambient Intelligence applications that already are
operational or in a far stage of development.
If the Driver Assessment agent believes that the drivers state is assessed as negative, then it will
communicate this to the Cruise Control agent.
internal(driver assessment agent)|belief(driver assessment(negative))
output(driver assessment agent)|communication from to(driver assessment negative, driver assessment agent,
cruise control agent)
When the Steering Monitoring agent believes that there is abnormal steering operation, it will communicate this to the Driver Assessment agent.
55
When the Steering Monitoring agent believes that there is unfocused gaze, it will communicate this
to the Driver Assessment agent.
internal(gaze focus monitoring agent)|belief(unfocused gaze)
output(gaze focus monitoring agent)|communication from to(unfocused gaze, gaze focus monitoring agent,
driver assessment agent)
When the Alcohol-Level Monitoring agent believes that there is a high alcohol level, it will communicate this to the Driver Assessment agent.
56
The action of slowing down the car has the effect that the car is not driving anymore. The effect
of stopping the engine has the effect that the engine is off.
internal(car and environment)|has eect(slow down car, car not driving)
internal(car and environment)|has eect(block ignition, engine o)
internal(car and environment)|has eect(block ignition start engine, engine running)
internal(car and environment)|has eect(engine running accelerate, car driving)
When the Sound Analysis agent believes that there is aggression in the crowd, it will communicate
this to the camera control agent and to the police officer at the station, together with the sound.
57
When the Camera Control agent believes that there is aggression in the crowd, it will communicate
to the Camera agent that inspection is needed.
internal(camera control agent)|belief(aggression in crowd)
output(camera control agent) |communication from to(view needed, camera control agent, camera agent)
When the Microphone agent believes that there is a certain type of sound, it will communicate this to
the Sound Analysis agent.
internal(microphone agent)|belief(sound(S))
output(microphone agent)|communication from to(sound(S), microphone agent, sound analysis agent)
When the Camera agent believes that there is a certain type of view, it will communicate this to the
Police Officer at the Station.
internal(camera agent)|belief(view(V))
output(camera agent)|communication from to(view(V), camera agent, police ocer at station)
58
When Police Officer at the Station believes that inspection is needed, and (s)he classifies the combination of sound and view as aggressive, (s)he will believe that there is aggression.
internal(police
internal(police
internal(police
internal(police
internal(police
ocer
ocer
ocer
ocer
at station)|belief(inspection needed)
at station)|belief(sound(S))
at station)|belief(view(V))
at station)|belief(sound view classication(S, V, aggressive))
When Police Officer at the Station believes that there is aggression, (s)he will communicate to the
Police Officer at the street that inspection is needed.
internal(police ocer at station)|belief(aggression in crowd)
output(police ocer at station)|communication from to(inspection needed, police ocer at station,
police ocer at street)
When the Police Officer at the Street receives communication from the Police Officer at the Station
that there is aggression, the will believe that there may be aggression.
input(police ocer at street)|communicated from to(aggression in crowd, police ocer at station,
police ocer at street)
internal(police ocer at street)|belief(inspection needed)
When Police Officer at the Street believes that inspection is needed, then (s)he will focus on observing
the sound and view in the situation.
internal(police ocer at street)|belief(inspection needed)
output(police ocer at street)|observation focus in(sound(S), persons in crowd)
output(police ocer at street)|observation focus in(view(V), persons in crowd)
59
When Police Officer at the Street believes that inspection is needed, and (s)he classifies the combination of sound and view as aggressive, (s)he will believe that there is aggression.
internal(police
internal(police
internal(police
internal(police
internal(police
ocer
ocer
ocer
ocer
at street)|belief(inspection needed)
at street)|belief(sound(S))
at street)|belief(view(V))
at street)|belief(sound view classication(S, V, aggressive))
When Police Officer at the Street believes that there is aggression, (s)he will stop the aggression.
internal(police ocer at street)|belief(aggression in crowd)
output(police ocer at street)|performing in(stop aggression, persons in crowd)
In case medicine is taken out of the box too early, a warning is communicated by a beep and the
information is forwarded to the Usage Support Agent (MBA2 and MBA3).
60
output(medicine box agent)|communication from to(sound beep, medicine box agent, patient)
In order to reason about the usage information, this information is interpreted (USA2), and stored in
the database (USA3).
61
Finally, temporal rules were specified for taking the appropriate measures. Three types of measures
are possible. First, in case of early intake, a warning SMS is communicated (USA4). Second, in case
the patient is too late with taking medicine, a different SMS is communicated, suggesting to take the
medicine (USA5). Finally, when the patient does not respond to such SMSs, the doctor is informed
by SMS (USA6).
Chapter 4
Abstract
Through this chapter we introduce an e-Assistance Support system that combines recent technologies
like Case Based Reasoning, Peer-to-Peer networks and Ambient Intelligence. Case Based Reasoning
is a knowledge paradigm able to use previous experiences to solve new problem situations. Peer-toPeer networks represents a well-known and proven asset to share resources among the members of
a community. Last, Ambient Intelligence is an up-and-coming technological paradigm able to assist
people and make their life easier using unobtrusive technologies. We have mixed these technologies
in order to build a seamless e-Assistance system. With this system, people have at its disposal a
mobile ad-hoc network able to solve specific problems through spontaneous connections among different nodes. We propose a system to solve daily problems taking advantage of the power of a CBR
multi-agent system (MAS) that exchanges its cases through a P2P mobile ad-hoc network. Finally,
we tested the proposed system in what we call an intelligent gym for physical training.
4.1 Introduction
Ambient Intelligence is an amalgam of technologies able to sense and actuate over a concrete environment willing achieve some well-known goals. Obviously, these goals are provided by a human
being, who is the main member of that environment and the direct beneficiary of the system. In order
to achieve these goals, the environment needs to be populated with digitally equipped devices able to
carry out computational and communication processes.
Every person facing a situation where he does not know how to act can use ubiquitous computing
and ambient intelligence in order to achieve e-assistance. To carry out this assistance, collaboration
among agents within a multi-agent system for complex troubleshooting can be used.
We present here an architecture to assist users facing novel or unknown specific situations. This
E. Mangina et al., Agent-Based Ubiquitous Computing, Atlantis Ambient and Pervasive Intelligence 1,
DOI 10.1007/978-94-91216-31-2_4, 2009 Atlantis Press/World Scientific
63
64
architecture consists in a set of intelligent agents that are able to communicate with each other through
an ad-hoc mobile network. We start from the idea that current problems or situations are, at least,
similar to the problems or situations that other users had experienced in the past. This means that
we can use the previously acquired experiences. In order to achieve those experiences we establish
a peer-to-peer network among the agents of the system. Through this network we can exchange the
previously acquired experiences, or cases.
Some studies have been done related with using centralized Case Based Reasoning intelligent
agents as well as studies about resource sharing through peer-to-peer networks. We propose a system
that combines both approaches, modeling the Case Based Reasoning agents as mobile peers and using a peer-to-peer network to exchange experiences, i.e., problems and their solutions, among them.
65
out and the working environment. It describes the software and hardware modules inter connection
in order to exhibit the behavior explained in the agent theory. Some of the possible architectures are:
Deliberative. Deliberative architectures are based on the AI planning theory. Given an initial
state, a set of plans and a final goal, a deliberative agent should know how to concatenate the
steps to achieve its objective.
Reactive. Reactive architectures claim simply decision process and adapts it depending on the
information received from the environment. These architectures, basically, look for a quickly
decision process based on a stimulus-response system.
Hybrid. Most developers and researchers believe that an architecture should not be only deliberative nor reactive. Some hybrids systems have been proposed consisting of a reactive and a
deliberative subsystems. Another systems consist of three levels: a reactive level situated at the
lowest level and sensing the stimulus from its environment, a knowledge level situated at the
intermediate level containing the knowledge of the medium and a symbolic representation and,
finally, a social level located atop managing information about the environment, other agents,
desires, intentions, etc.
Logic Based. Logic Based architectures base its decisions in a logic deduction. They rely on
the semantic clarity and power of logic. Agents constructed with this architectures are, usually,
employed in complex production domains.
BDI. Belief-Desire-Intention architectures make decisions through a reasoning process that starts
with the agent beliefs of the world and the desires it aims to achieve. Its intentions are constructed
as a result of its beliefs and its desires.
66
More extensive information about all these topics can be found at [Gonzalez (2008)].
67
depending on the context and the purpose of the system. Attributes must describe the goals and the
characteristics of the case as well as the relations between them to reach its objectives. The solution part consists of a set of guidelines on how to face the problem and some indication of the logic
followed to derive the solution. Solutions can also be showed with different formats and structures.
Depending on the situation, the solution part can incorporate indications about its grade of success in
the previous experience.
The other pillar sustaining this model is a reasoning cycle consisting of four phases: retrieving,
reusing, revising and retaining the case (see Fig. 4.2). The cycle starts with the definition of a new
case that is compared to the ones stored in the case base during the retrieving phase. Once the system
determines the most similar cases, the system reuses the information or the knowledge provided by
these solutions to solve the new problem. It is needed to recall that solving a problem does not mean
to obtain a good, accurate solution. The returned solution can be a bad one, related with the grade of
success it has enjoy in the past, but we can learn from that experience and modify it properly. Even if
the solution has been successful in a previous case, most of the times, problems are not the same so
the proposed solution may need some adaptation. This is performed in the revising phase. Finally, the
system has to construct a new case, consisting of a problem part and a solution part, and determine
if this solution is relevant enough to be retained. The retaining phase should be accomplished after
testing the created solution in the real word and seeing how well it worked.
There is another model to describe a CBR system consisting of a task-method structure. It complements the process model of the CBR cycle giving us a task-oriented view. In this model we can see
68
how every task of the system corresponds with a method to solve it. With this model every process of
the cycle model is seen as a task and it is represented like a node of a tree. These task has sub-tasks
and at the deeper level of the tree we have one o more methods to carry out the task (see Fig. 4.3).
Fig. 4.3
The CBR paradigm has some advantages over other knowledge paradigms, for example:
The knowledge domain is given by the experiences of the past and this provide the system with
the capacity to find a solution without having a complete knowledge of the domain or even when
the problem is not perfectly defined. Because using previous experiences similar in some the
degree to the current problem the system can provide an useful solution
Reflects how humans think and reason which eases the understanding of the proposed solutions
as well of the process followed to reach them.
Acquiring new knowledge is easy and less time consuming because knowledge is provided by
the cases and its solutions.
The quantity of the case base increases with the use. As the system adapts previous solutions,
the new ones can be added to extend the case base. And a bigger case base means more specific
solutions and with better quality.
Provides a way to detect the errors of the past and to avoid them. As the solution of a case can be
rated and how the solution was derived is also stored, a CBR system can determine the reasons
of a failure and act in consequence to do not repeat them.
69
Allows the system to make predictions about the success of a proposed solution. The system
stores the grade of success of previous solutions and can establish a comparative between the
achieved success and the expected one.
The solutions are created in a limited amount of time because they do not have to be elaborate
from scratch. They just have to be adapted from previous ones.
In the other hand it has to deal with some disadvantages:
Usually, external help is needed in the revising phase.
A previous case can predispose in excess the way to solve the current one.
It is not easy to manage an appropriate set of cases for several problems.
Recovering from an incorrect solution can be expensive in time and work.
4.1.4 Peer-to-peer
Peer-to-Peer (P2P) systems are point-to-point communication systems where network resources are
distributed among all its components, called peers. These resources include data, computing power
and bandwidth.
Fig. 4.4
P2P systems can be classified in two types depending on how they behave. A pure P2P system
does not include a server, or the concept of server (see Fig. 4.4). In that situation, peers depend on
each other to achieve information, resources or to route petitions. Examples of this type of systems
are Gnutella [Clip (2003)] and Freenet. In the other hand, there exist P2P system called hybrids.
These systems has a server able to obtain certain meta-data about the peers of the network and share
it with them (see Fig. 4.5). In these cases, peers start a connection with the server, and once they
process its response, they start a connection with the desired peer or peers. Examples of hybrid P2P
systems are Napster [Inc (2002)] and Groove.
70
Nowadays, we can found a mix among the above systems. Kazaa[Hemming (2001)] has peers
that possess more information and/or computing power and are called super-peers. These systems
are hierarchical where super-peers communicate freely among them and manage sets of peers.
Nowadays, P2P system are used in distributed computing application, file sharing applications
and real-time applications like instant messaging, television over IP, voice over IP, etc.
71
MANETs are a vital component of ubiquitous computing. They support the exchange of data
among mobile devices that cannot rely on any infrastructure-bases wireless networks In this situations, wireless connections on-the-fly like mobile ad hoc networks represent the most accurate and
suitable technology.
In order to maximize the battery of networks devices, it is essential to optimize their consumption and the efficiency of communication protocols. Yang [Yang et al. (2006)] proposes a peers
discovery service based on multicast requests and multicast responses.
Another aspect that should not be neglected is the routing protocol and the information the nodes
have to store in order to forward the packets. Broch [Broch et al. (1998)] give us a comparison of
different routing protocols.
72
considered adequate. With all the received solutions, the originating agent constructs the accurate
solution for the current case. Finally, and after being applied, the solution is stored in the case base
with annotations about its success. We can see a representation in Fig 4.6.
The set of intelligent agents have two explicit modules. The first one deals with the reasoning
process and the second one takes care of the communication process.
73
stored in the memory base, modeled? And, how is the case base structured in order to perform the
retrieval phase?
Regarding the first question, cases can be showed in different ways depending on factors like the
structure of the problem or the algorithms used in the retrieval phase. So, it is important to note that
the way that the information is presented in the problem part also defines how the retrieval phase is
performed. Cases can be represented using predicates, objects, structures, etc. Some of the classical
methods used are:
Textual representation. Information is represented as succession of questions and answers.
Attribute-value pairs. Every attribute contains a value or a range.
Structures. Cases are represented as a collection of objects. They are suitable for complex
domains.
We decide to model the problem part of a case as a set of attribute-value pairs, where each value
can be a real number or a nominal value. We decide to use this approach because structures requires
complex approaches to determine similarity and, although textual representation is more flexible than
attribute-value pairs, it requires human supervision.
How the case is modeled defines, as well, the structure of the case base. There have been several
approaches to structure the case memory. The main division is between flat memories, where all the
cases are at the same level, and structured memories, that rely on generalization and abstractions of
the cases to facilitate the evaluation and to allow indexation control. Some of the more important
structured memories are:
generalization-based hierarchical memories
concept-based hierarchical memories
decision tree-based memories
subsumption-based memories and,
multi layered memories.
We can find descriptions of these and some others in [Bichindaritz (2006)].
Due to its simplicity, we decided to use a flat memory, where the retrieval phase consists in comparing the new case with all the previous cases stored in the case base.
Resuming the reasoning process, we have all the agents willing to collaborate applying the retrieval phase. It consists in returning the most similar cases to the current one. So we need a formal way to define what similarity is. In our case, following [Dasarathy (1991)], we use a distance
weighted k-NN algorithm. The basic idea consists in weighing the contribution of each attribute according to the distance to query point, giving greater weight to the closer ones.
In this sense, the distance between the two cases (C1,C2) with a given set of attributes is calculated using the similarity function formula:
fx (C1 ,C2 ) =
da (x, y)
(4.1)
a=1
Where n is the number of attributes used to measure the distance between two cases and da is the
distance between two values x and y of a given attribute, where: da (x, y) = 1 if x or y is unknown,
74
Once agents have recovered the most similar cases, those exceeding the threshold. They start the
reuse phase. The collaborative agents try to solve P using its case base and send back a message to
the initiator agent Ai that is either: sorry (if every of its cases have a distance greater than the given
threshold) or a set of solutions < {(Sk ,Ckj )}, P, A j >, where the collection of pairs (Sk ,Ckj ) mean that
the agent A j has found Ckk cases in its case base endorsing solution Sk .
The initiator agent Ai has to choose the most adequate solution among all the received ones. In
order to do this a voting scheme is applied. The voting scheme defines the mechanism by which an
agent reaches an aggregate solution from a collection of solutions coming from other agents. The
principle behind the voting scheme is that the agents vote for some solutions depending on the number of cases they found endorsing those solutions.
Following Plaza [Plaza et al. (1996)], we do not want that agents, having a larger number of
endorsing cases, may have an unbounded number of votes regardless of the votes of the other agents.
Thus, we define a normalization function so that each agent has one vote that can be for a unique
solution or fractionally assigned to a number of solutions depending on the number of endorsing
cases. We denote by the set of agents that have submitted their solutions to agent Ai for a problem
P. The vote of an agent A j for solution Sk is:
Vote Sk , A j =
Ckj
j
1 + kr=1 Cr
(4.2)
Where Ckj is the number of cases found in the case base endorsing solution Sk . It is easy to see
that an agent can cast a fractional vote that is always less than 1. Aggregating the votes from different
agents for a solution Sk we have ballot:
Ballot (Sk , ) =
(4.3)
AkjVote(Sk , )
(4.4)
Finally, when Ai has selected a solution Sk , it applies the final steps of the CBR cycle. In the
revision phase the voted solution is revised by the initiator agent Ai to remove unsuitable elements
and to correct inconsistent attributes. In the retain phase, Ai has to decide if the selected solution
is added to the its case base. To make this decision, the agents evaluates how well has worked the
proposed solution.
75
an ad hoc topology, where every peer is able to establish a connection with any other peer, is useful.
In order to establish the communication we need an ad-hoc network routing protocol. These
protocols have to deal with issues like high power consumption, low bandwidth and high error rates.
There exist two categories:
Table driven protocols. These protocols try to maintain a up-to-date routing information of all
the nodes of the network. Nodes have to maintain tables with information and propagate these
tables in order to keep consistent routing.
Source-initiated on-demand driven protocols. These protocols create a route only when needed.
Nodes maintain the discovered routes while they needed and the node are reachable. In other
case, the initiate another route discovering process.
We decide to use a simple source initiated on-demand driven protocol to support communications. The physiognomy of these wireless routing protocols fits well with a very highly mobile
environment like ours. Some of the principal examples of these type of protocols are:
Ad-hoc On-Demand Distance Vector Routing (AVOC). AVOC is considered a pure on-demand
route acquisition protocol because only the nodes of a selected path maintain information about
the route and participate in table exchanges. The idea is to broadcast a request route packet until
it finds a node with a fresh route to the destination or the destination node itself. To assure a
loop-free route and to contain only the most recent information, a destination sequence number
is used.
Dynamic Source Routing (DSC). In this protocol, when a source node has to send a packet, it
first looks in its cache to see if it has a fresh route to the destination node. If not, broadcasts a
route request packet containing the destinations address, the sources address and a unique identification number. Each node receiving the packet checks if it has a fresh route to the destination
node, and if not broadcast the packet adding its own address to the route record. Route request
packets are forwarded only if the nodes address if not present in the route record. Whenever
a node its the destination or knows a valid route to it, it creates a route reply and sends it back
across the nodes of the route record.
Temporally-Ordered Routing Algorithm (TORA). TORA is a protocol that provides multiple
routes for every source-destination pair. The key of this protocol are the control messages exchanged among a small group of nodes noting the topological change.
More examples and further explanations of these type of protocols can be found in [Royer and
Toh (1999)].
Given the characteristics of our system we opted for using a protocol similar to DSC but with
slightly differences. Our system has to deal with an ever-changing environment where every node
moves freely constantly. In this situation, maintaining routes makes no sense. Routes stop being valid
at any moment, as well as new and better routes can be made up in every second.
Our communication process can be summarized as follows (see Fig. 4.7). Whenever a node
needs to make a request it is because the agent needs help with a specific case. So it disseminates a
packet with its request using a broadcast frame sent to its direct neighbors. If they decide to collaborate, as we have seen in the previous section, these one-hop neighbors answer the request.
At the same time, these nodes forward the request frame to its own direct neighbors. Every node
has its own serial number counter and is increased whenever a new request is sent. Combining the
76
serial number and the source node IP address, every packet in the network can be identified uniquely.
Nodes need to store in a table the address of the source node, the address of the node from which they
have received the frame and a unique serial number defined by the source node. This way, possible
responses coming from other nodes can be forwarded back to the source node. If a node table has
a packet already registered, it is discarded unless the packet came directly from the source node and
the previous route was created through a third node.
As we said, there are two reasons supporting this decision. First, it makes no sense keeping state
information of a highly mobile environment, where every node changes its position constantly. Secondly, as every single node is a potential candidate for the request, it makes sense to broadcast the
request among all the direct neighbors of the community.
Lets see now the format of the packets exchanged through this protocol (see Fig. 4.8). The first
field is the address of the emitting node, then the addresses of the destination node, then a time to live
(TTL) field, next the address of the source node and a field with the number of packets generated by
that node. These last two fields made the packet able to be identified unequivocally. Finally the last
field is the payload.
77
Broadcasted frames should be around only for a limited amount of time so they have a TTL field
with the number of hops allowed. Before forwarding the broadcast frame to its own direct neighbors,
every node decreases the TTL field. A node only behaves this way the first time it receives the frame.
Subsequent times the node discards the frame. As well, when a frame life expires, that is when the
TTL field reaches zero, the frame is discarded. This behavior intends to avoid the packet explosion
problem that Gnutella had to deal using a similar protocol.
78
them to sequentially organize the occupation of the machines. Besides, when a smartphone does not
know how to manage a particular case it may ask other peers (i.e. smartphones) for suggestions about
it.
In this scenario we could consider a non mobile node acting as a superpeer (see Fig. 4.9). This
object is an intelligent CBR agent too and forms an ad-hoc network with the other peers, but it has
bigger computational and communication capabilities (for instance, it can be a normal PC or a laptop). The main application of this superpeer is to collect data from the smartphones to allow the
trainer to personally supervise the users training when necessary and, at the same time, to have an
updated and complete history profile per user.
The superpeer has a global perception of the gym through the interaction with the user smartphones and helps to organize the resources as a global planner. It also collects/provides new cases
from/to the smartphones to create a bigger case base. Moreover, superpeers from several gyms could
also share their cases (see Fig. 4.9) to enhance the system through distributed learning.
In order to test our proposal, we use NetLogo programable modeling environment [Wilensky
et al. (1999)] to simulate a gym consisting of users, machines and a trainer. Users come to the gym
randomly and leave when their workout is finished or when they have spent a given amount of time at
the gym. Machines are spots where users can make exercises. They have a fixed location and every
machine allows to carry out a random number of exercises. Finally, we suppose the trainer has a fixed
location in the gym and, of course, knows how to carry out all the possible exercises.
79
Our goal is to prove that this system decreases users average waiting time, and consequently it
helps to increase the number of completed training sessions. Assuming users have to wait less time
using the system, our next question was how much is that time reduced? We also consider interesting
to estimate the number of cases needed to label the system as useful. Finally, we also wonder how
much faster an user can learn new exercises using the system.
Fig. 4.10
Fig 4.10 shows the flow-chart of a random user training session inside the gym. Whenever an
user arrives at the gym, he decides what exercise to do. If the user knows how to carry it out, he just
goes to the machine and starts the exercise. The amount of time between the arrival at the gym and
the start of the training session is considered as waiting time. Waiting time is the amount of time an
user spends at the gym without doing exercise. In contrast, if the user does not know how to carry out
the selected exercise, he has to find out how to do it. In a scenario with smart mobile devices, users
80
can learn from other users and from the trainer. Otherwise only the trainer can help them. As before,
the time spent walking to the trainer is considered as waiting time. Once the user is at trainers spot,
this may be busy attending other users. In this case, the amount of waiting time will depend on the
number of people waiting. Let twait be the users waiting time, and we can define it formally as the
sum of the time spent walking towards a machine twma , the time spent walking towards the trainer
twtr and the time waiting to be attended by the trainer twtr .
twait = twma + twtr + twtr
(4.5)
The performance of the proposed system depends on two main factors: the occupation of the gym
and the average knowledge its users. In order to simulate the occupation of the gym we have defined
four parameters: the initial amount of users (initial users), the rate at which new users arrive at
the gym (birth rate), the maximum training time per session (max time) and finally, the initial
energy of an user (user energy). An user will keep working until his energy is down to zero or the
maximum training time per session is reached.
In order to simulate users knowledge we have define two parameters: the maximum number
of exercises known by an user arriving at the gym (nun cases known) and the number of total
exercises that can be carried out in the gym (num total cases). The exercises known by an user
when arriving at the gym are selected randomly. The number of exercises known can be increased
asking the trainer or, if the user has a smart device, exchanging information with other users.
Results from Table 4.1 have been achieved in an scenario with the following parameter values:
initial users = 1. The system starts with one user at the gym.
birth rate = 1. The possibility of a new arrival at any minute is 1%.
max time = 70. The maximun amount of time for an user at the gym is 70 minutes.
energy = 8000. Every user starts its training with 8000 points of energy.
num total cases = 50. The number of total exercises that a user can do in the gym is 50.
num cases known varies from 0 to 50.
In this way we obtain an scenario with an stable population where users posses different levels
of training knowledge. This configuration derives in an average number of users around 10, with a
minimum of 1 and a maximum of 30.
In first place, simulations were carried out in a gym were users do not have any help from the
proposed system. After that, the same simulations were performed in a gym where users do have help
provided by their smartphones. All simulations were halted when 300 users have left the gym and
every different test was performed ten times. Table 4.1 shows the average values after ten executions.
The results confirm our expectations that the proposed system reduces the amount of waiting time
as well as increases the number of users able to complete its training sessions. Regarding the average
waiting time we can see that it is reduxed, in mean, by a 45%. Extremes scenarios where users do not
know how to do any single exercise (see Fig. 4.11) or where they potencially know how to do all of
them obtain reductions of 35% and 40% respectively. In terms of absolute amount of time, the first
scenario is, clearly, the one than obtain more beneficies, but in terms of relative amount of time the
best results are obtained in medium-knowldge level scenarios. The same tendency is followed by the
number of umcompleted sessions.
81
t 2wait
(min)
t 3wait
(min)
2
t trai
(min)
3
t trai
(min)
#uncompleted 2
sessions
#uncompleted 3
sessions
#o f averagecases2
in the sytem
#o f averagecases3
in the system
0/50
10/50
20/50
23/50
25/50
30/50
50/50
35.11
28.96
23.01
20.68
16.84
14.18
7.74
22.69
16.38
11.55
9.24
8.93
8.27
4.67
33.01
38.69
41.07
42.03
43.12
43.32
44.28
41.26
42.98
44.07
44.21
44.20
44.24
44.3
276
191
128
101
56
35
3
121
69
15
10
5
5
0
4.71
13.58
20.53
22.24
23.40
25.9
33.84
6.32
14.63
21.13
22.85
24.05
26.40
34.12
1
2
3
Fig. 4.11
Evolution of t wait and t train when num cases known is 0. a) Without the system, b) With the system.
Table 4.1 shows that the scenario where we use our proposed system offers the better results
when the maximum number of known cases at the arrival is 23. In this situation (see Fig. 4.12) the
average waiting time is reduced in a 55%, the number of users that are unable to complete their training sessions is reduced in a 90% and, although the maximum number of known cases at the arrival is
23, the average number of cases per user in the system is below that number. We also asked ourselves
about the number of cases needed to provide the best results of the system. This number is clearly 23
but any value between 20 and 25, as we can see in Table 4.1, also provides excellent results regarding
82
Fig. 4.12 Evolution of # of users and # users waiting (top) and t wait and t train (bottom) when num cases
known is 23. Without the system (left) and with the system (right).
Table 4.2 Test 2 results
1
2
3
nck/ntc1
t 2learn
(min)
t 3learn
(min)
0/50
10/50
25/50
35/50
50/50
170
161
145
132
110
122
121
114
104
91
83
and we create an user without knowledge about exercises. He will not finish his training session until
he learns a given number of new exercises (10 in our test). This means that this user does not lose
energy or leaves when reaching max-time. We consider different scenarios depending on the average
knowledge of the other users.
Table 4.2 shows that using our proposed system reduces the average learning time, independently
from the knowledge level of the other users.
4.4 Conclusions
We have proposed an e-Assistance support network of intelligent agents. These agents can move
around freely, and this mobility does not interfere the ability to collaborate facing up diverse problems. We have also detailed the key steps and choices of the designing and developing process. This
include choosing a knowledge paradigm and a communication protocol with all their ins and outs.
Finally, we transfer that theoretic design to a real-life case of study and perform some simulations to
test its validity.
The results achieved in the simulations confirm that using the proposed support system improves
the performance and reduces the amount of employed time. In our case, gyms users were able to
reduce their average waiting time and increase the probability of complete their training sessions in a
fixed amount of time.
Regarding the improvements of the system, the most focused and conscientious work must be
applied to the reasoning process. Improvements in this area may include refinements in case representation and memory base structure, as well as new techniques to be applied in the revision phase of
the CBR cycle.
Chapter 5
Christopher McCubbin, R. Scott Cost, John Cole, Nicholas Kratzmeier, Markus Dale,
Daniel Bankman
The Applied Physics Laboratory, Johns Hopkins University, 11100 Johns Hopkins Road,
20723 Laurel, Maryland, USA
mccubcb1|costrs1|colejg1|kratznm1|daleme1|bankmdj1 @jhuapl.edu
Abstract
We have developed a concept ubiquitous agent-based service oriented architecture called Active
Metadata. Due to the nature of the target environment and the resources to be integrated, it is difficult
to easily field and evaluate approaches to metadata distribution. We have developed a simulation environment which allows for simulation of flexible ubiquitous computing environments, and allowing
rapid prototyping and metrics collection of new agent behaviors. Building on these results, we have
designed and built a SOA which combines the advantages of swarming technology and active metadata, extending SOA and service invocation capability to these tactical edge networks. Autonomous
mobile nodes within our swarming architecture also have the capability to reconfigure the edge network topology to optimize service response time, while at the same time completing complementary
tasks such as area search, while communications between the swarming components is limited to
local collaboration.
5.1 Introduction
The increasing need for more easily composable and adaptable intelligent systems in distributed agile
environments has naturally led to the need for Service-Oriented Architectures (SOAs) in the ubiquitous computing domain. The issue of creating a robust SOA in an agile environment poses several
difficulties. Because information resources available may not be known during design or even deployment of a future agile network, the agile information integration will require run-time rather than
static integration. Personnel costs and delays associated with programmer-driven integration makes
using human integrators at best undesirable and often infeasible for agile command and control infrastructures. We therefore conclude that information resources must be capable of autonomously
integrating during the course of an operation. In order to effectively self-integrate, resources must
be able to recognize and understand peer resources whose identity and capabilities are not known at
E. Mangina et al., Agent-Based Ubiquitous Computing, Atlantis Ambient and Pervasive Intelligence 1,
DOI 10.1007/978-94-91216-31-2_5, 2009 Atlantis Press/World Scientific
85
86
deployment. To support this, each resource must be able to determine the range of specific relevant
and available resources. That is, resources must recognize the set of resources that can effectively
be used, and that can provide the most relevant information or valuable service. One approach is a
directory-based approach that supports the registration of resource information with a centralized (or
distributed) directory service. This directory service can in turn be queried by resources requiring a
match. While this provides an effective means of coordination in some situations, there are drawbacks. In a highly dynamic environment, information in the directory may not be updated frequently
enough to reflect reality. Also, there is significant overhead associated with maintaining a common
directory, especially as the scope of the region or the number of entities increases. Also, this approach assumes that all entities have persistent access to a directory service. In a highly dynamic or
hostile environment, this may be too strong an assumption to make. Our emphasis in this work is on
environments in which there is a benefit to exploiting significant amounts of autonomy on the part of
the framework elements.
An alternative approach assumes that resources share information in a distributed manner. In
contrast to the pull-based directory approach, service providers have a responsibility to make themselves known directly to the device network. This puts more of a burden on the service provider, but
has the advantage that resource information is distributed in advance, and therefore may be available
even if access to resources or directory servers is not. We developed an agent-based distributed metadata distribution framework, called the Active Metadata Framework (AMF), that realized these ideas
using a federation of mobile agent platforms.
One serious issue with highly distributed agent-based computing platforms is the inability to
easily and rapidly prototype new behaviors. Often behaviors that look reasonable in theory show
unexpected or undesirable emergent behavior once deployed. For many agent-based ubiquitous applications there exists the need for a simulation environment where various aspects of the system can
be controlled to allow for realistic testing of agent behaviors.
Faced with these issues during field applications of the AMF, we were motivated to develop
a simulation framework that would allow for rapid behavior prototyping. With this framework we
are able to prototype new active metadata strategies without the issues of distributed timing, data
collection, and physical limitations. The simulation environment allows for simulation of flexible
ubiquitous computing environments while enabling rapid prototyping and metrics collection of new
agent behaviors.
Using lessons learned during the analysis of simulation and experiment, we refined the AMF
concept to utilize swarming and Web Service technology to improve the utility and robustness of the
concept. Our most recent approach, a modified version of a swarming model using push technology,
put the burden on the swarm network by allowing the swarm communications to maintain and distribute metadata. Service activations were also carried out in a similar manner. This provided for
a scalable, distributed approach to the advertisement and activation of resource information with a
domain that was also tolerant of network delays and failure.
In section 5.2, we describe the simulation framework that was designed to test new methods of
distributing metadata in the classic AMF paradigm. In section 5.3, we describe the Swarming Active
Metadata Framework (SWARM-AMF) ideas that were first explored in the simulation environment.
87
infrastructure while accommodating future change. An application can be flexibly composed of services. Services can be reused between applications. Loose coupling, implementation neutrality and
flexible configurability are some of the key elements of SOA [Huhns and Singh (2005)]. Current implementations of SOAs are typically Web Services-based using the HTTP communications protocol,
SOAP [Mitra and Lafon (2007)] for exchanging messages, the Web Services Description Language
(WSDL) [Booth and Liu (2007)] for describing web services, and Universal Description, Discovery
and Integration (UDDI) [Clement et al. (2004)] for registering services.
88
wieldy to test for the reasons stated above, we have implemented a streamlined simulation version of
the AMF described in section 5.2.
The AMF consists of a set of nodes running on platforms. These platforms may be connected by
a persistent network, such as the internet, or may be part of a looser network such as a Mobile Adhoc NETwork (MANET). The collection of these nodes form a virtual SOA. Services and consumers
may connect to this SOA by connecting to their local AMF Node and performing advertisements or
queries, respectively. This architecture is like many other SOAs. The unique aspects of AMF include
the ways in which service advertisements and metadata are distributed to other nodes, how the service
network is formed in the face of unreliable connections, and how queries are analyzed.
In order to advertise a service to the AMF, a service first formed a metadata object representing
itself. The service then transmitted this metadata object to the local AMF node. To represent the
service, the node created a number of Active Metadata Agents (AMAs). AMAs could also represent
an a-priori service need created by a consumer. In the presence of highly unreliable network connections, such as MANETs, implementing a centralized service directory was not feasible. The AMAs
took the place of the directory service by representing the searchable metadata of the service that
created it. These AMAs were pushed to other nodes in an intelligent way, anticipating where queries
would be made that required the service.
Using the information in the node regarding current network conditions and locations of the other
AMAs, the AMA made a decision about whether or not to migrate, and if so, where. This decision
was influenced by the presence of other AMAs that provided similar services, and any agents that
represented a consumer service need. We envisioned intelligent migration algorithms that would take
into account query histories, consumer a-priori information, and other information to optimize agent
placement in the network.
An AMA also periodically contacted its node of origin to retrieve updated metadata information
from their originating node, if that node was reachable through the network.
Fig. 5.1
An AMF Node could contain supporting data structures, as seen in figure 5.1. The node shown is
from the embedded AMF implementation and contains components to create (instantiator), customize
(detailer), and migrate (deinstantiator and network bridge) AMAs. The simulation implementation
had slightly different components as described in section 5.2.3. We extensively tested this architecture
using a simulation described in section 5.2.
89
5.2 SimAMF
The classic AMF framework as described in section 5.1.2.1 was difficult to analyze when using the
full-up mobile agent platform that it was originally written in. We created a simulation environment
to more effectively test new ideas for the framework. The simulation system and experiments we
performed with it are described in this section.
5.2.1 Motivation
Classic AMF implemented an agent-based approach to dynamic resource integration. Using this
approach, agents representing resources were tasked with targeting and supporting consumers or
partners of that resource, by migrating to and providing information about their home resource, and
if possible, extending proxy functionality. This involved the emplacement of support nodes at various locations throughout the environment (ideally, resident at every site which consumes or provides
resources, such as a sensor installation, control station, vehicle based workstation or command platform, etc.) Aspects of this work that we explored included representations for knowledge of the
physical domain, and algorithms and protocols governing agent migration and interaction or negotiation. Due to the nature of the target environment and the resources to be integrated, it was difficult
to easily field and evaluate approaches to metadata distribution. With this type of framework, it was
difficult to hypothesize and experiment with various strategies. Previous experiments had involved
instrumentation of ground stations, autonomous and manned vehicle systems in urban and desert environments, and, while extremely valuable exercises, had been labor intensive and time consuming.
To mitigate these issues, we created a simulation framework that allows us to experiment with various
factors, such as distribution protocols and migration schemes, without the need to field actual AMF
nodes. This simulation framework modeled the migration of AMAs among virtual nodes, simulating
both environmental distribution of nodes and the intervening network infrastructure. Applications
interfaced directly with this simulated environment, in the same way that they would interact with
distributed AMF nodes. This facilitated testing of component interaction, while also allowing for
some control over issues in the network layer. The main design goal was to make the simulation environment as realistic as possible with respect to the nodes themselves, and then to extend the range
of control/simulation with respect to the network environment.
90
which communicate with each other [Thanh and Jorstad (2005)]. A SOA must support three functions: to describe and publish a service, to discover a service, and to consume or interact with a
service. The AMF migration of metadata, explored in section 5.2.3, ties in very closely with these
concepts.
Combining agent technology, SOAs, and ubiquitous computing technologies is an active area of
research. Implementing SOAs on ubiquitous computing networks presents a unique set of problems.
Since network connectivity is highly dynamic, even notions such as point-to-point messaging become
an issue. Various routing protocols have been developed, but most prominent routing protocols only
search for routes that exist at the time of search and are not delay-tolerant. Some research has been
done in delay-tolerant routing. Depending on the ad-hoc operational concept, a centralized directory
of services, popular in pull-style SOA networks, may not be a feasible option. Several alternatives
exist, such as on-demand advertising and directory replication.
Moro et al. [Moro et al. (2004)] describe the advantages of using agents in a Peer-To-Peer
(P2P) environment to overcome the P2P limitations of message expressiveness, data models, data
integration/transformation and routing. In [Smithson et al. (2003)], we see an example of an agentbased P2P system that uses queries (an information pull paradigm) to discover resources. That
system consists of ResultAgents that generate a resource query, SearchAgents that distribute the
queries to their peers and Resource SearchAgents that match the query against ontology-based
resource descriptors. The resource descriptors remain stored with the resource that they describe.
The AMF in contrast uses an information push paradigm to distribute resource metadata. The
K-Trek system [Busetta et al. (2004)] describes a framework where resource information is also
statically stored with the resource in form of a K-Beacon which stores contextual information
about a specific location and periodically broadcasts information about itself. This information
source can be discovered by K-Voyager mobile devices based on location proximity. AMAs allow
information about a resource to be spread to locations in the network where this information can likely
be used beyond location proximity. The Tuples On The Air (TOTA) system described in [Mamei et al.
(2004)] provides a P2P middleware which uses tuples with content and propagation rules to distribute
location- and content-based information which is similar to the Active Metadata system. However,
the Active Metadata system also provides proxy services to resources via the instantiated AMAs
representing a resource. TOTA also used an emulator environment to analyze propagation in a larger
scale MANET environment.
5.2.3 Implementation
The AMF implementation was written in Java with some specific goals in mind. We wanted the
ability for rapid prototyping and testing of different AMA behavior strategies as well as the different
actions from users of the AMF network. In addition, a flexible, abstract framework was needed
for the porting of the simulation to field tests. We wanted to make the framework flexible, so that
as much code as possible from a simulation could be ported directly into field tests. These goals
were accomplished through the use of an abstract simulation framework, which would apply to all
strategies and underlying network representations.
91
would be allowed to execute any additional user action, such as updating the metadata for its AMAs.
Each AMA was represented as a class which holds its assigned metadata. The metadata class
would be abstract, as to allow several possible types of implementing metadata. In order to implement its behavior strategy, the AMA was assigned two abstract classes, behaviors and abilities. The
behaviors class implementation would allow for the implementation of different migration and updating strategies by the AMA, whereas the abilities class implementation provided the basic network
abilities to the behaviors class in order to perform its strategies.
Behaviors The abstract behaviors class was implemented by two functions, an initialization function, and a method to execute the AMA strategy. The initialize function was invoked when the AMA
is first created by its originating nodes user proxy. From then on, each timestep the execute strategy
method was invoked on the AMA. When calling this function, the behavior was additionally provided with whether or not this was the first execution timestep since a successful migration, in case
for example, the behavior called for a logging to its current nodes database upon migration.
Abilities An abilities implementation was the interface with which the behaviors class interacts
with the framework. Functions such as tryToUpdate and tryToMigrate were implemented here according to the underlying framework implementation. For example, these functions may be much
more complex if the framework was implemented for field tests, whereas they might be fairly simple for simulations. This flexibility allowed for rapid prototyping and portability of our code across
different platforms.
92
5.2.5 Experiments
Previous embedded versions of AMF have been tested in live scenarios that were designed to exercise the AMF concept. Since the framework was embedded, it was difficult to test different AMA
behaviors and measure their relative merits. One of the main purposes of the current simulation
framework was to rapidly test and evaluate new concepts for active metadata systems. To determine
if the framework that we developed met this criteria, we reimplemented the behaviors of the embedded AMF in the new simulation framework and compared the development time, metrics capabilities,
and visualization of the two systems.
Fig. 5.2 Satellite image of AMF testing area. Two ground stations are the two dots in one of the right fields,
while the traversable area of the moving vehicle is shown as the dotted line.
For this set of experiments, we allowed each AMF node to create several AMAs which would
disperse through the network. We tested the persistence of our network by starting the moving vehicle
out of communication range of the ground stations, and allowing it to drive slowly past the ground
stations. We allowed the vehicle to be in range of the ground stations for approximately one minute.
Additionally, we started the vehicle within range of the ground stations, and then allowed it to drive
in and out of communication range over several minutes.
This test was implemented on the full-up embedded active metadata framework using real net-
93
work communications and an agent system based on the JADE agent environment. Development and
testing took approximately three man-months.
5.2.5.3 Result
After we implemented the system test in the Simulation Framework, it was clear that the framework
was a superior way to evaluate the AMA behaviors under consideration, for several reasons. Since
the simulation could be paused or stepped at any point, it was easy to see effects that the individual
behaviors had on the emergent pattern of the holistic system. It was also invaluable to visualize the
complete state of every node at any point in time, which is very hard with asynchronous distributed
systems. Though the purpose of this exercise was to evaluate the simulation framework, it was
impossible not to immediately determine flaws in the AMA behaviors and to suggest solutions. In
fact, we were able to quickly and easily try out several improvements to the AMA behaviors and run
what-if scenarios in seconds. We estimate that running these scenarios in the original, embedded
distributed system would have taken hours or days.
It was immediately clear from the testing that failing to replicate enough AMAs led to service
failure in many scenarios. On the other hand, replicating many AMAs often led to algorithmic difficulties and overkill when many AMAs describing the same service became trapped in an isolated
part of the network. Great care had to be taken in the migration algorithms to not have all AMAs of
one service attempt to go to the same place, and often these algorithms would have great difficulty
dealing with the limited network connectivity between nodes. We decided to try another alternative
for metadata distribution, which is described in the following section. This new alternative solved
many of the problems found with the simulation and proved to be much more robust and successful
at fulfilling the goals of the framework.
5.3 SWARM-AMF
Testing in the simulation environment and other factors led to a design decision to make the metadata objects as lightweight as possible, and to distribute them as widely as possible with the least
overhead. The agency of the metadata objects was a concept deemed to be too computationally
expensive. As a replacement, we sought a network infrastructure that allowed for a distributed, asynchronous backboard to share and update the metadata in efficient a manner as possible. Fortunately,
our previous work on swarming systems had just such an infrastructure built in and readily available. This section describes the new paradigms and implementation of the AMF framework when the
nodes are perceived as members of a swarm and the metadata was pushed into the virtual blackboard
of the swarming network. We call this system SWARM-AMF. A description of the design of the
SWARM-AMF system can be found in section 5.3.2.
We performed a number of simulation runs to tune the SWARM-AMF algorithms. A description
of the simulation setup and some of the results can be found in section 5.3.3. Once our algorithms
were sufficiently tuned, we tested the system with Unmanned Aerial Vehicle (UAV) hardware in the
loop at the Tactical Network Topology (TNT) experiment. The details of this experiment and the
94
5.3.1 Background
In this section we describe some of the technologies that are important for understanding the design
of SWARM-AMF.
95
level command and control capabilities on board of Office of Naval Research (ONR)s Unmanned
Sea Surface Vehicle prototype. In these experiments the DCF algorithms were used to generate
operational coordination between Unmanned Sea Surface Vehicles (USSVs) and other cooperating
vehicles.
5.3.1.2 Microformats
The purpose of microformats [Allsopp (2007)] is to provide machine-readable semantics in a web
page along with human-readable content. Microformats are designed for humans first and machines
second: they exist as additions to the page markup and do not change or modify the display of information. On the internet, microformats serve as standards for semantic markup so that different
services and software agents can aggregate and interpret microformatted content. Without microformats, complex artificial intelligence is necessary to gather semantics from plain text. Several
microformats are already widely used, such as hCard and hCalendar, and more are being developed
every day. hCard is designed for marking up contact information (for people, places, and things) and
organizes data such as name, location, address, phone number, etc. hCalendar is used for marking up
events and dates, and is currently used by the new online planning system Eventful.
Microformats are not a new language for semantic markup like Resource Description Framework
(RDF); they simply add semantics to regular HyperText Markup Language (HTML) code. In most
cases, microformats are coded as spans and divs around plain text with standardized names. For
example, the hCard microformat uses HTML markup in the form of class names, hidden from human
readers but clearly visible to machine interpreters. By microformatting this page content, it is directly
parsable by web services.
In the AMF application, microformats served as embedded semantics in metadata pages that
make the services on the tactical network machine accessible. This microformat was designed to
provide all of the necessary information that a machine agent needed to construct the same HyperText
Transport Protocol (HTTP) request that the metadata pages used to communicate with the services.
96
Fig. 5.3
Now, the question remained, how do clients discover the metadata, and how does it invoke the
service? If we were in a fully-connected strategic environment this would be a simple matter, and
is routinely performed using the internet paradigm. A client wishing to find a service uses some kind
of search engine to find the metadata, also known as the webpage, of an available service. The client
then loads the webpage, which has details on how to invoke the service. For example, the Amazon
webpage has a field for searching its book database. The client fills in the appropriate query and
executes it, using a HTTP POST operation to send data to the (connected) service. The service then
generates an HTML reply and responds to the query, either with a new webpage or by updating the
current page if it is using something like Asynchronous JavaScript and XML (AJAX).
This way of doing things breaks down in several places in our target environment. Most importantly, the network is not assumed to be fully connected. This fact alone implies many difficulties.
There can be no centralized service search engine since we are not guaranteed to be connected to
such a device often, or indeed, ever. Broadcast search, as is done in the case of wireless routing, is
equally ineffective. A further difficulty with this environment is that services cannot be assumed to
be reached directly. Therefore the service itself cannot host the server that serves metadata web pages
nor can the service be invoked directly using HTTP POST.
The best we can hope for was that using mobile nodes, there will eventually be a delay-fraught
path from a service to a client and back that must include bucket brigading of data through the
mobile nodes. Therefore we must use a delay-tolerant networking style if we wish to get data to the
right places in this network. Our system, referred to as SWARM-AMF, leverages the delay-tolerant
technology of the APL SWARM and DCF systems. As described in section 5.3.1.1, the SWARM
system contains a virtual shared blackboard called the belief network. This device allows for delay
tolerant communication of small pieces of data around the swarm.
Using the belief network, we can create a delay-tolerant version of the internet-style service
architecture discussed previously, with some modifications. We use the belief network itself as the
ultimate repository of all relevant metadata. When a service comes online, it creates a metadata
webpage and deposits it in the belief network.
We also move the webserver that handles human client requests to the client (or a machine always
network-connected to the client). On this client-side webserver we have a daemon running that
periodically looks at the belief network and receives metadata present there. This daemon also creates
97
5.3.3.2 Results
Each algorithm was run 10 times each to ensure a good sample size. Each run lasted until all requests
(about 50 per client) were fulfilled. The average response time and maximum response time were
calculated based on timestamps for each one of these tests. When we average these metrics over the
tests, we get the results found in Figures 5.4 and 5.5. In Figure 5.6, the latency (time for a response to
be fulfilled) for one of the runs made in Test 3. The left end of a bar denotes the request being made
while the right shows when it was fulfilled. As can be seen, some requests were fulfilled faster than
others based on what the algortihm took into account for its probability calculations.
For the maximum response time, the closest first algorithm seemed to be the least suitable
algorithm. This made sense: the algorithm did not consider the age of the requests when it makes
decisions. The UAV wouldnt take the time to fly far away to fulfill the more distant, older requests.
The oldest firstalgorithm, as expected, usually performed best under this metric.
When the average response time was calculated, the closest firstalgorithm still was the worst
algortihm in all three configurations. Since the clients and services were arranged in a circular pattern,
the closest first algorithm could take advantage of coincident routes to minimize average response
time, similar to the elevator algorithm for disk access. However, this resulted in flying mostly around
the circle of clients and services before dropping off responses, resulting in higher times.
As can be seen in this data, even in these simple examples there didnt seem to be a clear win-
98
ner amongst these algorithms when measured against these metrics. The closest first algorithm
performed the worst in all three configurations, but not by a large enough margin to make the data
conclusive. More study needs to be done to determine which algorithms perform best under which
scenarios.
99
5.3.4.1 Scenario
We used a chemical and biological agent monitoring scenario. Figure 5.7 shows a notional scenario
with ground vehicles and UAVs in a tactical edge network environment. The ground vehicles were
equipped with biological and chemical sensors to detect and alert on bio-chemical threats. All mobile
vehicles used wireless communications and the circle around each vehicle indicates the communication range. In the tactical edge network one role of the UAVs is to act as communications links.
The AMF is distributed over all vehicles and proxy services. The UAVs can transport metadata between the ground vehicles (edge-to-edge communications), between the ground vehicles and strategic services (edge-to-strategic communications) and from strategic services to the ground vehicles
(strategic-to-edge communications). The Metadata could also be used within the strategic network
as information retrieval proxies (strategic-to-strategic communications). Service invocation was also
performed by transport over the UAV network, when necessary. The tactical network communicated
via the SWARM software belief network. Using SWARMing, the UAV network reconfigured itself
to provide for more optimal metadata distribution and service invocation.
5.3.5 Results
In testing the SWARM-AMF system, our primary objectives were threefold: to have multiple UAVs
self-coordinate to provide wide area communications coverage based on Unattended Ground Sensors
(UGSs), Command Post location, and operator queries; to have multiple UAVs receive requests for
information from an operator control station and change their flight paths to respond to those requests,
and to acquire telemetry and Received Signal Strength Intensity (RSSI) data on each platform to
analyze performance of autonomous vehicles and mesh network.
APL successfully demonstrated the SWARM-AMF system at the TNT experiment in Camp
Roberts, California in February 2008. A picture of the setup area with distances involved can be
seen in Figure 5.8. Our UAVs were flying at an approximate airspeed of 15 m/s. The communications range imposed on the devices was 150m. During the demonstration, a user at a Command and
Control (C2) station using a laptop or handheld device was able to request information via a dynamically discovered web page, have the requests routed across UAVs to two ground-based services, and
have the responses routed via the mesh network back to the C2 station so the human operator viewed
the query results. In doing so, we met the first two objectives above. We also captured the following
data from the experiment:
Time stamped positions of all APL UAVs
Time stamped RSSI information for all network nodes
Time stamped sensor readings from Chemical Biological Radiological Nuclear (CBRN) UGS
From the data we can conclude the average round-trip time to obtain a response to a query was
166 seconds, compared to the theoretical minimum time of about 140 seconds (if a UAV were already
within comms range of the command station when the request was made). No queries were lost and
all queries were eventually answered. In addition, the system ran quite well during a later test when
there was significant additional traffic on the wireless connections. Overall, the system worked as
designed and there were no significant problems.
5.3.6 Conclusions
In our efforts to support the rapid and dynamic integration of resources in various environments, we
continue to explore various aspects of AMF as an alternative to, or extension of, existing SOA architectures, with an emphasis on node independence and flux in the discovery layer. The development
100
Fig. 5.7 AMF-based UAV and ground vehicle nodes in a tactical network with reachback capability to strategic
network and services
of this simulation framework has greatly enhanced our ability to explore different issues relating the
development of such an architecture, while maintaining an easy transition path to fielded implementations. For example, it affords us the ability to explore variations on migration protocols or resource
matching algorithms, while interfacing directly with/supporting real applications, but without the
need to field multiple, distributed nodes, thus isolating key aspects of the research. This ability to
turn ideas around quickly, and rapidly drop them into field exercises is important in that it allows
us to acquire feedback from users in realistic, often harsh environments, and to interact with other
research components in real-world exercises, maximizing the value of our time in the field. We will
101
Fig. 5.8
continue to develop the simulation framework and extend its capabilities as a means of furthering this
research.
102
Chapter 6
Abstract
In this chapter we describe Cooperative Surveillance Agents (CSAs), which is a logical framework
of autonomous agents working in sensor network environments. CSAs is a two-layer framework. In
the first layer, called Sensor Layer, each agent controls and manages individual sensors. Agents in
the Sensor Layer have different capabilities depending on their functional complexity and limitation
related to specific sensor nature aspects. One agent may need to cooperate in order to achieve better
and more accurate performance, or need additional capabilities that it doesnt have. This cooperation
takes place doing a coalition formation in the second Layer (Coalition Layer) of our framework.
In this chapter we have proposed a framework architecture of the CSAs and protocols for coalition
management. The autonomous agents are modeled using BDI paradigm and they have control over
their internal state. But cooperative problem solving occurs when a group of autonomous agents
choose to work together to achieve a common goal and make a coalition. This emergent behavior
of cooperation fits well with the multi agent paradigm. We present an experimentation of CSAs. In
this environment, the agent perception is carried out by visual sensors and each agent is able to track
pedestrians in their scenes. We show how coalition formation improves system accuracy by tracking
people using cooperative fusion strategies.
6.1 Introduction
Third-generation surveillance systems [Valera and Velastin (2005)] is the term sometimes used in
literature to refer to systems conceived to deal with a large number of cameras, a geographical spread
of resources, many monitoring points, as well as to mirror the hierarchical and distributed nature of
the human process of surveillance. From an image processing point of view, they are based on the
distribution of processing capacities over the network and the use of embedded signal-processing
devices to get the benefits of scalability and potential robustness provided by distributed systems.
Usually surveillance systems are composed of several sensors (camera, radar) to acquire data from
E. Mangina et al., Agent-Based Ubiquitous Computing, Atlantis Ambient and Pervasive Intelligence 1,
DOI 10.1007/978-94-91216-31-2_6, 2009 Atlantis Press/World Scientific
103
104
each target in the environment. These systems face two kinds of problems [Manyika and DurrantWhyte (1994)]: (1) Data Fusion: It is related to the combination of data from different sources in
an optimal way [Waltz and Llinas (1990)]. (2) Multi-sensor Management: It assumes that the previous problem is solved, and it is in charge of optimizing the global management of the joint system
through the application of individual operations in each sensor [Molina et al. (2003)]. This research
is focused on solving third-generation surveillance systems problems using CSAs architecture, an
autonomous multi-agent framework based on BDI agency model. The BDI model is one of the best
known and studied models of practical reasoning [Rao and Georgeff (1995a)]. It is based on a philosophical model of human practical reasoning, originally developed by M. Bratman [Bratman (1987)].
It reduces the explanation for complex human behavior to a motivational stance [Dennett (1987b)].
This means that the causes for actions are always related to the human desires ignoring other facets
of human motivations to act. An finally, it also uses, in a consistent way, psychological concepts that
closely correspond to the terms that humans often use to explain their behavior. In CSAs architecture
each agent has its owns Beliefs, Desires and Intentions. Therefore agents are autonomous, some of
them monitor their environment through a sensor, react to changes that they observe and maintain
their own Beliefs, Desires and Intentions. But they can cooperate with others agents for two different
objectives:
(1) To get a better performance or accuracy for a specific surveillance task. In this way, we incorporate complementary information which is combine through data fusion techniques.
(2) To use capabilities of other agents in order to extend system coverage and carry out tasks that
they are not able to achieve alone.
In this sense, the concept of coalition appears when a group of autonomous agents choose to work
together to achieve a temporal common goal[Wooldridge (2000)]. The process to make a Coalition is
called Coalition Formation (CF), CF has been widely studied [Kahan and Rapoport. (1984); Ketchpel
(1994); Raiffa (1984); Shechory and S.Kraus (1995)], but there are few works related to surveillance
systems. A CF starts at one moment to achieve one task, and when this task ends the Coalition
breaks off. In the next section we show some related works , later on section 3 we show the CSAs
architecture. In section 4 we describe how we fuse the information obtained by each agent during
coalition maintenance, then we show the experimental results of the example. Finally we include
some conclusions and future work.
105
(2004)]. In [Besada et al. (2004a)] the authors propose a multisensor airport surface surveillance
video system integrated with aircraft identification. An interesting example of a multi-tracking camera surveillance system for indoor environments is presented in [Nguyen et al. (2003)]. The system
is a network of camera processing modules, each of which consists of a camera connected to a computer, and a control module, which is a PC that maintains the database of the current objects in
the scene. Each camera processing module uses Kalman filters to enact the tracking process. An
algorithm was developed that takes into account occlusions to divide the tracking task among the
cameras by assigning the tracking to the camera that has better visibility of the object. This algorithm
is implemented in the control module. A coordination between two static cameras is implemented
in [Patricio et al. (2007)]. The authors present an indoor scenario where two cameras deployed in
different rooms are able to communicate and improve their performance. In [Molina et al. (2002)]
the authors have described some interesting strategies for coordination between cameras for surveillance. They advocate priorization between sensing tasks and also touch on the concepts of conflict
management and hand-off. As has been illustrated, a distributed multi-camera surveillance requires
knowledge about the topology of the links between the sensors and devices that make up the system
in order to collaborate, for example, in tracking an event that may be captured on one camera and to
track it across other cameras. Our chapter presents a multi-agent framework that employs a totally
deliberative process to represent the cooperation between neighboring sensors and to manage the coordination decision-making in the network. The distributedness of this type of systems supports the
sensor-agents proactivity, and the cooperation required among these agents to accomplish surveillance justifies the sociability of sensor-agents. The intelligence produced by the symbolic internal
model of sensor-agents is based on a deliberation about the state of the outside world (including its
past evolution), and the actions that may take place in the future.
106
Fig. 6.1
MAS architecture
Context Agent: It provides dependent information of the context where this being made the
monitoring.
Interface Agent: The input/output agent interface of the multi agent system. It provides a graphical user interface to the end user.
In the Cooperative Surveillance Agents framework, the surveillance-sensor agent Beliefs represents the knowledge about its own capabilities, neighbor surveillance-sensor agents capabilities
and the environment information gathered by its sensor. Let assume that n is equal the number
of autonomous surveillance-sensor agents in the multi agent system and S the set of autonomous
surveillance-sensor agents S = {S1 , S2 , . . . , Sn }. Therefore we can represent each surveillance-sensor
agent Beliefs as:
i(Bel Si Env(t)), the information of the current surveillance-sensor agent environment at time t.
i (Bel Si Ci ), its own capabilities.
Let i the neighborhood of a surveillance-sensor agent Si , where (i S) (i = 0),
/ then
i (Bel Si j i (Bel S j C j ), the surveillance-sensor agent Si knows its neighbor surveillancesensor agents capabilities.
Let assume that k is equal the number of fusion agents in the multi agent system and F the set of
autonomous fusion agents F = {F1 , F2 , . . . , Fk }, then we can represent each fusion agent Beliefs as:
Let i the subgroup of surveillance-sensor agents that are coordinated by the fusion agent Fi ,
/ then i (Bel Fi j i (Bel S j Env(t)), all the fusion agents knows
where (i A) (i = 0),
the environment of the surveillance-sensor agents that they coordinate.
i(Bel Fi j i(Bel W j C j)), the fusion agent Fi knows the capabilities of all the surveillancesensor agents that are managed by.
Let Ri a record agent, then we can represent record agent Beliefs as:
i (Bel Ri Env(t)), the information of the current record agent environment at time t.
Let Pi a planning agent, the we can represent planning agent Beliefs as:
i (Bel Pi Map(t)), a map of the situation at time t.
Let Xi a context agent, then we can represent context agent Beliefs as:
i j (Bel Xi Ctxt(S j )), the context information of all the surveillance-sensor agents.
107
Sometimes the agents in CSAs need to work together in order to perform a specific task. Each
agent is able to cooperate with neighborhoods (a subset of agents of the multi agent system that
could form a coalition). Depending on the sensor nature and the abilities of the agent, each agent
has different capabilities, Cl for specific surveillance-sensor tasks. Temporarily, the autonomous
agents are able to work together with neighbor agents in order to cooperate with each other. This
cooperation takes place in the Coalition Layer. Let suppose that O is the set of targets at time t:
O = {Ot1 , Ot2 , ..., Otj }.
Definition 1 Apply (Ai ,Ck , Otj ). Is a function that apply capability k of agent i on the target j at time
t.
(6.1)
Apply : Ai Ck Otj Boolean
Definition 2 Coalition at time t is a triple i =< Coi , Cl , Otk >. Where Coi A is a subset of
autonomous agents such that at time t j Coi
Apply (A j ,Cl , Otk ) is true. Therefore, a Coalition is a temporal group of autonomous agents doing
a specific action for a particular target together. Desires capture the motivation of the agents, the
final goal of each surveillance agent is the permanent surveillance-sensor of its environment. So, the
Desire of our surveillance-sensor agents is:
i (Des Si Surveillance(Ok )).
The Desire of the fusion agent is to fuse the information received by the surveillance-sensor agents:
i (Des Fi FuseData(Ok ))
The Desire of the record agent is to record a specific target:
i (Des Ri Record(Ok ))
The Desire of the planning agent is to make inferences on the targets and the situation:
i (Des Pi ToPlan(Ok ))
And finally, the Desire of the context agent is to maintain context information:
i (Des Xi MaintainCtxtIn f ormation(Ok ))
108
Intentions are the basic steps the agent has chosen to do in order to achieve its Desires. The
surveillance-sensor agents intentions are:
i (Int Si j i (MakeCoalition(S j , Otk , Cl ))), all the surveillance-sensor agents (Si ), have
the intention to make a coalition with other surveillance-sensor agent (S j ) of their neighborhood
that involves target Ok at time t in order to apply the capability Cl .
i (Int Si j i (AcceptCoalition(S j , Otk , Cl ))) , all the surveillance-sensor agents (Si ), have
the intention to accept making a coalition with other surveillance-sensor agent (S j ) of their neighborhood that involves target Ok at time t in order to apply the capability Cl .
i (Int Si j i (DenyCoalition(S j , Otk , Cl ))) , all the surveillance-sensor agents (Si ), have
the intention to deny making a coalition with other surveillance-sensor agent (S j ) of their neighborhood that involves target Ok at time t in order to apply the capability Cl .
i (Int Si LeaveCoalition(Si , Otk , Cl ))), all the surveillance-sensor agents (Si ) have the intention
to leave the coalition that involves the target Ok at time t and the capability Cl .
i (Int Si Tracking(Ok )), in the multi agent system exists at least one surveillance-sensor agent
with the tracking capability.
i (Int Si Recognition(Ok )), in the multi agent system exists at least one surveillance-sensor
agent with the recognition capability.
i (Int Si Calibration), in the multi agent system exists at least one surveillance-sensor agent
with the calibration capability.
i (Int Si j i (SendTargetIn f o(A j , Otk , Cl ))), all the surveillance-sensor agents can communicate to all the others agents (A j ) belonging to the same coalition the information about target
Ok at time t.
The Intentions of the fusion agent are similar, but one important Intention of fusion agent is:
i (Int Fi j i (FusionTargetIn f o(A j , Otk , Cl ))), the intention to receive and fuse information from other agent A j belonging to the same coalition about the target Ok . at time t.
The Intentions of the other agents are similar and we omitted them due to limitations of space.
109
Accept-Coalition.
< A j , accept proposal (Ai < Ai , MC >, (A j , Otk ,Cl )) > <
A j , in f orm(Ai , IAi Done(< Ai , MC >,
(A j , Otk ,Cl )) >
Reject-Coalition. < A j , re ject proposal (Ai , < Ai , MC >, (A j , Otk ,Cl )
, ) > < A j , in f orm(Ai , IA j Done(< A j , MC >, (A j , Otk ,Cl )) ) > Agent A j informs agent
Ai that, because of proposition , A j does not have the intention for Ai to perform MakeCoalition
act with precondition (A j , Otk ,Cl ).
A Corollary of the fact that agents are autonomous is that the coalition formation processes may
fail. All agents belonging to the same coalition exchange the information of the same target. If
the coalition formation was successful the agents belonging to the same coalition must interchange
messages about the same target:
Inform-Coalition
< Ai , in f orm(A j , (Ai , Otk ,Cl )) >
Any agent could leave the coalition, only need to send a message to other agents that belong to that
coalition:
Cancel-Coalition
< Ai , cancel(A j , MC) >
< Ai , discon f irm(A j , IAi Done(MC)) >
110
a sequence of frames, fn , which can be assigned to a time stamp knowing the initial time of capture,
t0 , and the grabbing rate, Vi (frames per second):
fn = Vi (tn t0 )
(6.2)
tn = t0 + fn /Vi
(6.3)
Then, these local estimates (or track vectors) are projected to global coordinates as result of the calibration process. Although a practical and direct calibration process is done with GPS coordinates
(latitude, longitude, altitude), these coordinates are then transformed to conventional Cartesian coordinates with a projection like stereographic projection [Collins et al. (2001); Hall and Llinas (2001)],
where objects cinematic descriptions are expressed in a more natural way. Results of the projection
and on-line registration in global coordinates are named as xcj [n], Rcj [n]. In this on-line registration
process, the bias estimation vectors, b cj [n], are computed to align projected tracks. In an analogous
way, associated times are also corrected with a final alignment to detect and remove clock shifts
among agents local processors: bt . Finally, the vectors provided by agents in a coalition are sent
to the fusion agent by the Inform-Coalition message and are processed with algorithms integrating
this information and available map information to derive the fused representation, xFj [n], RFj [n]. This
process is carried out by FusionTargetInfo intention of the fusion agent.
111
of an available size representation with target bounds, using a geographic ellipse expressed by the
following equation:
F
x [m] x
(6.4)
xF [m] x yF [m] y P1 F
y [m] y
being xF [m] the local target information sent to the fusion agent in the coalition (Inform-Coalition),
with the associated covariance matrix P, and is the probability of locating the target inside the
uncertainty region. Considering that covariance P corresponds to a ellipse error with 1 axes
given by a , b , the relation between and ellipse size, K, is direct:
N(x, y) dx dy = 1 e
K2
2
(6.5)
Ellipse Centered at 0
axes K a , K b
This is a basic procedure to find out the road segment where the target is moving, considering the
transformed local track. It is important to avoid incorrect location of target in map, since it will
directly lead to an incorrect transformation of tracks, with a severe degradation in the performance.
Then, a direct technique to transform the tracks with the path segments where they are located is
a projection on the road centerline, as suggested in Figure 6.3. With the feed-back procedure of
fused tracks to align local tracks in the processing architecture, this projection will be translated into
local corrections to refine local projections and make processors be aligned with the ground map
information as a mechanism to avoid shifts between different agent views.
Fig. 6.3
Overlap between road segment and the uncertainty region for local track, and correction
6.5 Experiments
In order to illustrate the capability of our Cooperative Surveillance Agents framework and evaluate
its performance in coordinated tracking, we have applied it to a practical simple scenario in which
there are only two cooperative surveillance-sensor agents with overlapped fields of view (see Figure
6.4) and a fusion agent. Our system is a prototype for distributed surveillance-sensor at the university
campus, deployed both in outdoor and indoor areas. The illustrative scenario analyzed in this work
is an outdoor scene in which video cameras cover the pedestrians walking along a footpath. Both
112
surveillance agents and a fusion agent establish a coalition in order to track the same object. In the
shared area, the agents are simultaneously tracking the object, which can be used for aligning timespace coordinates and fusing their local tracks during the coalition maintenance by the fusion agent.
These two surveillance-sensor agents, referred from now on as analog and digital, use different
Fig. 6.4
acquisition technologies. The overlapped regions are marked in the Figure 6.5, and the reference
ground-truth lines to identify the footpath are in Figure 6.6.The reference ground-truth lines to identify the footpath are in figure 6.6. This illustrative configuration was enough to run experiments in
Fig. 6.5 Sizes and overlapped area of images provided by both agents of the coalition
which surveillance-sensor agents provide different views of a common scenario (the footpath), and
their local tracks can be fused in a global representation. Previously to this experimentation, an offline calibration process was performed over each scene. Each surveillance-sensor agent is assumed
to measure the location of a moving target within its field of view with respect to a common reference
system. We have chosen the GPS (Global Position System) reference to represent the objects location, using a portable equipment to take the measurements (GarminTM GPS-18 USB). Thanks to the
calibration process, the correspondences between 2D image coordinates (pixels) and their respective
GPS world position can be set up. The overlapped area allows the two surveillance-sensor agents
to track the targets simultaneously. Once the right agent has detected a pedestrian, it calculates its
size, location and velocity. Based on these data from the overlapped area the delivered tracks may
be used to align and correct tracks of the other side of the coalition. We have analyzed ten videos
113
of pedestrians walking at different speeds from right to left through both scenes. In Figure 6.7 we
can see the pedestrians tracked positions, expressed in local image coordinates, for the first recorded
video. Every point is within of the calibrated region described by the calibration markers, at the two
sides of the footpath (asterisks). After the surveillance-sensor agent calibration process (Calibration
Fig. 6.7
intention), we were able to map the image coordinates toward global coordinates. The results of this
transformation for both tracks are depicted in Figure 6.8, in the geodetic coordinates of GPS after
calibration: latitude, longitude, altitude. In fact, they are expressed as a relative shift, in thousandths
of minute, over a reference point at North 40 32 min, West 4 0 min. Then, a direct projection from
geodetic to Cartesian coordinates is carried out, using the stereographic transformation with the reference mentioned above used as tangent point (coordinate 0,0). A detail is depicted in Figure 6.9,
where the initialization of track from digital-agent with noisy velocity can be appreciated, compared
with the track coming from analog-agent . The fusion output, carried out by the fusion agent after
alignment is depicted in Figure 6.10, where the transition is much more smooth that a direct switch
between both tracks. Besides, the alignment correction fixed to tracks from digital agent for the rest
of time, allowed achieving a much more coherent fused track. The tracks of all videos after fusion
are depicted in Figure 6.11.
114
Fig. 6.8
Fig. 6.10
115
Fig. 6.11
Acknowledgements
This work was supported in part by Projects CICYT TIN2008-06742-C02-02/TSI, CICYT TEC200806732-C02-02/TEC, SINPROB and CAM MADRINET S-0505/TIC/0255
Chapter 7
Abstract
New mobile technologies with wireless communications provide the possibility to develop new applications on multiple and dynamical environments. The proposal of this research is to offer a BDI
agent system arquitecture for solving the problem of adapting context-aware information to users
depends on the environment by integrating different domains in a coherent framework. This paper
presents an overview of the analysis and design of a context-aware multi-agent system for heterogeneous domains according to Gaia methodology.
7.1 Introduction
Mobile devices, new wireless technologies and the users need of receiving context information increase the need of context-aware systems to adapt to changing and dynamical domains. Mobility
allows users to access information anytime and anywhere, and while they are moving scenarios can
change, so context-aware systems have to adapt to new domain information.
In this paper we present the analysis and design of a innovate solution to address the problem
of adapting context-aware information and offering services to users in different environments. The
proposal consists of agents using context information based on user location and on user profile to
customize and recommend different services to other agents. Context knowledge refers to all information relative to the system environment: location, participants, spatial region (buildings, rooms),
places, services, information products, devices etc. [Fuentes et al. (2006a)].
Since the chosen internal architecture of agents is based on the BDI model (Belief-DesireIntention) [Rao and Georgeff (1995b)], who is one of the most used deliberative paradigms to model
and implement internal reasoning of agents, part of this knowledge is represented as agents beliefs.
Beliefs, Desire and Intention are, respectively, the information, motivational and deliberative states
of the agents [Pokahr et al. (2003)]. The BDI model allows viewing an agent as a goal-directed entity
that acts in a rational way [Rao and Georgeff (1995b)].
E. Mangina et al., Agent-Based Ubiquitous Computing, Atlantis Ambient and Pervasive Intelligence 1,
DOI 10.1007/978-94-91216-31-2_7, 2009 Atlantis Press/World Scientific
117
118
As development platform, framework Jadex has been selected as development platform to support
the use of the reasoning capacities by BDI model deployment with software engineering technologies
as XML and Java [Braubach et al. (2004)]. The JADE eXtension Jadex is an implementation of hybrid
(reactive and deliberative) agent architecture for representing mental states in JADE agents following
the BDI model. Moreover, the JADE platform focuses on implementing the FIPA reference model,
providing the required communication infrastructure and platform services [Pokahr et al. (2003)].
For accomplishing objectives, it is necessary an interaction model between agents due to the need to
communicate between them. Communicative acts between agents are expressed through FIPA-ACL
messages (Foundation for Intelligent Physical Agent ACL), which allows selecting content language
and ontology inside messages [fou (2002)].
Some agent oriented methodologies are considered for the analysis and design of the proposal
multi-agent system like MAS-CommonKADS [Iglesias et al. (1996)], Tropos [Giunchiglia et al.
(2002)], Zeus [Nwana et al. (1999)] or MaSE [Wood and Deloach (2000)]. MAS-CommonKADS is
a methodology for knowledge-based system, Tropos is a requirement-based methodology, Zeus provides an agent platform which facilitates the rapid development of collaborative agent applications,
and MaSE is an object-oriented methodology that considers agents as objects with capabilities of
coordination and conversation, so each methodology has its particularities to be applied. In this case,
there is a need of focusing in role analysis and the activities and protocols associated to them.
For the process of analyzing and designing of agent-oriented systems, we have selected Gaia
methodology. The motivation behind Gaia is the current lack existing methodologies in terms of
representing the autonomous, the problem-solving nature of agents, and the way agents perform
interactions and create organizations. Using Gaia, software designers can systematically develop an
implementation-ready design based on system requirements [Tveit (2001)].
One problem with Gaia could be that it is a very high-level methodology. Gaia only specifies how
a society of agents collaborates to reach the goals of the system, and what is needed of each one to
achieve them, and after this analysis, Gaia propose to apply classic design object-oriented techniques.
However, this high level view is precisely what it is needed in this research. The intention here is to
have a clearly and high level definition of the main aspects of the system, to assist a right development
of the multi-agent system.
This article describes the analysis and design process of a multi-agent framework to provide to
users context-aware information based on user location and user profile for heterogeneous, changing
and dynamical domains. Section 2 presents the context-aware multi-agent problem for heterogeneous
domains that represents the main focus of this research. Section 3 explains the BDI model architecture fundamentals and the application for implementing the multi-agent system. Section 4 defines
the Gaia methodology fundamentals. Section 5 illustrates the problem with the application of Gaia
methodology to the proposal context-aware multi-agent system. It shows the analysis and design
process of the agent architecture. Finally, Section 6 reports some conclusions.
119
GAIA [Roman et al. (2002)] for instance, develops an application framework that assists in
the creation of generic loosely coupled distributed component-based applications. The framework
defines three basic components that constitute the building blocks for all applications: the model,
presentation and controller.
RCSM [View (2002)], a context-sensitive middleware, is another one which combines the respective strengths of mobile devices and network infrastructures whenever is possible. Its dynamic
integration mechanism is context-sensitive, and as such the integration between the application software in a mobile device and a network interface is restricted to specific contexts, such as a particular
location or a particular time.
CORTEX [Fitzpatrick et al.] is another framework which builds context-aware applications on
the creation and composition of sentient object, which is an autonomous entity that can sense and
respond to the environment. The ubiquitous environments ideally fit with the agent paradigm. Multiagent systems support complex interactions between entities, using high level semantic languages.
Such a feature is essential in Ambient Intelligence environments dealing with heterogeneous information from physical sensors and users preferences. Integration of such data is only possible at a
higher level where all kind of information (about context) is expressed semantically.
Multi-agent systems are adequate for developing applications in dynamic, flexible environments
[Fuentes et al. (2006b)]. There are several researches about developing multi-agent systems for context aware services. For instance: SMAUG [Nieto-Carvajal et al. (2004)] is a multi-agent contextaware system that allows tutors and pupils of a university to fully manage their activities. SMAUG
offers its users with context-aware information from their environment and also gives them a location
service to physically locate every user of the system. Another one is the BerlinTainment [Wohltorf
et al. (2004)], the project has demonstrated a framework for the provision of activity recommendations based on mobile agents. Similar to this one is the AmbieAgents [Lech and Wienhofen (2005)],
an agent-based infrastructure for context-based information delivery for mobile users.
The main difference of the proposed multi-agent framework with these researches relies on the
domain application of the system. Some context-aware proposals focus on specific domains and user
location in the environment. There is a short overview in [Fuentes et al. (2006a,b)].
The main contribution here consist of applying dynamical and changing domains to the multiagent system, so that this system can provide context-aware services related to any domain where the
system works, a fairground, an airport, a shopping centre, for instance. Proposed multi-agent system
adapts context-aware information to users in heterogeneous and dynamical environments based on
user location and user preferences or profile.
The context of proposed multi-agent location-based context-aware system is a spatial region
with zones, buildings, rooms, where users with their mobile devices, as PDAs or mobile phones, are
moving through the environment. In this environment, there are some places or points of interest
which provides services to users.
120
Fig. 7.1
MAS architecture
Provider Agents represent permanent static providers and they are spread out in any interest point
of the system. They are warned by the Central Agent about any close user with a matched profile
and propose customized services to users.
User Agents negotiate services with Provider Agents according to its internal profile and they
also cooperate with other users asking for recommendations.
The system incorporates an agent in each mobile device in charge of interfacing with the user as
a repository of local contextual information. It also has a provider agent that is an agent spread out
in each point of interest and a central agent for the management of the system residing in a network
server.
121
tions capture the deliberative component of the system [Rao and Georgeff (1995b)]. Plans, which
are deliberative attitudes, are the means by which agents achieve their goals. A plan is not just a
sequence of basic actions, but may also include sub-goals. Other plans are executed to achieve the
sub-goals of a plan, thereby forming a hierarchy of plans. [Pokahr et al. (2003)] The intention is to
apply BDI model to the proposed context-aware multi-agent system. The design and implementation
of each concept in BDI architecture as seen in figure7.2 (beliefs, goals and plans) will be described
as follows:
7.3.1 Beliefs
Each agent has a belief base to store the facts that make up the agents knowledge. These facts can be
stored as Java objects in Jadex platform, and it is possible to capture de semantic of these objects using
ontologies [Pokahr et al. (2003)]. In [Fuentes et al. (2006a)] the proposal is heterogeneous domain
ontology for the context-aware multi-agent system study in this research. A high level of abstraction
for the ontology is defined, so that it covers dynamical and changing domains. The proposed metaconcepts include all context information of the multi-agent system, like location, participants (with
their profiles), spatial region (buildings, rooms etc.), places or points of interest, services, products
etc. In central agent a belief is used to represents the environmental knowledge, the user location and
it knows provider services and location. In client agent, the initial belief is the user private profile.
7.3.2 Desires
According to [Pokahr et al. (2003)], there are three kinds of goals: achieve, maintain and perform
goal. They define, respectively, a desired target state, an agent keeps track of the state, and certain
activities that have to be done. In this case, the goals are presented in a high level abstraction, so there
is no distinction between the three types. Using Gaia methodology, agents goals and functionalities
are studied with more detail level in next section. The goals for each agent are described as follows.
Central agent can reach the following goals:
Detect Users: this goal implies that central agent has to locate and identify users.
Register Users: central agent receives a request from users for registry, and send the respective
agreement to users for register them. The goal of deregistering users is similar.
Improve User Shared Profile: central agent receives user shared profile with the request to registry from user. Furthermore, central agent can update or improve user profile with some information like the time spent for users in visited places gathered by sensors etc.
Filter Providers: central agent can filter providers by matching user profile with providers information, and use the result of matching to warn closer providers. Goals in provider are closely
related to dialogues between users and providers. Provider agent can achieve the following objectives:
Communicate services: provider agents offer services to users according to the result of the
matching realized by central agent.
Reach a compromise with clients: provider agents negotiate with users and, after the negotiation
phase, they can reach agreements and exchange information with them. User agents dialogue
between them, but also they communicate with providers and central agent, so goals can be the
following:
Negotiation between users and providers: users can consult information by requesting to
providers, and can receive services according to their profiles or location. Moreover, they can
ask for agreements to providers and negotiate with them.
122
Recommendation between users: users can recommend information to other users and they can
also ask for recommendations.
Trust in other agents: for sharing opinions with other agents and for improving the profiles with
this information.
Manage Internal Profile: users agents can update their internal profiles with information about
other user recommendations. Moreover they send a shared part of their profiles to central.
7.3.3 Intentions
The main functionalities of the multi-agent system are decomposed into separate plans. To achieve
the goals, agents execute these plans. Initially, there are plans predefined in the plan library, and
depending on the current situation, plans are selected in response to occurring events or goals. One
main characteristic of BDI model is than the plans are selected in an automatic way: they can be
executed from beliefs or form external messages that generate events [Pokahr et al. (2003)]. In the
proposed context-aware multi-agent framework, plans represent the main activities of agents [Fuentes
et al. (2006b)]. Central Agent plans can be described as follows:
Register Users Plan: includes detection goal (locate and identify users) and register/deregister
goal.
Provider Warning Plan: this plan dispatched filter provider goal.
Manage User Profiles: manage user shared profile goal Provider Agent Plans:
Dialogue with users Plan includes two goals: offer services to users and negotiate with them for
reaching agreements. User Agent Plans:
Negotiation Plan: users negotiate with providers and make agreements with them.
Dialogue between users: it includes recommendation goal and trusting goal.
Manage Profile Plan: it concerns to manage internal profile goal.
123
AdoptedGoals
PlanLibrary
-CommunicateServices
-ProviderWarning
-Reachcompromisewithusers
InstantiatePlans
-ManageUserProfile
Adoptnewgoals
SelectforExecution
Messages
Reaction
RunningPlans
-RegisterUser
Messages
Deliberation
HandleEvents
BeliefBase
Belief/Condition/Events
Dispatch(Sub)Goals/Events
Internal
Events
OntologyKnowledge
Query,add,removefacts
Fig. 7.2
in particular (i) the organizational structure), (ii) the environment model, (iii) the preliminary role
model, (iv) the preliminary interaction model and (v) organizational rules [Zambonelli et al. (2003)].
124
munication with multi-agent systems [Chiang et al. (2005)]. This proposal defines the system roles
based in Gaia, and it focuses only in this phase of the methodology. Moreover, the reason for using
Gaia methodology as a multi-agent system methodology is not clear. In contrast of this proposal, all
the phases in Gaia are applied to our context-aware multi-agent system.
In [Ramanujam and Capretz (2004)] a multi-agent system for autonomous database administration is defined and the Gaia methodology is use to study the system analysis and design with best
level detail as it is possible. The main difference with this research is the purpose of the multi-agent
system, since the problem here is to analysis and design a context-aware multi-agent system for
multiple applications.
In the case of SIGMA system [Tiba and Capretz (2006)], there is a combination of Gaia methodology with AUML methodology to provide more detailed description of the architecture. The application of Gaia is similar to our proposal but in this paper Gaia is combined with BDI model to get
a better definition of the entities, characteristics, and functionalities of our multi-agent system. The
goal is to extend with Gaia methodology the functionality obtains with BDI.
Other
Provider
125
Central
Client
INFORM:707()
AGREE:2(445)
REQUEST:708()
AGREE:10(489)
4
INFORM:709()
5
6
Fig. 7.3
Service Manager: it is necessary to manage the matching about services offered by providers and
user profile.
Service Provider: the main function is to communicate the offered services to users according to
user location and profile. Another function is to compromise with clients for making agreements.
Profile Manager: it deals with the update of internal user profile. This profile can be updated
with information given by other users.
Negotiate Role: users can negotiate with providers and reach agreements.
Recommend role: users can communicate with other users to recommend places or points of
interest, and, generally, all kind of information related to system services.
An example of the role model is describing as follows in table 7.1, according to Gaia specifications. It shows the roles corresponding to central agent, provider agent and client agent, with the
permissions, responsibilities, protocols and activities (underlying) associated to them:
126
7.6 Conclusions
This paper focuses in the analysis and design of a context-aware multi-agent system for multiple
applications like airports, fairgrounds, universities, shopping centers etc. First of all, there is an analysis of the system that applies the BDI Model to our agents. This analysis offers a general vision
of the main functionalities (goals and plans) of the system, and the agent knowledge (beliefs). The
intention of combining BDI model with Gaia Methodology represents a lower level definition of the
problem than with BDI model. The organization of the multi-agent system in roles provides a clear
definition of the coordination and integration of agent functionalities, responsibilities, protocols and
roles. The application of Gaia methodology to the main aspects of the system helps us to develop
correctly the multi-agent system. An initial development of the multi-agent system has been implemented for checking the matching between the analysis and design, with the implementation of
the system. The future work consists on developing the whole system for accomplished multi-agent
system objectives.
127
Central
Provider
Client
+
+
1
Profile
Manager
Recommendation
Role
Negociate
Role
Service
Provider
Provider
Discovery
Service
Manager
User
Manager
Fig. 7.4 Gaia agent model for the context-aware multi-agent system problem.
Acknowledgements
Partially funded by projects CICYT TSI2005-07344, CICYT TEC2005-07186 and CAM
MADRINET S-0505/TIC/0255.
128
Table 7.1 Gaia Role Model for the context-aware multi-agent system problem.
RoleSchema: UserManager(UM)
RoleSchema: ServiceManager(SM)
Description
Thisroleisresponsibleforlocating,identifyingand
registeringusers,aswellasimprovingtheirpublic
profiles.
Description
Thisrolemakesthematchingaboutservicesoffered
byprovidersanduserprofile.
RoleSchema: ProviderDiscovery(PD)
Description
Thisroleobtainscloserprovidersandcommunicates
withthemtoalertforthepresenceofauser.
ProtocolsandActivities
Check-user-location, agree-registry,deregister-user,
receive-registry-profile,register-user, identify-user,
receive-user-sequence,improve-user-profile.
ProtocolsandActivities
Match-services-profiles
ProtocolsandActivities
Filter-provider,warn-provider
Permissions
Readsuser_location,user_profile,sequence
Changesuser_registry,user_profile.
Permissions
Readsprovider_service,user_profile
Changesmatching_result
Permissions
Readsmatching_result
Changescommunication_information
Responsibilities
Liveness:
UM=(Check-user-location.Identify-user.
Receive-registry-profile.Agree-registry.
(Register-user|Deregister-user))n|
(Receive-user-sequence.Improve-user-profile)n
Safety:itisnecessarytoassuretheconnection
withthelocationsystemandknowledgebase
Responsibilities
Liveness:
SM=(Match-services-profiles)n
Safety:itisnecessarytheprovider_serviceand
user_profileisavailabletomakethematching.
Responsibilities
Liveness:
PD=(Filter-provider.Warn-provider)n
Safety:ifthereisasuccessmatchingresult,it
ispossibletocommunicatewiththeprovider.
RoleSchema: ServiceProvider(SP)
RoleSchema: ProfileManager(PM)
RoleSchema: NegotiateRole(NR)
Description
Thisroleisresponsibleforinformingaboutservices
andreachagreementswithusersafternegotiation.
Description
Thisroleisresponsibleforupdatinginternaluser
profilesandoffersthepossibilityofsendingashared
parttocentralagent
Description
Thisroleletagentsnegotiateand,accordingtothis,
receivenewservicesorimprovedservices.
ProtocolsandActivities
Offer-service,request-negotiation,agree-negotiation,
exchange-information
ProtocolsandActivities
Update-internal-profile,send-shared-profile-registry
ProtocolsandActivities
Consult-information,receive-services,
ask-for-agreements,receive-request-negotiation,
exchange-information
Permissions
Readsagree-negotiation,information_exchange
Changesservices_offered
Permissions
Readsuser_profile,recommend_information
Changesuser_profile.
Permissions
Readsnegotiate_information
Changesservices
Responsibilities
Liveness:
SD=(Offer-service)n|(Request-negotiation.
Agree-negotiation.Exchange-information)n.
(Offer-service)
Safety:itisnecessarytonegotiatefirstfor
reachinganagreementandexchanging
information.
Responsibilities
Liveness:
PM=(Update-internal-profile)n|
(send-shared-profile-registry)n
Safety:itisnecessarytoreceiveexternal
information,likerecommendinformationto
improveorupdateinternalprofile.
Responsibilities
Liveness:
NR=(Consult-information)n|
(Ask-for-agreements.
Receive-Request-negotiations.
(Exchange-information)n.Receive-services)n
Safety:thereisanegotiationphaseforreach
agreementsandreceivenewservices.
RoleSchema: RecommendedRole(RR)
Description
Thisroleoffersthepossibilitytorecommend
informationbetweenusers,anddecideswhototrust
forsharingopinions.
ProtocolsandActivities
Recommend,ask-for-recommendations,
decide-to-trust,receive-recommendation
Permissions
Readsrecommendations
Changesopinion_to_others,user_profile
Responsibilities
Liveness:
UM=(decide-to-trust.Recommend)n|
(Ask-for-Recommendations.
Receive-recommendation)n
Safety:itisnecessarytoassuretheconnection
withthelocationsystemandknowledgebase.
Table 7.2
Agree-Registry
Receive-Registry-Profile
ProfileManager
UserManager
Receivearequestofregistrytotheuserwith
thesharedpartoftheuserprofile.
Requestregistry
UserManagerr
ReceivedRequestand
Profile
Sendamessagetoconfirmtheuserregistry.
Alertmessage
ServiceProvider
Receivedmessage
Sendoffersaboutservicestousers,thatcanbe
negotiated.
Negotiationrequired
ServiceProvider
Accept/Reject
Negotiation
Sendamessageforacceptnegotiation.
Objecttoexchange
ProfileManager
Improvedoffers
Sendarequestofregistrytotheuserwiththe
sharedpartoftheuserprofile..
Objecttoconsult
NegotiationRole
Consult
UserAgentreceivesservicesaccordingtotheir
profilesandlocation,fromprovideragent
Requestagreement
ServiceProvider
Accept/Reject
agreement
Useragentreceivearequestmessagefor
negotiationfromprovider
Objecttorecommend
ProfileManager
Recommendation
Useragentscanasktootheragentsfor
recommendations
Warn-provider
ProviderDiscover
Request-Negotiation
ProfileManager
Askforopenanegotiationprocessfromprovider
touser..
ProfileManager
Exchangesomeinformationformakingagreements
andimproveofferedservices.
ServiceProvider
Userscanconsultinformationbyaskingtoproviders.
ServiceProvider
Useragentcanaskforagreementstoprovider,and
negotiateconditionstoreceiveservices.
OfferReceived
ProfileManager
AcceptMessage
MessageReceived
UserManager
Requestregistry
Accept/Rejectrequest
ServiceProvider
Negotiateinformation
ReceivedServices
ProfileManager
Negotiationrequest
Accept/Reject
Negotiation
Ask-for-recommendations
ProfileManager
Useragentcanrecommendtootheruseragentsome
informationaboutproducts,places,servicesetc.
Receive-Recommendations
RecommendationRole
OfferSent
Receive-Request-Negotiation
Recommend
RecommendationRole
NegotiateRole
Receive-services
Ask-for-agreements
NegotiationRole
Userregisteredornot
Send-shared-profile-registry
Consult-information
NegotiationRole
Confirmationmessage
Agree-Negotiation
Exchange-Information
ServiceProvider
ProfileManager
Offer-Service
ServiceProvider
Sendainformmessagetothecloserproviderrole
foralertingthepresenceofauser.
ServiceProvider
129
ProfileManager
Useragentscanreceive-recommendationsfrom
otheruseragents
Recommendation
Received
Recommendation
RecommendationRole
Requestrecommendation
Accept/Reject
Recommendation
130
Table 7.3 Gaia Service Model for the context-aware multi-agent system problem.
ServicesSchema: UserManager(UM)
ServicesSchema: ServicesManager(SM)
ServicesSchema: ServicesProvider(SP)
Location
Check- User
userlocation checked
location
Users
Users
connected located
towireless
network
Identifica Users
Identify- User
located
user
location tion
checked
Request
Request- User
Registry- senda for
profile request registry
message anduser
profile
sent
Theuseris
identified
Central
Users
connected Agent
towireless receive
request
network
fromuser
Usersend
Agree- Request Agree
message arequest
registry for
message
registry and
anduser registry
profile done
User
Registered
ornot
Locateand User
registered
identify
users
Locateand User
registered
identify
users
Theprofile
Receive
information isimproved
from
sensors,etc
Theprofile
Improve- Informa Improved Receive
information isimproved
profile
Profile -tion
aboutuser
about
behaviour
userbehaviour
Location
Match- User
services- profile checked
profiles known
by
central
and
provider
informa
-tion
and
location
Users
Users
connected located
towireless
network
ServicesSchema: ProfileManager(PM)
PostService Inputs Outputs PreCondition Condition
Update- Other Profile
updated
internal- users
profile recommendations
Needof Send
Sendshared- registry request
message
profileandproregistry
fileto
central
agent
Theprofile
Received
otherusers isupdated
recommendations
Obtain
closer
provider
Provider
informs
closer
users
Theresult Provider
FilterResult Closer
provider ofmatching filteredby
providers of
location
isvalid
matching
andinformation
WarnFiltered Provider Obtain
provider Provider received closer
provider
alert
message
Provider
informs
closer
users
Provider
alerted
to
inform
Services Closer
offered provider
according warning
tolocationand
userprofiles
User
receive
services
abouthis
preferences
User
acceptsor
rejectsthe
request
message
Negotiation
process
finished
Negotiation
Process
initiated
ServicesSchema: NegotiateRole(NR)
PostService Inputs Outputs PreCondition Condition
ServicesSchema: RecommendRole(RR)
PostService Inputs Outputs PreCondition Condition
RecoPropommend- sedof
users
recommendation
Accept
recommendationor
refusal
Recommendation
succeedor
failure
ServicesSchema: ProviderDiscovery(PD)
PostService Inputs Outputs PreCondition Condition
Offerservice
Useragent
receiverecommenda
-tionsor
not
Ask-forRecommenda
-tions
Needof
recommen
dation
Request
recommendations
Receiverecommenda
-tions
Request
recommendations
Askedfor
Recommenda recommen
-dations
-tions
received
Recommen
dations
receivedby
useragent
Decision
totrust
Share
opinions
withother
agents
Decide-
to-trust
Agreement
reachedor
failure
Users
obtain
customized
services
andinformation
Matching
doneby
central
agentand
provideris
warnedfor
offerservices
Ask-for- Needof Request
agree- agree- forreaments ments chingan
agreewith
ment
other
agent.
ReceiveRequestnegotiation
User
agent
askfor
agreementto
provider
Process
ofnegotia
-tion
requested
UserAgent
have
requestto
reachan
agreement
Agreement
accepted
orrejected
Negotiation
processis
open
(ornot)for
exchanging
required
information
Negotiation
Askfor
agreements process
andrequest finished
fornegotiation
Chapter 8
Abstract
Technologies of ubiquitous computing play a key role for providing contextual information and delivering context-aware services to a smart space. Sensors deployed in smart space can reflect the
changes of the environment and provide contextual information to context-aware systems. Moreover,
it is desirable that services should react to the rapid change of contextual information and all the inner
computing operations have to be hidden behind the users.
We propose a Context-aware Service Platform, implemented in JADE agent platform, and utilize
Semantic Web technologies to analyze the ambient contexts and deliver services. We integrated
ontology and rule-based reasoning to automatically infer high-level contexts and deduce a goal of
context-aware services. An AI planner decomposes complex services and establishes the execution
plan and agents perform the specified task to accomplish the services. A Smart Alarm Clock scenario
demonstrates the detail functions of each agent and shows how these agents incorporate with each
others.
8.1 Introduction
Its obvious that mobile devices, such as smart phone, personal digital assistants (PDAs), and wireless
sensors, are increasingly popular. Moreover, many tiny, battery-powered, and wireless-enabled devices have been deployed in smart spaces for collecting contextual information of the residents. The
Aware Home [Abowd et al. (2000)], Place Lab [Intille (2002)], EasyMeeting [Chen et al. (2004b,c)],
and smart vehicles [Look and Shrobe (2004)] provide intelligent and adaptive services environment
for assisting the users to concentrate on their specific tasks. Apparently, services in a smart space
should have the abilities to react and adapt the dynamic change of context.
Context-awareness is the essential characteristic of a smart space and using the technologies to
achieve context-awareness is a type of intelligent computing. Within a richly equipped, networked
environment, users need not carry any devices with them; instead, the applications have to adapt the
E. Mangina et al., Agent-Based Ubiquitous Computing, Atlantis Ambient and Pervasive Intelligence 1,
DOI 10.1007/978-94-91216-31-2_8, 2009 Atlantis Press/World Scientific
131
132
available resources for delivering services to vicinity of the users, as well as tracking the location
of users. Cyberguide [Long et al. (1996); Abowd et al. (1997)] uses the users locations to provide
an interactive map service. Active Badge [Want et al. (1992)] was originally developed at Olivetti
Research Laboratory. In this system, every user wears a small infrared device, which generates a
unique signal and can be used to identify the user. Xerox PARCTab [Want et al. (1995)] is a personal
digital assistant that uses an infrared cellular network for communication. Bat Teleporting [Harter
et al. (2002)] is an ultrasound indoor location system. PARCTab and Teleporting are similar to Active
Badge; they are deployed to determine user identity and location by interpreting distinct signals from
the sensors.
Context-aware systems involve not only multiple devices and services, but also software agents.
Agent-based architectures can dynamically adapt in rapidly change environment and hence can support context-aware systems. The Context Toolkit [Salber et al. (1999a)] introduces context widgets
that provide applications with access to contextual information while hiding the details of context
sensing. Each widget is a software component, a simple agent that designates to handle the context
acquisition. Chen et al. (2004a) proposes CoBrA architecture, contains a broker can maintain context knowledge and infer high-level context. E-Wallet [Gandon and Sadeh (2003)] is an agent-based
environment for providing context-aware mobile services.
Researchers believe that successful smart spaces must draw computers into our natural world of
human daily activities [Hanssens et al. (2002)]. However, many challenges have been encountered
while building a context-aware system [Want and Pering (2005)]. In a smart space, augmented appliances, stationary computers, and mobile sensors can be used to capture raw contextual information
(e.g. temperature, spatial data, network measurement, and environmental factor), and consequently a
context-aware system need to understand the meaning of a context. Therefore, a model to represent
contextual information is the first issue of developing context-aware systems. Context-aware services
require the high-level description about the users states and the environment situations. However,
high-level context cannot not be directly acquired from sensors. Capability to entail high-level contexts from the existing knowledge is required in context-aware systems. Consequently, how to derive
hight-level contexts is the second issue. As we know that people may move to anywhere at anytime,
it is increasingly important that computers develop a sense of location and context in order to appropriately respond to the users needs. How to deliver the right services to the right places at the right
time will be the third issue.
In this research, we leverage multi-agent and semantic web technologies that providing the means
to express context and using abstract representations to derive usable context for proactively deliver
context-aware service to the users. We deal with the issues of building context-aware systems and
explore the roles of intelligent sensing, mobile and ubiquitous computing in smart home services. Interactions between the users and services are through a wide variety of devices. Meanwhile, contextaware services deliver multimedia messages or contents through the smart home devices for assisting
users.
133
as data structures or class objects using programming languages [Schilit et al. (1994); Coen (1998);
Dey (2000)]. Such hard-coding representation is intuitive, but lacks expressiveness and extensibility. Using a meta-language (e.g. Extensible Markup Language (XML1 )) to represent contextual
information [Capra et al. (2003)] can gain more extensive, but it only provides a syntax level of
representation. And consequently the markup scheme models unable to provide adequate supports
for semantic representation and interrelation, which is essential to knowledge abstraction and context reasoning [Chen et al. (2005)]. The logic-based context models [McCarthy (1993); Akman and
Surav (1996)] are based on, modeling the contextual information as situations and formulating the
changes of contextual information as actions that are applicable to certain situations. In other words,
just like the situation calculus [McCarthy and Hayes (1969)], the changes of contextual information
can be formulated as a series of situations with a result of various actions being performed. Though
the logic-based models have the reasoning capabilities, it is hard to formulate complex logical expressions while the situations are complicated.
Strang and Linnhoff-popien (2004) concluded that the ontologies are the most expressive models. Gruber (1993) defines ontology as an explicit specification of a conceptualization. Ontology
is developed to capture the conceptual understanding of the domain in a generic way and provide a
semantic basis for grounding the fine-grained knowledge. The COBRA-ONT [Chen et al. (2003)]
provides the key requirements for modeling context in a smart meeting application. It defines concepts and relations of physical locations, time, people, software agents, mobile devices, and meeting
events. The SOUPA [Chen et al. (2004d)] (Standard Ontology for Ubiquitous and Pervasive Applications) is proposed for supporting pervasive computing applications. SOUPA uses some other
standard domain ontologies, such as FOAF2 (Friend of A Friend), OpenGIS3 , the spatial relations
in OpenCyc4 , ISO 8601 date and time formats5 , and DAML time ontology [Hobbs and Pan (2004)].
Strang et al. (2003) introduce CoOL, a context ontology language for enabling context interoperability and context-awareness during service discovery and execution. Roman et al. (2002) develop Gaia,
a distributed middleware platform for smart space that uses ontologies to define the structures and
properties of contextual information; furthermore, it can handle various context reasoning. Clearly,
these ontologies provide not only a rich context representation, but also make use of the abilities of
reasoning and sharing knowledge.
http://www.opengeospatial.org/standards
4 http://www.cyc.com/cycdoc/vocab/spatial-vocab.html
5 http://www.w3.org/TR/NOTE-datetime
134
are used to represent contextual information and the rule languages are used to enable context reasoning. Accordingly, in most cases, these two types of languages have different syntax and semantic
representations; it is a challenge that effectively integrates these distinctive languages to support
context-aware systems. A mechanism to convert between contextual modeling and reasoning languages is one of the solutions for this challenge. Gandon and Sadeh (2003, 2004) propose e-Wallet
that implements ontologies as context repositories and uses a rule engine Jess [Friedman Hill (2003)]
to invoke the corresponding access control rules. The e-Wallet using RDF6 triples to represent contextual information and OWL7 to define context ontology. Contextual information is loaded into the
e-Wallet by using a set of XSLT8 stylesheets to translate OWL input files into Jess assertions and
rules.
Ontology models can represent contextual information and specify concepts, subconcepts, relations, and properties, and facts in a smart space. Moreover, ontologies reasoning can use these
relations to infer the facts that are not explicitly stated in the knowledge base. Ranganathan et al.
(2004) propose that ontologies can make it easier to develop programs for reasoning about context.
Chen (2004) proposes that the OWL language can provide a uniformed solution for context representation and reasoning, knowledge sharing, and meta-language definitions. Anagnostopoulos et al.
(2007) adopt the Description Logic [Baader et al. (2003)] as the most useful language for expressing
and reasoning contextual knowledge. The OWL DL was designed to support the existing Description
Logic business segment and has desirable computational properties for reasoning systems. Typical ontology-based context-aware application is EasyMeeting that uses OWL to define the SOUPA
ontology and OWL DL to support context reasoning. Gu et al. (2004); Wang et al. (2004) propose an OWL encoded context ontology CONON in Service Orientated Context Aware Middleware
(SOCAM). CONON consists two layers of ontologies, an upper ontology that focuses on capturing
general concepts and a domain specific ontology. EasyMeeting and SOCAM are use an OWL DL
reasoning engine to check the consistency of contextual information and provide further reasoning
over low-level context to derive high-level context.
135
suspended, and deleted state. Life Cycle Management reflects the state changes and controls the
state transitions. Consequently, every component is controlled by life cycle management.
Rule-based Engine uses IF-THEN rule statements, which are simply patterns and the inference
engine performs the process of matching the new or existing facts against rules. Similar to
OWL DL reasoner, rule engines can also deduce high-level contexts from low-level contexts;
the major difference is, rule engines can handle massive and complex reasoning while the OWL
DL reasoner can not. The derived high-level contexts are asserted into Context Knowledge
Base which serves as a persistent storage for context information. Rules for which and when the
appropriate service can be invoked are defined as the knowledge of service invocation rules for
the Rule-based Engine.
Ontologies are loaded into the OWL DL reasoner to deduce high-level context from low-level
context. OWL DL reasoner provides the inference services to ensure the ontology does not
contain contradictory facts. The class hierarchy of an ontology can be used to answer queries by
checking the subclass relations between classes. Moreover, computes the direct types of every
ontology instance can support to find the specific class that an instance belongs to.
Yellow Pages Service provides the functions for service registration and discovery. New services
register their services to Yellow Pages Service. Service Deliverer and other services can search
the desired services and get the results.
AI Planner generates a service composition plan sequence which satisfies a given goal. Service
Deliverer chooses a service to execution from the service candidate list which returns from
Yellow Pages Service.
136
space environment. Context Resource can be collected by Context Collection Agents that receive
sensors or software data and will be delivered to Context-aware Reasoning model. Context Collection
Agents are device dependent agents; each agent will be associated with different types of devices
for providing raw sensor data. Ontology Agent and Context Reasoner can infer high-level context to
provide goals for Service Planning. Context information and service description are stored in Context
Knowledge Base. After perform service composition, discovery, and delivery, a context-aware service
will be delivered to the specified Service Applications.
9 http://www.fipa.org/
10 http://jade.tilab.com/
137
8.4.1 Context-awarereasoning
We deploy Jess11 in our Context-aware Service Platform. Jess is a forward-chaining rule engine used
Rete algorithm [Forgy (1982)] to process rules, which is a very efficient algorithm for solving the
difficult many-to-many matching problem. We use an open-source OWL Description Logics (OWL
DL) reasoner Pellet12 that developed by Mindswap Lab at University of Maryland, to infer high-level
contexts. Moreover, Jena13 is a Java framework for building Semantic Web applications, is used for
providing a programmatic environment for RDF, RDFS, and OWL.
138
Output message : If there is no high-level context to be derived, the input message of current
contexts will be redirected to Context Reasoner. Otherwise, the new high-level contexts must be
delivered to Context Aggregator.
139
8.4.3.2 Ontologies
An ontology is a data model that represents a domain and is used to reason about the objects in that
domain and their relations. We define a context ontology depicts in Fig. 8.3 as a representation of
common concepts about the smart space environment. Context information are collected from realworld classes (Person, Location, Sensor, Time, HomeEntity), and a conceptual class Activity. The
class hierarchy represents an is-a relation; an arrow points from a subclass to another superclass.
A class can have subclasses that represent the concepts more specific than their superclass. For
example, we can divide the classes of all locations into indoor and outdoor locations, that is, Indoor
140
Fig. 8.3
A Context Ontology
Location and Outdoor Location are two disjoint classes and both of them belong to Location class.
In addition, the subclass relation is transitive, therefore, the Livingroom is a subclass of Location
class because Livingroom is a subclass of Indoor and Indoor is a subclass of Location.
The relationship between classes is illustrated in Fig. 8.4. The solid arrows describe relation
between subject resources and object resources. For example, isLocatedIn describes the relation
between the instances of Person and Location while the instances of Person is the subject resources
and instances of Location is the object resources.
A service ontology defined by OWL-S is for describing available services that comprises service
profile, service model, and service grounding, which has been stated in Section 8.4.2
8.4.3.3 Rules
Rules of a rule-based system serve as IF-THEN statements. Context rules can be triggered to infer
high-level context. According to the description of Fig. 8.4, a rule for detecting the location of a user
is showed as follows:
[Person_Location:
(?person isIdentifiedBy ?tag)
(?tag isMoveTo ?room)
->
(?person isLocatedIn ?room )
]
Fig. 8.4
141
Context Relationship
Patterns before -> are the conditions, matched by a specific rule, called left hand side (LHS) of
the rule. On the other hand, patterns after the -> are the statements that may be fired, called right
hand side (RHS) of the rule. If all the LHS conditions are matched, then the actions of RHS will be
executed. The RHS statement can be either asserted new high-level contexts or delivered a service
goal.
Given ?person is an instance of class Person, ?tag is an instance of MovableSensor, and ?room
is an instance of Room, rule Person Location declares that if any person ?person is identified by a
movable sensor ?tag and this movable sensor is move to a room ?room, we can deduce that ?person
is located in ?room.
142
Fig. 8.5
Word in the box depicts a instance of its corresponding class, for example, bed is an instance of
Furniture class. Each solid arrow reflects the direction of owl:ObjectProperty relationship, from
domain to range and a inverse property can be declared while specifies the domain and range classes.
For example, a sensor bed sensor is attached to (isAttachedTo) furniture bed, and the inverse property is hasSensor. A boolean data type property isOn is associated with Sensor class for detecting
whether the instances of class is on or off.
If someone is on the bed and the sensor bed sensor is on, then the value of isOn is true. On the
other hand, when nobody touches the bed, the value of isOn has to be false and it infers that Peter
is awake. Therefore, the system is not necessary to deliver the alarm service.
Suppose that calendar agent reports the first event of the day will be held at 8:00am, therefore,
the alarm is set to 7:00am. When the time is up, given the location of Peter and the status of bed
sensor, the rule User is sleeping in Section 8.4.3.3 can deduce that whether Peter is sleeping or
not. Assume that there is another rule reflects that if Peter is sleeping, then deliver smart alarm
service. Consequently, the service goal of Smart Alarm Clock can be derived and deliver to Service
Composition Agent.
If Peter does not wake up for the task, according to the owner and importance of this task, an
143
exceptional handling rules will be triggered for deciding whether to postpone or cancel this coming
task. For instance, Peter has to host a meeting at 8:00am and hence the task is a high priority event.
Consequently, a rule will be triggered to postpone the meeting, and an emergency message will
be sent to the corresponding participants for informing the situation. On the contrary, if this task
is watch TV show at 8:00am with low priority, then the context-aware reasoning infers that this
scheduled task should be canceled and a video recording event will be invoked.
144
</process:hasInput>
<process:hasPrecondition>
<expr:KIF-Condition rdf:ID="alarm_precond">
<expr:VariableBinding
rdf:ID="isSleepVariablebinding">
<expr:theObject
rdf:resource="http://...#sleeping"/>
<expr:theVariable rdf:datatype=
"http://...#boolean"> true
</expr:theVariable>
</expr:VariableBinding>
<expr:expressionData
rdf:datatype="http://...#string">
precondition of smart alarm
</expr:expressionData>
</expr:KIF-Condition>
</process:hasPrecondition>
<process:hasResult>
<process:Result rdf:ID="alarm_done"/>
</process:hasResult>
......
</process:AtomicProcess>
Descriptions of atomic process are similar with that of profile, except the service model describes
process in more details. For example the input data type of AudioPlayer Process is belong to
AudioStream class, whereas the alarm service profile only gives an upper-level data type Message
Stream. Moreover, atomic process describes detailed expression of preconditions, for instance, it
binds an instance sleeping of Activity class to a boolean variable.
Service grounding specifies the details of the way to access the service, and deals with the concrete level of specification. Both OWL-S and WSDL are XML-based languages, therefore, the OWLS service is easy to bind with WSDL service, for example:
145
<grounding:WsdlGrounding
rdf:ID="AudioPlayerWSDLgrounding">
<service:supportedBy
rdf:resource="#AudioPlayer"/>
<grounding:hasAtomicProcessGrounding>
<grounding:WsdlAtomicProcessGrounding
rdf:ID="WsdlAtomicProcessGrounding">
<grounding:owlsProcess
rdf:resource="#AudioPlayerProcess"/>
<grounding:wsdlOperation>
<grounding:operation
rdf:datatype="http://...#anyURI">
play
</grounding:operation>
<grounding:portType
rdf:datatype="http://...#anyURI">
audio player port type
</grounding:portType>
</grounding:wsdlOperation>
</grounding:WsdlAtomicProcessGrounding>
</grounding:hasAtomicProcessGrounding>
......
</grounding:WsdlGrounding>
A WSDL service has construction of type, message, operation, port type, binding, and
service. The AudioPlayerWSDL grounding briefly shows that OWL-S has provided operation
and portType mapping. Besides, the XSLT can help the transformation from WSDL descriptions to
OWL-S parameters.
146
8.7 Conclusion
This research presents a context-aware service platform, a prototype system designs to provide
context-aware services in a smart space. It integrates several modern technologies, include contextaware technologies, semantic web, AI planning, and web service. In addition, reasoning approaches
for deriving new contexts and services are adopted in this system.
Ontologies for contexts and services provide information sharing and make the platform integrating services. Contexts are represented as RDF-triple for exchanging information between agents and
deducing new high-level contexts. Moreover, the service planner obtains a goal from context-aware
reasoner, such that it makes the services operated adaptively.
The current design assumed that all the context resources provide consistent contexts and no
conflict information to disturb the process of Context-aware Service Platform. We should consider
the fault tolerance problems but allow some minor errors happened.
As the real-world environment has huge number of contexts and the required tasks are much
more complex, the rule engine and task planner should have capabilities to provide solutions in
reasonable time. Consequently, the concept of clock timer can be adopted to the reasoning and
planning components. In order to provide a possible solution from the partial results, an anytime
algorithm should be taken into account.
We provide a simple scenario to demonstrate the idea of the context-aware service platform.
However, this simple case does not show the power of automated service composition by using AI
planning. Designing other scenarios that can explain and evaluate the needs of service composition
is one of our future direction. Applying this platform to other Web Service composition benchmark
test is another way to evaluate the performance of this platform.
Chapter 9
Abstract
This chapter concerns an innovative software application (Intelligent Power Plant engineer Assistant
Multi Agent System - IPPAMAS) aiming to facilitate the control of a power plant by the personnel.
Recent advances in agent technology, mobile devices and wireless communications enable the provision of the proposed services wherever around the plant the employees actually need them. The
application aspires to form an intelligent system that will function as an engineer assistant by embedding data mining techniques to the agents. The IPPAMAS comprises of a main part, the on-line
monitoring, and two off-line procedures; the processing of data, in order to form the application
repository, and the re-training of the system. The MAS is structured in three layers: Sensor Layer,
responsible for the identification and reconstruction of sensor faults, Condition Monitoring Layer,
responsible for the safe operation of the Thermal Power Plant and its optimization, and Engineer Assistant Layer, which distributes the information to the appropriate users, at the right time, place and
format. The performance of the application is tested through the simulation of several cases, both in
the laboratory and in a thermal power plant.
9.1 Introduction
Ubiquitous computing embeds computation into the environment, enabling people to interact with
information-processing devices more naturally and casually than they currently do, and in ways that
suit whatever location or context find themselves in. Pervasive computing (a term used as synonym
by many) encompasses a wide range of research topics, including distributed computing, mobile
computing, sensor networks, human-computer interaction and artificial intelligence.
Its development is strongly band together with the evolution of mobile communication devices,
such as mobile phones and Personal Digital Assistants (PDAs). These devices can be used in a
network to exchange information and even more to incorporate an expert system into the routine
of a complicated organization as a Thermal Power Plant (TPP). The responsibilities and tasks of
E. Mangina et al., Agent-Based Ubiquitous Computing, Atlantis Ambient and Pervasive Intelligence 1,
DOI 10.1007/978-94-91216-31-2_9, 2009 Atlantis Press/World Scientific
147
148
the personnel in a TPP oblige them to move quite often around the plant premises. Apparently, an
application functioning only in desktops, which would expect them to stay inside an office, has far
less chances to be accepted than an ubiquitous one.
In this chapter, a theoretical framework for a ubiquitous computing application for power plants
is presented and implementation issues are drawn. Multi agent technology is combined with data
mining (dm) techniques to form an intelligent system that aspires to function as an engineer assistant.
Although the application was originally designed to address the needs of a TPP personnel, the prototype can be equally applied to other industrial domains, as requirements regarding information flow
are similar.
The current project focuses on the provision of the power plant personnel with the appropriate
information at the right time, place and format. While the design of the Multi-Agent System (MAS)
ensures the information flow, the use of PDA permits the mobility.
The employees that will benefit from the proposed advanced application can be divided in three
categories: engineers, operators and foremen, and technicians. The operators and foremen work in
the limited area of a control room, thus a desktop application suits them. On the contrary, technicians
move continuously inspecting, reporting and interfering with the machinery of their section. Likewise, engineers might have various tasks to fulfil that demand their presence at different places from
the head offices to the boiler.
The present state is that employees request or provide information orally whenever they think it
is necessary. This is done over the phone or in some cases requires even the movement on the spot.
Evidently, the quality of information flow is poor due to both the procedure and the mechanical noise
of the factory. Applying this system, information flow will be improved in two aspects: it will be
structured according to explicit rules, rather than depending on personal judgement, and it will reach
the recipient in a written form.
The proposed novel application permits the engineer to execute his duties as usually wheresoever
inside the plant is necessary and to receive information either when he/she chooses to or whenever
a situation arises that needs his/her attention. At the latter case a sound signal will emphasize the
arrival of the message. The information flow will be properly personalized so as to avoid unnecessary
amount of information to cause disorientation or even scorn.
The main contribution of the application is that by ensuring the information flow to the proper
person in time, critical situations can be avoided and parameters can be regulated promptly. Early
diagnosis is extremely important for maintaining high levels of availability and safety, as malfunctions can result even to unscheduled outages. Tuning the system is a demanding, continual task due
to unstable combustion characteristics (caused by variable lignite quality), load variances and several
other factors, as boiler fooling. Optimal tuning leads to optimal performance which constitutes the
desired target of a TPP.
In section 2 the problem domain is outlined. Also, a small part of the knowledge engineering
model, which was utilized for the specification phase, is given. In section 3 the architecture of the
proposed system is described. In section 4 the tools chosen for the implementation are listed. Section
5 includes the description of the simulation experiments that were executed in order to evaluate the
prototype. Finally, section 6 contains some conclusions and some suggestions for future enhancements and extensions.
149
optimum function is required, so as production cost and pollutants released in the environment are
minimized. This means that the plants must run much closer to their theoretical operating limit, consequently specifications on the precision and effectiveness of control are much demanding than ever
before. Evidently, the need of assistance for engineers and operators is even more urgent, considering
the fact that a TPP comprises a complex thermodynamic system.
Control and instrumentation equipment has changed more than any other aspect of power generation in the last decades. The pneumatic and then analogue electrical equipment have been replaced
by microprocessors which in their turn were integrated into Distributed Control Systems (DCSs).
Unfortunately, oftentimes the DCS is treated as a direct replacement for older stand alone analogue
or digital controllers. Hence, minimal advantage is taken of its potentialities; it usually stops short at
simple data trends or management summary reports. The huge amount of data, which is up to now
unexploited, can be used by an expert system to ameliorate intelligent maintenance, fault diagnostics
and productivity management.
During the TPP running the operators regulate several parameters in a semi-empiric way. Obviously, this practice has two great disadvantages: 1) the decisions are based on each operators
personal experience and capabilities, and 2) the best possible performance is not always achieved.
A typical example of this way of acting is the appointment of the set point of the automatism that
regulates the air combustion flow. We suggest that this regulation can be optimized if it is done in an
objective way based on rules extracted from previous cases. The importance of such an improvement
is self-evident as this is a frequent handling that has direct economic and environmental impact.
Another frequent situation met is the production of false alarms or the failure to recognize an
alarm situation due to false sensor readings. Both cases can be resolved with the proposed system
that replaces the recorded values of a measurement instrument with values estimated based on models
derived by applying dm algorithms to historical data.
Recently, research efforts aim to introduce the latest accomplishments of the information technology area to the electricity generation domain (Flynn, 2003; Mangina, 2003). There are also several
examples of new generation applications designed towards the modernisation of operation control
that have been experimentally installed in TPPs worldwide (Arranz et al., 2008; Ma et al., 2007).
Unfortunately, practice has proven that in many cases the results failed to meet the expectations and
are not substantially adopted by the personnel. An expedience and feasibility study was undertaken
by the authors in order to identify the causes of unsuccessful applications and to hopefully overcome
them.
A complete list goes beyond the scope of this book. However, it is worth mentioning that one
of the main requirements, as expressed by the potential users, was the provision of a) applicable and
comprehensible indications and b) timely, clearly displayed information.
150
introduction of the Coordination model, which models the interaction between agents. In our case
this meant that the only additional task to our previous work was the application of the Coordination
model and some necessary modifications to the Agent model, in order to include the characteristic
aspects of intelligent agents.
9.3 Architecture
9.3.1 Agent programming paradigm
In this section the reasons that led to the adoption of the agent oriented paradigm are listed and the
Intelligent Power Plant engineer Assistant MAS (IPPAMAS) is presented.
As stated in Section 2, the control system of a TPP must meet increasingly demanding requirements stemming from the need to cope with significant degrees of uncertainty. Jennings and Bussmann (2003) suggest that analyzing, designing and implementing such a complex software system
as a collection of interacting, autonomous, flexible components (i.e. as agents) present several significant advantages over contemporary methods. Agents are well suited for developing complex
and distributed systems, since they provide more natural abstraction and decomposition of complex
nearly decomposable systems.
A centralized controller for the domain of TPPs is not a viable option, since it would be nearly
impossible to get a real time response and to maintain an up-to-date representation of the whole
systems state. A central point of control would probably end up to be a bottleneck in the systems
performance and, even more, it might introduce a single point of failure. On the contrary, soundness
can be achieved by using MAS. In IPPAMAS, each operating control aspect is represented by an
autonomous agent, having the goal to accomplish its assigned task, thus to contribute to the overall
aim of performance optimization.
Furthermore, the ability to flexibly manage, at runtime, multiple sources of data and multiple
problem-solving perspectives provides enormous robustness to the overall system because if one of
the agents crashes, the others will still be able to provide some form of solution. For instance, assume
that the steam temperature is used as an input parameter for the decision to start the procedure of
sootblowing. This decision is based on a model that derived by applying dm algorithms to historical
Table 9.1 Identifying problems and opportunities in the organization: Organization Model, Worksheet 1
Subject
Information/Opinions/Ideas
Problems and OpporThe lack of tools for exploitation of historical data for optimization of the operation
tunities
and maintenance of the plants.
Ellipse of means for the improvement of the information flow during the process of
confirmation and confrontation of alarm signals.
Organizational
Objective of the company: more efficient and economic production of electric energy.
context
Exterior factors:
- Competitiveness - deregulation of electric energy market
- Kyoto protocol, ecotaxes
- Price/quality of lignite due to the disassociation of the power plants from the mines
- Lignite reserve
Solutions
The aforementioned objectives can be achieved through the better management and
the more effective control of the TPPs. This can become feasible with the provision
of the experts with an application that would support them in regular routines as well
as in critical situations. This application should among others a) exploit knowledge
extracted from historical data b) display the information at mobile devices.
151
data. If the agent responsible for this variable fails then the agent in charge of applying the dm models
chooses an alternative solution which does not include this parameter. This backup functionality
flexibly increases the robustness of the application.
In addition, an agent-based approach constitutes a natural representation of the application domain. As an example, the plant employees cooperate in order to handle critical situations. Each one
works towards different objectives, which comprise part of the overall solution. During this procedure they exchange relevant information so as to ensure that a coherent course of action is followed.
The agents are designed to act in a similar way.
Agents are most appropriate for facing personalization issues, as, for instance, is shown by an
empirical study on interaction issues that an interface agent has to consider (Schiaffinoa and Amandia, 2004). The particularity of the presented application is that the preferences are not defined per
user, but rather per post, title, section, etc. This is due to the increased reliability and safety requirements of the power plant domain. Thematic preferences include the type of assistant (submissive
or authoritative), the type of assistance actions (alarms, recommendations, and information distribution), whether the agents are permitted to act on the user behalf and the tolerance to errors. Apart
from the aforementioned thematic preferences, there are also device characteristics which should be
taken into account. The interface of each device (PC, Palm, etc.) has its own characteristics, from
the point of view of interactivity (screen size, resolution, etc.) and from the technical point of view
(memory, transference speed, capacity of processing, etc.).
One last but not least motivation for basing the system upon agents is their suitability for developing context-aware applications (Soldatos et al., 2007). An ubiquitous application running inside a
power plant should also adopt some context-aware features. Throughout a typical working day, plant
engineers frequently find themselves in various situations (e.g. meeting, routine duty, resolution of
crisis). In each of these situations, they have different needs in respect to information flow. For instance, assume that a message is sent to a user that is occupied at that moment. There are alternative
scenarios depending on the content and the significance of the message and the context of the user: 1)
If it is just routine information the agent should postpone its display until the user is available, 2) If it
is an urgent matter the agent should choose between interrupting the user or forwarding the message
to another user. The identification of the users context is based on plant operation data (e.g. crisis
due to imminent system break), explicit user statement (e.g. meeting) and IPPAMAS data (e.g. other
tasks).
152
but also for driving the initial phases of KDD (Fig. 9.2). It contributed to the successful outcome
of the KDD by reducing the search space, and by eliminating the risk to find patterns statistically
significant, but with limited physical meaning.
The creation of the application repository started with the collection and integration of data from
the plant sensors and handwritten records (Fig. 9.3). The possibility to use as case studies several
TPPs belonging to the Public Power Corporation of Greece (PPC) was investigated in the beginning.
The installed instrumentation and control equipment vary significantly among these plants. As depicted in Fig. 9.3, input data may be from plain raw data to signals that are filtered by microprocessors
or even advanced functions. Finally, most of the datasets were taken from one of the most newly built
plants, the TPP Meliti.
Since the power plant operation diverges according to the conditions, different rules and models
were derived for each case. Each original dataset was divided to subsets concerning start-up, shutdown, lifting-load, lower-load, and steady-state. The latter was divided to full and low load.
Then followed the second step of KDD, data preprocessing. This turned out to be a timeconsuming and labour-intensive procedure, but also a very important one for deriving the most appropriate models. It involved the cleaning of data, i.e. dealing with missing and inaccurate data.
Depending on the cause of missing data one of the following practices was chosen: 1) omitting the
raw of data, 2) value completion by plant experts, 3) use of general constant (eg ?), and 4) value
completion with last valid measurement. In the case of inaccurate data the problem was faced with
either clustering, regression or/and the combined computer and man inspection. Finally, the data preprocessing step was concluded with data transformation, which mainly involved the normalization of
values with decimal escalation and the creation of new characteristics.
The variables that composed each subset had been selected with basic criterion the creation of
as complete as possible models. Nevertheless, attribute selection methods were applied in order to
check whether models of equal quality could derive from smaller number of entry parameters. These
methods combine an attribute subset evaluator with a search method (Witten and Frank, 2005).
For each variable a second model was chosen among those with good statistical results, but with
main concern the differentiation of the input parameters. This is rather important for the functionality
of the MAS; in case a model is needed for estimating a variable there are more chances that one of
Fig. 9.1
Fig. 9.2
153
System specification
them will be applicable, i.e. all of its input parameters will be valid at the current moment.
For deriving models of numeric outputs, more than 25 classification algorithms and metaalgorithms were initially applied in a trial and error approach (also diversifying its parameters). Their
performance was evaluated by applying two of the most commonly used methods: the hold-out estimate and the cross-validation (Stone, 1974). These methods provide five statistical parameters when
the output variable is numeric. Three of them, i.e. mean absolute error, relative absolute error, and
correlation coefficient were mainly taken into account.
Apart from the performance metrics, the results were also evaluated based on their physical
meaning (correlation of variables). This also involved knowledge interpretation by domain experts.
For this purpose, adequate knowledge representation formalism was used (e.g. rules defined by a
decision tree). One or more of the aforementioned KDD steps were repeated depending on the results.
An interested reader may have a look at previous publications which include analytical results and
some conclusions on the suitability of attribute selection methods and classification algorithms for
the specific case (Athanasopoulou et al., 2007, 2008).
The extracted models are used by the system for estimating the value of a variable. The estimated
values can be used to replace the recorded values of a measurement instrument in the event of a false
reading.
Models were also extracted for advising on an action and for calculating the optimum value of
controllable parameters (in order to tune a subsystem appropriately). In both cases the dataset, which
was used as input data, comprised of only a part of the historical data that reflected the best system
operation judged according to selected criteria. Since the models are derived from historical TPP
data it is not expected that will drive the system to better operation than whatever has already been
achieved. However, the plant statistics indicate that managing to operate the system as good as the
10% better past cases can result to great economical and environmental benefits. For instance, it is
estimated that the NOx emissions could decrease by 13-16% (Athanasopoulou et al., 2008).
154
155
156
Fig. 9.4
Condition Agents evaluate the current sensor measurements and decide whether an alarm should
be triggered or not and whether the prerequisites for an action are fulfilled.
Recommender Agents gather the necessary facts and produce an advice on whether to perform
an action or not. Distribution Agents are responsible for the distribution of the produced recommendations or alarms. They decide on which piece of information should be sent to whom, based on the
plant operation conditions and the availability of users.
User-Interaction Agents (UIAs) run either on desktops or PDAs. They personalize the displayed
information based on the users profile and the context he/she is in. In certain situations, they are
responsible for accepting or refusing a message on the users behalf. For the facilitation of the Distribution Agents tasks the User-Interaction Agents send proper acknowledgement messages (received,
displayed, ignored).
Monitoring Agent has a global view of the MAS. In general it is responsible for its coordination
and for ensuring the safe and sound operation.
Special attention was given to predicting any possible problems that could arise and to plan the
alternative scenarios. The reliability and the robustness of the system depend mainly on its ability
to face as many as possible states of abnormal function, e.g. disconnection of a subsystem (i.e. db,
DCS), a not planned Agent death, inability to respond within the predefined time, etc.
157
identify the need to update part of the rules or the models. The latter is based on statistic metrics
and on feedback entered by the user. In both cases the Trainer Agent proposes to the administrator
to repeat a specific part of the off-line processing of data. The extraction of new models based on
new operation data and their embedment to the MAS ensures the adaptability and extensibility of
the application. In this way changes that involve the TPP operation (caused by wear, maintenance,
replacement, or even addition of new mechanical equipment) are faced.
9.4 Implementation
9.4.1 Data mining
As far as the off-line preprocessing and processing of data is concerned, the WEKA data-mining
suite was used for the application of the algorithms (wek, 2008). WEKA (distributed under the
GNU Public License) is a comprehensive toolbench for machine learning and data mining. Its main
strengths lie in the classification area, where all current Machine Learning approaches, and quite a few
older ones, have been implemented within a clean, object-oriented Java class hierarchy (Witten and
Frank, 2005). WEKA contains a comprehensive set of data pre-processing tools including filters for
discretization, normalization, resampling, and attribute selection and transformation. Additionally, it
offers visualization, and evaluation methods.
158
mode. This is an alternative mean to implement a JADE run-time, i.e. a container split into two parts:
the front-end and the back-end. The front-end resides on mobile devices and provides agents with
the same features of a container, while the implementation of most of these features is undertaken by
the back-end (hosted by a desktop computer).
The advantages are obvious: optimization of wireless link and more lightweight environment in
handheld devices. Furthermore, in case a connection temporary drops, the agent messages are automatically buffered in either part and delivered as soon as the connection is restored. The connection
between the two ends is managed in a manner transparent to the developers. However, there is a way
to be notified in case a disconnection or a reconnection occurs. This option was used by the IPPAMAS in order the User-Interaction Agents to act accordingly. For example, if an urgent message is
about to be sent, when the PDA is disconnected, the UIA may notify the user so as to use other means
of communication or take whatever alternative action is necessary. On the contrary, in cases that
routine information is not delivered and displayed in time to serve its purpose, the UIA may decide
not to display the respective message at all.
159
renders the system vulnerable to malicious attacks. Taken this into account, security issues should be
further considered when developing a commercial version of the presented prototype, e.g. adopting
standards like the WPA and WPA2 that improve significantly the security of WiFi systems, including
techniques for hiding APs from potential hackers etc.
As far as the handheld devices is concerned the minimum requirements were the support for
WiFI and JAVA MIDP 2.0, the 64MB RAM and the possession of a fast enough processor (clock rate
higher than 400MHz).
9.4.4 Profiles
Regarding the implementation of the profiles the XML markup syntax was chosen because it has several advantages, as enhancing interoperability and providing files which are both human readable and
machine processible. The profiles are structured in a hierarchical way with several more specific profiles building on a less specific profile. The application will preserve three kinds of profiles: services,
users and devices. The first two will be comprised of keywords (e.g. boiler/ turbine/ mills/ chemical
laboratory, operation/ maintenance/ administration, engineer/ foreman/ operator/ technician/ officer,
head-of-section/ deputy/ assistant). The device profile will contain a simple collection of device
characteristics.
9.5 Evaluation
The evaluation of the IPPAMAS can be approached from two different points of view. The users
face the application as a black box and care only about its performance and whether it is easy to use.
So, from the end-users perspective, i.e. the plant engineers, the IPPAMAS should be an innovative
application that will contribute to the performance optimization of the power plant and should fulfil
the following four criteria: 1) Precision, 2) Acceptable response time, 3) Reliability, and 4) Userfriendliness.
On the other hand, the developers are more interested in the inside MAS, in features as robustness and soundness, and in questions like what is the benefit compared to other software engineering
technologies?.
160
1 Monitoring Agent
Auxiliary agents: Surveillant Agent, Synchronization Agent, DBpplication Agent.
The data used for the simulation were different from the ones used for deriving the models. A
number of real measurements was replaced with erroneous values. Up to 10 erroneous measurements
were introduced simultaneously. The application located the 100% of them. In all the cases the
estimated values diverged negligibly from the real measurements.
The data were selected so as to contain several cases of the three types of alarms, i.e. low
priority: not particularly dangerous, intermediate priority: immediate handling required, and high
priority: imminent break. Furthermore, the simulation included various cases in which indications
to users should be provided. In addition, in some cases more than one users were available while in
some others none, so as to check the adaptability of the Distribution Agents. Besides, the users were
placed in different context, in order to test the reaction of the User-Interaction Agents.
The main aspects that were tested through the simulation were the following:
Robustness of the IPPAMAS. Up to 78 agents run simultaneously without causing bottlenecks or
other kind of problems. Some of them were killed on purpose, so as to check the MAS ability
to overcome such problems. Indeed, alternative predefined scenarios were automatically executed
and the best possible outcome was achieved.
Response time. In all cases the IPPAMAS corresponded successfully within the predefined time
period of 1 minute.
Accuracy. The estimated values were within the acceptable fault tolerance as predefined by the
experts. The alarms were fired correctly.
Reliability. The MAS proved that it can handle many simultaneous alarm signals, run continually
and recover from breakdown, and that it produces the same output for the same input.
Adaptability. When an agent or a user was unreachable within the acceptable time limits for
successive execution circles the other agents adapted their behavior accordingly.
161
(70%). The remaining were considered unnecessary or overdue by the plant personnel, leading to the
conclusion that either more data are needed for the training of the system or the specifications (predefined rules etc) are not enough. However, it was pointed out that the percentage of unsuccessful
indications might be reduced when more subsystems will be monitored by the application, as it will
have an overall picture of the operation (most of the subsystems are interconnected).
As for the context-awareness, the system corresponded appropriately in all cases in which the
users situation could be identified by the input data. Indeed, the employees said that in a way the UIA
acts similarly to a secretary or an intelligent answering machine. More specifically the employees
thought that taking the initiative (the UIA) to return a message or to postpone its display, when its
receiver is engaged in more important tasks, increases the effectiveness and the attractiveness of
the application. In addition, forwarding the imperative messages that are not undertaken in time,
increases the safety.
However, the users noticed that in real circumstances a users context might be quite different
than what is shown from the operation data, e.g. an accident, a private conversation etc. Particular
attention is required so as in these cases the persistent notification will not be annoying, thus causing
scorn.
162
into consideration in order to develop an advance version of the application. Emphasis will be placed
into the user interfaces and the context-awareness. Also, the IPPAMAS will be extended so as to
monitor more subsystems of the TPP Meliti.
Finally, as future work is concerned, an interesting topic for research would be the application of
data mining techniques to the application data of the IPPAMAS, in order to further adapt the profiles
and to improve the performance of the agents.
Acknowledgment
Partially funded by the 03ED735 research project, implemented within the Reinforcement Programme of Human Research Manpower framework and co-financed by National and Community
Funds (25% from the Greek Ministry of Development-General Secretariat of Research and Technology and 75% from E.U.-European Social Funding).
Special thanks to the engineers and operators of the Public Power Corporation S.A. thermal
power plants of Western Macedonia, Greece for providing information and data.
Chapter 10
Abstract
Education at the University College Dublin has transitioned from a once traditional educational approach to a modularised education framework, the first of its kind in Ireland. IUMELA is an intelligent modular-education learning assistant designed, using multi-agent systems (MAS), to assist students in their module selection decision-making process required as part of their degree programme.
Ubiquitously available to third level students via their mobile device, it answers the call for an application that could assist students who are unfamiliar with the concepts of modularisation, ensuring success from specifically tailored module combinations. The communicative overheads associated with
a fully connected multi-agent system have resulted in the search for increasingly more lightweight
alternatives, particularly when the MAS resides within a ubiquitous mobile environment. This paper
considers an alternative IUMELA MAS architecture that uses a significantly more lightweight mobile
assistant.
10.1 Introduction
IUMELA is an acronym for Intelligent Ubiquitous Modular Education Learning Assistant. It uses
multi-agent systems (MAS) technologies to create an intelligent learning assistant that is capable of
supporting students in their choice of modules based on their learning preferences, academic abilities and personal preferences. The ubiquitously available learning assistant applies expert systems
analysis functionality for the storage, retrieval and analysis of student models that assist in effective
module recommendation. It predicts potential outcomes through the investigation of the students
learning styles and comparative analysis of similar past students achievements. Its conclusions and
recommendations are subsequently displayed in a knowledgeable, yet meaningful manner using java
technologies.
IUMELA has been designed to run using integrated smartphone technologies on the XDA Mini
S. Smartphone technologies are increasingly becoming the de facto standard. Currently, they can
be used as graphical calculators, word processors, databases, test preparation tools and a means for
E. Mangina et al., Agent-Based Ubiquitous Computing, Atlantis Ambient and Pervasive Intelligence 1,
DOI 10.1007/978-94-91216-31-2_10, 2009 Atlantis Press/World Scientific
163
164
referencing resources. An initial comparative study has indicated that many smartphone technologies can rival the capabilities of personal digital assistants that are currently available on the market.
Todays third level academic students are frequently seeking increasingly lightweight mobile devices. Unfortunately, PDAs and smartphone technologies are still unable to compete with desktop
and laptop computers based on screen real estate, computational and storage power. The research
into the development of an intelligent assistant that can quickly respond to student issues led to a
lightweight multi-agent system based architecture using comprehensive student modelling facilities
and the inclusion of the ABITS FIPA compliant messaging service (mcgov2006). This fast and efficient architecture would facilitate students by reducing the time taken to interact with and receive
recommendations from the IUMELA assistant.
To fully appreciate the complexities behind the development of an adaptive multi-agent based
architecture that is capable of intelligent human-computer interactions, it is necessary to consider
the evolution of managed learning environments (MLE) and associated intelligent tutoring systems
(ITS). In section 2 we consider the direction of current research into the areas of intelligent multiagent systems in intelligent learning applications, mobile learning and the implementation of these
applications on smartphone technologies and finally, we delve into the study of cognitive strategies
applied to the development of the modularised education learning assistant. In section 3, the structure of the IUMELA MAS and its associated student model are presented. Section 4 considers the
IUMELA interface as a suitable medium for intelligent HCI. Section 5 enters into a debate regarding
whether or not the adoption of an ultra lightweight client side within a distributed multi-agent system
results in an enhanced communicative capacity. Finally, conclusions the conclusions of this research
are drawn in section 6.
IUMELA: Intelligent Ubiquitous Modular Education Learning Assistant in Third Level Education
165
and sophisticated control are fundamental to the success of the system (roch1995). As in the case of
IUMELA, they can provide multiple robust representational theories that enable the student to benefit
from a rich and varied learning environment.
Todays techno-savvy third level student is sufficiently capable of navigating through and around
most mobile and desktop devices. Their online browsing and searching strategies are, however, still
somewhat amiss. In fact, with the vast array of course information available students have difficulty extracting the useful from the redundant. Students have also demonstrated difficulty forming
beneficial and appropriate queries in order to extract suitable module combinations for consideration.
Multi-agent systems technologies are ideally suited in assisting students to navigate through the
melee of learning material required in todays training and educational environments. E-learning
systems are tools that exist because of external teaching and learning requirements. These applications have been designed to provide a service with minimal difficulty. E-learning tools are intuitively
designed, and the only learning required is that necessary to accomplish the academic task.
In general, multi-agent systems (MAS) agents are constructed specifically to undertake the tedious or mundane tasks. These systems undertake the task of browsing (lieb1995), sorting email and
filtering news group messages (cyph1991, gold2005, lang1995, lash1994), or finding users who share
similar interests (bala1998, fone1997, kuok1997). They are designed as tools to relieve the burden of
undertaking repetitive duties from an otherwise active user.
Sklar and Richards (skla2006) categorise human learning into two congruent field - training and
education - both of which make use of Managed Learning Environments (MLE) and Intelligent Tutoring Systems (ITS). They have divided the MLE into five main components: domain knowledge that
encompasses all subjects available through the MLE; teaching component which is an instructional
model detailing how a module should be taught; the student model presents the student understanding of the subject matter; a user interface that provides an aesthetically pleasing mechanism for HCI;
system adaptivity which ensures that the system can adapt to changes in students behaviour and
knowledge levels.
Sklar and Richards (skla2006) draws a comparison between a typical interactive multi-agent
system and their developed e-learning system. It is distinctive, however, in that instead of a user
model there is a student model. The pedagogical agent replaces the interface agent type in the elearning system architecture. The most compelling addition is the inclusion of a teaching component
in order to direct student learning.
It should be noted here that agents draw upon speech act theories in order to communicate
amongst each other. Speech act theory treats communication as action. Austin (aust1962) theorised
that a particular class of natural language utterances had the characteristics of actions. He referred to
the way that these speech acts change the state of the world in a similar way to physical action.
In the early 1990s, the US-based DARPA-funded Knowledge Sharing Effort was formed, with
the intention of developing protocols for the exchange of represented knowledge between autonomous information systems (fini1993). In 1995, (fipa1997) the Foundation for Intelligent Physical Agents (FIPA) began its work on developing standards for agent systems. The centrepiece of
this initiative was the development of an Agent Communication Language (ACL). It is a structured
language that is not dissimilar to KQML.
In general, agents can neither force other agents to perform some action, nor write data onto the
internal state of other agents. This does not mean that they cannot communicate, however. They can
perform actions - communicative actions - in order to influence other agents according to their needs.
They do, however, have control over their own beliefs (desires, intentions).
So, agents communicate amongst each other using specified Agent Communication Languages
(ACL), which allow them to effect their common environment. Humans, on the other hand, communicate via natural language utterances and, as such, an undergraduate student should never be required
to communicate with the MAS through agent-based structured language. The MAS in a HCI system
must, therefore, communicate with the user on their terms (fini1993).
166
Sklar and Richards (skla2006) depict a system that assists students when help is required. They
highlight three mechanisms through which this can be done: directly, upon request from the student;
indirectly, through monitoring student interactions; and finally via mixed initiative, which relies on a
combination of the former and the latter.
A key difference between agent systems for human learning and other agent systems is that there
must be a constant open channel that facilitates communication between the multi-agent system and
the student. A student will be unable to communicate with the MAS using a FIPA-compliant ACL.
As such, a communication channel needs to exist that bridges the human-agent gap. Oftentimes this
takes the form of a personal or interface agent. This agent must be capable of coping with differences
in settings and interfaces affecting the learner as well as knowing and understanding the learner to
further assist them in their educational needs.
Cooperation between organisations to facilitate e-learning is possible with the use of internationally accepted standards. They aim to define common learning technology specifications and
standards. These include:
(i) Learning Technology Standards Committee (LTSC) of the Institute of Electrical and Electronic
Engineers (mcgov2007)
(ii) The Alliance of Remote Instructional Authoring and Distribution Networks for Europe, financed
by the EU Commission (aria2008)
(iii) Instructional Management Systems Project [11] in the United States of America (ieee2008)
These organisations developed technical standards to support the broad deployment of learning technologies.
(gold1992) proposed the use of MAS to support collaboration in an online context. (john2004)
developed a collaborative on-line learning system for use in open and distance learning. Mengelle et
al. (blik2005) employed MAS strategies to create an intelligent tutoring system that would encapsulate multiple learning strategies. Their research presented core agent structures that could cope with
the implementation of multiple strategies for learning through simulating different roles depending
on the current requirements.
The IUMELA multi-agent system can ubiquitously facilitate mediation between multiple student
types and potential third level academic modules through the implementation of student modelling
strategies. It provides the student with a recommendation facility based on the parameters returned
from the student model and the description of the educational content. The modelling services are
provided through specialised expert agents that are dedicated to a number of pedagogical processes.
Every student is identified through a unique user identification number and password combination.
Their current context is updated via the assistant agent upon each login.
Frasson et al. (fras2005) endeavoured to define an agent-based tutoring system composed of the
necessary qualities for an adaptive Intelligent Tutoring System (ITS) in order to enhance learning.
Often, it replicates the behaviour of an intelligent human tutor adapting the subject matter to best
suit the student. More recently, other tutoring strategies were introduced. Enlivened through the
conceptualization of the co-learner and disrupter strategies, their ITS is now capable of instructing
the learner through a variety of mechanisms.
Chan (chan1990) developed a learning companion who simulates the behaviour of a second
learner (the companion) who would learn together with the human learner. Various alternatives to
this co-operative approach were conceived including (palt1991, vanl1994) to an inverted model of
ITS called learning by teaching in which the learner could teach the learning companion by giving structured explanations. Adaptive learning requires a flexible ITS, that can manipulate multiple
strategies.
Frasson et al. present an ITS architecture with the following agent types: a curriculum; a learner
module; and pedagogical module. Multiple agent types exist in order to encompass the variety of
IUMELA: Intelligent Ubiquitous Modular Education Learning Assistant in Third Level Education
167
roles. These adaptive agents are capable of adjusting their perception of situations (fras2005) and
modifying their decisions by choosing new reasoning methods. They adapt their strategies based
on dynamic information flow and varying resource availabilities. The agents perceive changes in
their common environment and amend their actions accordingly. Their reasoning tasks are based on
dynamically changing local and global objectives. These cognitive agent types lend themselves to the
task of intelligent tutoring. They can learn and ascertain new facts and enhance their knowledge-base.
The actor paradigm, presented by Frasson et al., embodies the reactive, adaptive, instruct-able
and cognitive requirements of todays ITS. It is capable of reacting to changes in its environment.
Its perceptive and control modules can adapt based on newly acquired learning strategies and new
learner types. The system is able to learn by experience and can acquire new strategies and similarly,
can generate new control tasks. This ITS architecture is composed of four modules - perception,
action, control and cognition, and is distributed over three layers - reactive, control and cognitive
(fras2005).
168
management facilities as well as mobile phone capabilities (bala1998). This can occur by adding
traditional phone functions to an already capable PDA, or by enhancing a mobile phone with smart
capabilities (mcgov2006). According to recent findings, more than 80 per cent of students in Ireland
own a laptop and mobile phone (ayoo2008). Mobile phone penetration levels have surpassed fixed
line phone levels for the first time, with mobile penetration in Ireland at 88 per cent and more than
3.5m mobile subscribers. The number of people with more than one mobile phone continued to
increase last year. It stood at 114 per cent in the second quarter of 2007. This is amongst the highest
rates in the EU (ayoo2008). This is up 11 per cent year on year.
In 2004, Internet penetration levels increased to 46 per cent. This indicates that students possess
the means by which they can access academic information via multiple forms of mobile device.
Furthermore, another study indicates that 220,000 five to nine year old children in Ireland own mobile
phones and a further 270,000 ten to fourteen year old students own a mobile phone (ayoo2008). This
is indicative of the impending techno-savvy generation third level students.
A Higher Education Student Laptop Programme was introduced throughout third level academic
institutions within Ireland, which has enabled thousands of third level students to gain access to
laptops and associated software. UCD is the first Irish third level institution to adopt the Student
Laptop Programme. Currently, 20 per cent of all students on the Belfield campus own their own
laptop. With the introduction of the Higher Education Student Laptop Programme, however, it is
expected that 75 per cent of all students at the university will own their own laptop over the course of
the next three years. There is 100 per cent wireless internet access support on the Belfield campus.
This enables students to use their mobile devices to ubiquitously access information (nola2006).
IUMELA: Intelligent Ubiquitous Modular Education Learning Assistant in Third Level Education
169
enhanced by PDAs as well. PDAs allow users to communicate with email servers, administrative applications (ayoo2008), and databases, such as those containing grades and other student information.
PDAs also allow educators to access the Internet via modem, infrared or serial port connections, or
via wireless access (ayoo2008).
170
IUMELA: Intelligent Ubiquitous Modular Education Learning Assistant in Third Level Education
171
172
materials at the OU UK reveal that potential students find the packs reassuring rather than off-putting.
The limitations lie in its inability to tell the students that they have the right background knowledge
for a course.
Diagnostic materials have been designed as course advisory tools. They can be divided into two
broad categories: generic diagnostic materials that test applicants suitability for higher education;
and course-specific materials that highlight suitability for a particular course. Lending from social
science research, IUMELA attempts to overcome the above issues through the fair representation of
potential modules using a combination of the above methodologies.
IUMELA: Intelligent Ubiquitous Modular Education Learning Assistant in Third Level Education
173
174
IUMELA: Intelligent Ubiquitous Modular Education Learning Assistant in Third Level Education
175
login screen that provides access to a registration screen. Many of the student records required by
IUMELA are available through other resources available at the university and, for this reason, only
information that is required is requested upon registration.
The initial login screen is minimal and uncomplicated in its design. It is evident from the image
below that the initial login screen has remained true to its original design specification. The application employs tabular navigation for ease of use. Studies have shown that the use of graphical or a
combination of both textual and graphical interface design is preferential to using a purely text-based
format.
The tabs enable navigation from the initial login screen, through the registration screen and to
help screen prior to initial registration. The student is capable of returning to the initial login screen
at any time. The current tab is always highlighted and the other two tabs remain in shadow. The
IUMELA logo is prominent on all three screens. This ensures the student is made aware of the application. The university insignia is displayed here also. The navigation links displayed highlight
the students location in the application, thus preventing the student becoming lost in hyperspace.
Finally, in order to enter the application the student must enter his unique username and password
combination which is available upon completion of the registration process. When the correct username and password combination is entered and the submit button has been depressed, the user is
navigated to the personalised welcome screen. Here, he will have access to the full array of information available to the mobile user.
The registration screen contains the minimum required information for IUMELA MAS to assist
the student. This information has been selected to enable the MAS to determine the students previous
academic history, learning preferences, future goals and learning styles. Due to the detailed nature
of the registration process, the required information was categorised according to the information
being retrieved and each category was displayed on a separate page. This has significantly reduced
vertical scrolling. Once the student had successfully completed the registration process, a username
and password would be allocated to them and a reminder of this combination would be emailed to
their specified email address.
The IUMELA registration process makes use of the Felder and Solomon Index of Learning Styles
that was alluded to in the initial user trial. The results obtained are then used by the IUMELA MAS
to help recommend modules of interest to the student when the need arises. It is evident that the use
of screen real estate has remained minimal to ensure enhanced usability on the smaller, more mobile
device.
The Register tab is highlighted to indicate that the student is currently working in the registration page. The navigation links allude to this also. Below, a series of questions require completion. Following their submission, the student is requested to complete a survey based on Felder and
Solomons Index of Learning Styles. Although this will benefit the student from the first time they
log on to use the application, it is not necessary that the student complete this immediately.
Each student will be afforded the opportunity to access the site once a suitable username and
password combination have been determined. The student will be made aware, however, that the
survey still requires completion. It is beneficial for the student to provide the answers to the survey
as it further assists the MAS to obtain an appropriate representation of students learning capabilities.
The help screen is also accessible prior to logging in. It is, however, limited to that information
that is required in order to determine if the application is suitable to their needs and how to complete
the login and registration information.
176
Fig. 10.2
It encourages students to frequently interact with the application and results have shown that students
remain on these pages for longer than their generic counterparts. This has the effect of enhancing
knowledge absorption.
The information presented to the student via IUMELA has been specifically chosen to instil a
sense of community at the university. It is hoped that the student will not feel like he is working
alone in a sterile environment but rather is a member of an interconnected community of students and
whose primary goal is an improvement in their academic experience at third level. The information
displayed on the welcome screen is limited to that which must be instantly accessible at log in. There
were several reasons for strictly adhering to this display. It would:
(i) minimise vertical scrolling
(ii) remove redundant information from the welcome screen
(iii) protect students privacy
(iv) make best use of the limited screen real estate
To this end, the information displayed includes
(i) navigation controls
(ii) recently updated information
(iii) university information
(iv) student details
The navigation controls enable students to navigate through the IUMELA screens in order to
retrieve the required information. Some of the tasks that a student might wish to complete in order to
achieve their academic goals include: obtain information on all modules available at the university,
determining student compatibility with the module of interest, comparison of current student compatibility with other current students compatibility, comparison of current student compatibility with
similar past students achievements in the particular module of interest, recommendation of suitable
modules for consideration, message interaction with other students, tutors and lecturers on the course.
The assistant in the IUMELA application helps students successfully complete their current module
selection. It is also capable of assisting the student in exam preparation and future module selection.
Navigation through the IUMELA screens can be achieved by using the tabs available at the top
of the screen, through the drop down list of most commonly used tools, using the navigation history
IUMELA: Intelligent Ubiquitous Modular Education Learning Assistant in Third Level Education
177
links, and finally, through the highlighted tasks at the bottom of the screen. The tasks highlighted are
those that require immediate attention.
The university details have been included in order to enhance the sense of community. Studies
have shown that students that feel a sense of belonging at school or university are more likely to
achieve higher grades than those that feel disassociated with their academic careers. Also, students
that feel a sense of belonging are more likely to ask for assistance if they get in trouble or do not
understand aspects of the course. Other students, who have no one to turn to will start to become
more introvert and reclusive which can often lead to the student becoming increasingly lost in their
studies. Instilling a sense of community is a fundamental principle of the IUMELA application.
Community and belonging play an important role throughout all aspects of the application in the
belief that if they do not exist; a student is unlikely to thrive in the learning environment.
178
intrusive. On the contrary, the students did not find it intrusive at all. The students appreciated it and
wanted the university to expand the service to other areas - like assignment deadlines.
Based on the preliminary user trials the message inbox was modified to be akin to the standard message inbox available on many low resolution, low screen real-estate devices such as mobile
phones and PDAs. A list of messages is displayed in the inbox. They can be ranked in order of
message type, from sender or by subject. An icon beside each message indicates if the message has
been read previously.
The information given here contains each senders name, the time at which each message was
sent and the first line of text contained in each message. Upon the student selecting a message to read,
the student is confronted with a full screen containing that message. IUMELA offers the student an
opportunity to reply to the message, delete, forward, move the message, mark as unread, or save the
senders details to the students contacts folder.
The messaging screen contains a representation of both students communicating. A further instant messaging facility enables students to undertake a real time chat, either through video messaging
or if they cannot contact the receiver the student can leave a message in the message drop box for
later perusal. Any task alluded to in a message can be immediately stored in the IUMELA task list
facility. These tasks can then be ranked in accordance with its perceived importance. In this way, a
student can choose to personalise this application to whatever degree they choose.
Fig. 10.3
The most innovative part of the IUMELA application is that of the module and assistant facilities.
They are also the facilities that make most use of the MAS intelligence. By clicking the module
tab on the IUMELA welcome screen the student is directed to the module selection screen. These
facilities can be used in conjunction with the Student Information System (SIS) to select modules
from semester to semester. It has multiple views; all designed with the intention of assisting a student
determine the most suitable module combination for their needs. Multiple views were provided to
ensure that a student can browse or search for modules in a manner that suits their current situation.
For example, if a student is aware of the school and faculty in which they wish to attend but are
unsure of the available electives they can navigate to that school and browse through the available
modules under title, lecture, complexity level or key word. In another instance, the student may be
aware of the subject they are interested in but not sure what module this is covered in. For this, a
IUMELA: Intelligent Ubiquitous Modular Education Learning Assistant in Third Level Education
179
student may do a keyword search. The results returned will contain all relevant modules from all
faculties. These can then be narrowed according to faculty, school, complexity, semester and time.
If a student is unsure of where to begin searching for modules, they can access the assistant agent to
help formulate a decision.
The assistant has access to all past academic records of all modules previously taken by the student. Furthermore, it maintains a directory of all HCI interactions that took place with the student
via IUMELA. These interactions include the initial survey taken during the completion of the initial registration process, the students learning journal entries, and also message interactions between
the student and their fellow classmates, tutors and lecturers. The results from these interactions are
aligned with specific academic preferences. These include what learning tasks best suit the current
student, what style of lecturing best suit the students learning preference, where do their strengths
lie, do they work well in group tasks or are better suited to working alone, do they prefer continuous
assessment or one single examination at the end of the module, what modules are their friends attending, what type of modules have they successfully completed in the past and so on. Upon correlating
these details, the results are ranked according to suitability. They are then meaningfully displayed.
Fig. 10.4
Initially, all the modules that lie within the suitability threshold range will be displayed to the student. He is then given some options that enable the quantity of suitable modules to be reduced. These
options include sorting by faculty, school, lecturer, semester, time and core components. When only
those modules that are of interest remain, the student can select a module for consideration. They are
then redirected to a module details screen, in which they can obtain a greater understanding of the
module under consideration, view a sample lecture, peruse sample presentation slides, read recommended material, see some sample examination questions, communicate directly with the teaching
assistants or lecturers and read feedback given by past pupils. This provides a level of interactivity
that was previously only alluded to.
10.5 Evaluation
The purpose of designing IUMELA was to assist third level students in their selection of module
combinations. During the design phase, however, it became evident that mobile devices still lack
the promised power and connectivity of their desktop counterparts. And, therefore, our research led
us to question whether performance of the IUMELA MAS could be improved through the adoption
180
of the ABITS FIPA Messenger. Because IUMELA is a mobile application, this study would be
undertaken using a lightweight client side, where the personalized and adaptive assistant agent is
located, and the more computationally expensive server side where the remainder of the MAS agents
resides. IUMELA makes use of the XDA Mini S, a currently mid range Smartphone technology.
It harnesses the power of the TI OMP 850 200 MHZ processor and is equipped with a 64k colour
touch screen and 240*320 backlit LCD screen. The server-side is maintained on a Dell Dimension
E521 with 4GB Dual-Channel DDR2 SDRAM 533MHz processor. The Moodle Managed Learning
Environment (MLE) is maintained on the server-side. It is an open source MLE, used for Internet
based course administration within the IUMELA application and makes use of the MySQL relational
database management system. IUMELA MAS uses the FIPA compliant Agent Factory toolkit and
Java as the programming language.
IUMELA: Intelligent Ubiquitous Modular Education Learning Assistant in Third Level Education
181
interaction is completed and finally the overall duration of the message interaction.
On average, around 144 message interactions are required in order for each initial IUMELA
survey to be completed by a student. The time codes retrieved enable the multi-agent system to
determine if and when a bottleneck is occurring within the IUMELA MAS architecture due to the
moderator agents message interactions having surpassed its optimal level. While undertaking the
survey, the bottleneck occurred mid-way through completion, at the sixty-first interaction.
Using the ABITS FIPA Messenger, the optimal number of concurrent message interactions occurs at interaction forty-seven. This does not occur until interaction seventy-eight within the control
scenario and is attributed to the assistant agent maintaining a full ontology and undertaking more
complicated inter-agent communications. Before this time, too few concurrent message interactions
are occurring and after which too many. The results indicate that a bottleneck occurred mid-way
through completion of the survey because it is at this time that the greatest number of message interactions is occurring between the assistant and moderator agents. The ABITS FIPA Messenger
achieved optimality of message interactions at a faster rate than the control scenario due to the inclusion of a java class that maintained a separate queue of completed surveys to be returned to the server
side moderator for processing. This had the effect of reducing the size of the assistant agents ontology and thus reduced its processing requirements. Increased efficiency on the client-side, however,
resulted in the moderator agent becoming a bottleneck sooner than in the control scenario.
Conclusions drawn from this study indicate that in order to maintain message interaction levels at an optimal level it must be ensured that the moderator agent does not become a bottleneck.
IUMELA MAS can achieve this by maintaining two disparate thresholds; a maximum and a minimum. For example, the quantity of messages to be relayed via a particular moderator agent can be set
to a maximum threshold. Whilst the number of messages concurrently being processed and sent remains below the threshold allowable, then it will accept further incoming messages. If, however, the
threshold is reached then using the cloning functionality available to all Agent Factory based MAS,
a moderator agent with similar functionalities is created and is registered on the required platform.
Subsequently, when a new message is relayed to the moderator agent operating at its maximum level,
it replies referencing the platform and port number of the newly created moderator agent.
Because the IUMELA MAS does not exist within a static environment it would not be plausible to
maintain a fixed maximum or minimum threshold. Instead, the moderator agent must use its internal
reasoning abilities to determine, based on the messaging service used, past usage logs, and its current
context, the most appropriate maximum and minimum thresholds.
10.6 Discussion
IUMELA, Intelligent Ubiquitous Modularised Education Learning Assistant makes use of multiagent systems (MAS) technologies to create an intelligent learning assistant that can support students
in their choice of modules based on their learning preferences, academic abilities and personal preferences. The learning assistant utilizes expert systems analysis functionality to recommend and predict
potential outcomes through the investigation of the students learning styles and comparative analysis of similar past students achievements. Its conclusions and recommendations are subsequently
displayed to the student via a mobile device using java-based servlet technologies. User modelling
can result in the recommendation of appropriate modules via the expert agent ubiquitously via the
students XDA Mini S. Because the mobile devices currently available to the average student are still
unable to compete with desktop and laptop computers based on screen real-estate, computational
and processing power, our research has led us to the consideration of a more lightweight client-side
through the reduction of the processing requirements of the assistant agent that resides on the mobile device. An evaluation of such an adaptation was achieved by undertaking a comparative study
between the original IUMELA MAS and that incorporating the ABITS FIPA Messenger.
Bibliography
(2000). Agent working group, 2000. agent technology green paper. object management group, ftp:
//ftp.omg.org/pub/docs/ec/00-03-01.pdf.
(2002). Foundation for intelligent physical agents, .
(2008). Agent academy, 2008, https://sourceforge.net/projects/agentacademy.
(2008). Jade, http://jade.tilab.com.
(2008). Weka, http://www.cs.waikato.ac.nz/~ ml/index.html.
Aamodt, A. and Plaza, E. (1994). Case-Based Reasoning: Foundational Issues, Methodological Variations, and System, AI Communications 7, 1, pp. 3659.
Aarts, E. (2004). Ambient intelligence: A multimedia perspective, IEEE Multimedia 11, pp. 1219.
Aarts, E., Collier, R., van Loenen, E. and de Ruyter, B. (2003). Ambient Intelligence, Proceedings
of the First European Symposium, Lecture Notes in Computer Science, Vol. 2875 (Springer
Verlag).
Aarts, E., Harwig, R. and Schuurmans, M. (2001). Ambient intelligence, in P. Denning (ed.), The
Invisible Future (McGraw Hill, New York), pp. 235250.
abd K. Shinozawa, J. Y., Brooks, R. and Naya, F. (2003). Human-robot dynamic social interaction,
NTT Technical Review 1, 6, pp. 3743.
Abowd, G. D., Atkeson, C. G., Bobick, A. F., Essa, I. A., MacIntyre, B., Mynatt, E. D. and Starner,
T. E. (2000). Living laboratories: the future computing environments group at the georgia
institute of technology, in Proceedings of Conference on Human Factors in Computing Systems
(CHI 00): extended abstracts on Human factors in computing systems (ACM Press, New
York, NY, USA), ISBN 1-58113-248-4, pp. 215216.
Abowd, G. D., Atkeson, C. G., Hong, J., Long, S., Kooper, R. and Pinkerton, M. (1997). Cyberguide:
a mobile context-aware tour guide, Wireless Networks 3, 5, pp. 421 433.
Akman, V. and Surav, M. (1996). Steps toward formalizing context, AI Magazine 17, 3, pp. 5572.
Allsopp, J. (2007). Microformats: Empowering Your Markup for Web 2.0 (Friends of ED).
Amgoud, L. and Parsons, S. (2002). Agent dialogues with conflicting preferences, in ATAL 01: Revised Papers from the 8th International Workshop on Intelligent Agents VIII (Springer-Verlag,
London, UK), pp. 190205.
Anabuki, M., Kakuta, H., Yamamoto, H. and Tamura, H. (2000). Welbo: An embodied conversational
agent living in mixed reality space, in Proceeding of the Conference on Human Factors in
Computing Systems - CHI 00 (The Hague, The Netherlands), pp. 1011.
Anagnostopoulos, C. B., Tsounis, A. and Hadjiefthymiades, S. (2007). Context awareness in mobile
computing environments, Wireless Personal Communications: An International Journal 42, 3,
pp. 445464.
Arranz, A., Cruz, A., Sanz-Bobi, M., Ruiz, P. and Coutino, J. (2008). intelligent system for anomaly
detection in a combined cycle gas turbine plant, Expert Systems with Applications 34, pp.
E. Mangina et al., Agent-Based Ubiquitous Computing, Atlantis Ambient and Pervasive Intelligence 1,
DOI 10.1007/978-94-91216-31-2, 2009 Atlantis Press/World Scientific
183
184
22672277.
Athanasopoulou, C., Chatziathanasiou, V., Athanasopoulos, G. and Kerasidis, F. (2008). Reduction
of nox emissions by regulating combustion parameters based on models extracted by applying
data mining algorithms, in 6th Mediterranean Conference on Power Generation, Transmission
and Distribution (Thessaloniki, Greece).
Athanasopoulou, C., Chatziathanasiou, V. and Petridis, I. (2007). Utilizing data mining algorithms
for identification and reconstruction of sensor faults: a thermal power plant case study, in 2007
IEEE Power Engineering Society (Lausanne, Switzerland).
Baader, F., Calvanese, D., McGuinness, D. L., Nardi, D. and Patel-Schneider, P. F. (eds.) (2003). The
Description Logic Handbook: Theory, Implementation, and Applications (Cambridge University Press), ISBN 0-521-78176-0.
Barakonyi, I., Psik, T. and Schmalstieg, D. (2004). Agents that talk and hit back: animated agents
in augmented reality, in Proceedings of the 3rd IEEE and ACM International Symposium on
Mixed and Augmented Reality (ISMAR 2004), pp. 141150.
Bartneck, C. (2002). eMuu An Embodied Emotional Character for the Ambient Intelligent Home,
Ph.D. thesis, Eindhoven University of Technology.
Barton, J. and Vijayaraghavan, V. (2002). Ubiwise: A ubiquitous wireless infrastructure simulation
environment, Technical Report HPL-2002-303, HP Labs.
Baylor, A. L., Rosenberg-Kima, R. B. and Plant, E. A. (2006). Interface agents as social models: the
impact of appearance on females attitude toward engineering, in CHI 06: CHI 06 extended
abstracts on Human factors in computing systems (ACM, New York, NY, USA), pp. 526531.
Bellifemine, F., Caire, G. and Greenwood, D. (2007). Developing multi-agent systems with JADE
(John Wiley and Sons).
Bellifemine, F., Caire, G. and Rimassa, G. (2002). JADE Programmers Guide, TILab and University
of Parma, jADE 2.6.
Bellifemine, F., Poggi, A. and Rimassa, G. (2001). Developing multi-agent systems with a fipacompliant agent framework, Software-Practice and Experience 31, pp. 103128.
Berners-Lee, T., Hendler, J. and Lassila, O. (2001). The semantic web: Scientific american, Scientific
American .
Besada, J., Molina, J., Garca, J., Berlanga, A. and Portillo, J. (2004a). Aircraft identification integrated in an airport surface surveillance video system, Machine Vision and Applications .
Besada, J. A., Garca, J. and Miguel, G. (2004b). A new approach to on-line optimal estimation of
multisensor biases, IEE Proceedings. Radar, Sonar and Navigation 151, 1.
Bichindaritz, I. (2006). Memory Organization as the Missing Link Between Case-Based Reasoning
and Information Retrieval in Biomedicine, Computational Intelligence 22, 3-4, pp. 148160.
Biegel, G. and Cahill, V. (2004). A framework for developing mobile, context-aware applications,
in PERCOM 04: Proceedings of the Second IEEE International Conference on Pervasive
Computing and Communications (PerCom04) (IEEE Computer Society, Washington, DC,
USA), ISBN 0-7695-2090-1, p. 361.
Billard, A. and Dautenhahn, K. (1999). Experiments in learning by imitation: Grounding and use of
communication in robotic agents, Adaptive Behaviour 7, 3, pp. 411434.
Billinghurst, M., Kato, H. and Poupyrev, I. (2001). The magicbook: a transitional ar interface, Computers and Graphics , pp. 745753.
Biocca, F. (1997). The cyborgs dilemma: Embodiment in virtual environments, in CT 97: Proceedings of the 2nd International Conference on Cognitive Technology (CT 97) (IEEE Computer
Society, Washington, DC, USA), p. 12.
Biocca, F. and Nowak, K. (1999a). Communication and progressive embodiment in virtual environments, Paper presented at the International Communication Association, San Francisco.
Biocca, F. and Nowak, K. (1999b). I feel as if Im here, inside the computer:Toward a theory of
presence in ad- vanced virtual environments, Paper presented at the International Communi-
Bibliography
185
186
Chen, H. (2004). An Intelligent Broker Architecture for Pervasive Context-Aware Systems, Ph.D.
thesis, University of Maryland, Baltimore County.
Chen, H., Finin, T. and Joshi, A. (2003). An ontology for context-aware pervasive computing environments, The Knowledge Engineering Review 18, 3, pp. 197207.
Chen, H., Finin, T. and Joshi, A. (2004a). A context broker for building smart meeting rooms, in
C. Schlenoff and M. Uschold (eds.), Proceedings of the Knowledge Representation and Ontology for Autonomous Systems Symposium, 2004 AAAI Spring Symposium, AAAI (AAAI Press,
Menlo Park, CA, Stanford, California), pp. 5360.
Chen, H., Finin, T. and Joshi, A. (2005). Ontologies for Agents: Theory and Experiences, chap. The
SOUPA Ontology for Pervasive Computing, Whitestein Series in Software Agent Technologies (Birkhauser Basel), pp. 233258, doi:http://dx.doi.org/10.1007/3-7643-7361-X 10, URL
http://www.springerlink.com/content/k127108k44351226/.
Chen, H., Finin, T., Joshi, A., Kagal, L., Perich, F. and Chakraborty, D. (2004b). Intelligent agents
meet the semantic web in smart spaces, IEEE Internet Computing 8, 6, pp. 6979.
Chen, H., Perich, F., Chakraborty, D., Finin, T. and Joshi, A. (2004c). Intelligent agents meet semantic
web in a smart meeting room, in Proceedings of the Third International Joint Conference
on Autonomous Agents and Multiagent Systems (AAMAS 04) (IEEE Computer Society, Los
Alamitos, CA, USA), ISBN 1-58113-864-4, pp. 854861.
Chen, H., Perich, F., Finin, T. and Joshi, A. (2004d). SOUPA: Standard ontology for ubiquitous
and pervasive applications, in International Conference on Mobile and Ubiquitous Systems:
Networking and Services, pp. 258267.
Chiang, F., Braun, R. M., Magrath, S., Markovits, S. and Huang, S. (2005). Autonomic service configuration in telecommunication mass with extended role-based gaia and jadex. PONER!!!! ,
pp. 13191324.
Chittaro, L., Ieronutti, L. and Rigutti, S. (2005). Supporting presentation techniques based on virtual humans in educational virtual worlds, in CW 05: Proceedings of the 2005 International
Conference on Cyberworlds (IEEE Computer Society, Washington, DC, USA), pp. 245252.
Clausen, T. and Jacquet, P. (2003). RFC 3626: Optimized Link State Routing Protocol (OLSR),
http://www.ietf.org/rfc/rfc3626.txt.
Clement, L., Hately, A., von Riegen, C. and Rogers, T. (2004). UDDI version 3.0.2, http://uddi.
org/pubs/uddi-v3.0.2-20041019.htm.
Clements, P. C. (2001). From subroutines to subsystems: component-based software development, ,
pp. 189198.
Clip, D. (2003). Gnutella Protocol Specification v0. 4, http//www. clip2. com/GnutellaProtocol04.
pdf .
Coen, M. H. (1997). Building brains for rooms: designing distributed software agents, in Proceedings
of the Conference on Innovative Applications of Artificial Intelligence (IAAI97) (AAAI Press),
pp. 971977.
Coen, M. H. (1998). Design principles for intelligent environments, in Proceedings of the fifteenth
national/tenth conference on Artificial intelligence/Innovative applications of artificial intelligence (AAAI 98/IAAI 98) (American Association for Artificial Intelligence, Menlo Park, CA,
USA), ISBN 0-262-51098-7, pp. 547554.
Collett, T. and MacDonald, B. (2006). Augmented reality visualisation for player, in Proceedings
of the 2006 IEEE International Conference on Robotics and Automation (ICRA 2006), pp.
39543959.
Collier, R. W. (2001). Agent Factory: A Framework for the Engineering of Agent-Oriented Applications, Ph.D. thesis, University College Dublin, Dublin, Ireland.
Collins, N. and Baird, C. (1989). Terrain aided passive estimation, in Proceedings of the IEEE National Aerospace and Electronics Conference, Vol. 3, pp. 909916.
Collins, R. T., Lipton, A. J., Fujiyoshi, H. and Kanade, T. (2001). Algorithms for cooperative multi-
Bibliography
187
188
Bibliography
189
190
890.
Kaplan, F. (2005). Everyday robotics: robots as everyday objects, in sOc-EUSAI 05: Proceedings of
the 2005 joint conference on Smart objects and ambient intelligence (ACM, New York, NY,
USA), pp. 5964.
Karniely, H. and Siegelmann, H. T. (2000). Sensor registration using neural networks, IEEE Transaction on Aerospace and Electronic Systems 36, 1, pp. 85101.
Kato, H. and Billinghurst, M. (1999). Marker tracking and HMD calibration for a video-based augmented reality conferencing system, in Proceedings of the Second International IEEE Workshop on Augmented Reality - IWAR 99 (San Francisco, California, USA).
Ketchpel, S. (1994). Forming coalitions in the face of uncertain rewards, in Proceedings of the National Conferece on Artificial Intelligence (Seattle, WA), pp. 414419.
Kidd, C. and Breazeal, C. (2005). Sociable robot systems for real-world problems, in Proceedings of
the IEEE International Workshop on Robot and Human Interactive Communication (ROMAN
2005), pp. 353358.
Kim, J.-H. (2005). Ubiquitous robot, in Computational Intelligence, Theory and Applications, Vol. 33
(Springer Berlin / Heidelberg).
Kirubarajan, T., Bar-Shalom, Y., Pattipati, K. R. and Kadar, I. (2000). Ground target tracking with
variable structure imm estimator, IEEE Transaction on Aerospace and Electronic Systems 36,
1, pp. 392400.
Klein, J., Moon, Y. and Picarda, R. W. (1999). This computer responds to user frustration, in CHI
99: CHI 99 extended abstracts on Human factors in computing systems (ACM, New York,
NY, USA), pp. 242243.
Kopanas, I., Avouris, N. and Daskalaki, S. (2002). The role of domain knowledge in a large scale
data mining project, Lecture Notes in Artificial Intelligence 2308, pp. 288299.
Kraus, S., Nirkhe, M. and Sycara, K. P. (1993). Reaching agreements through argumentation: a
logical model (preliminary report), in Proceedings of the 12th International Workshop on
Distributed Artificial Intelligence (Hidden Valley, Pennsylvania), pp. 233247.
LaMarca, A., Brunette, W., Koizumi, D., Lease, M., Sigurdsson, S. B., Sikorski, K., Fox, D. and
Borriello, G. (2002). Plantcare: An investigation in practical ubiquitous systems, in UbiComp
02: Proceedings of the 4th international conference on Ubiquitous Computing (SpringerVerlag, London, UK), pp. 316332.
Lech, T. C. and Wienhofen, L. W. M. (2005). Ambieagents: a scalable infrastructure for mobile and
context-aware information services, in AAMAS 05: Proceedings of the fourth international
joint conference on Autonomous agents and multiagent systems (ACM, New York, NY, USA),
ISBN 1-59593-093-0, pp. 625631.
Lee, W., Lee, J. and Woo, W. (2005). TARBoard: Tangible augmented reality system for tabletop game environment, in Proceedings of PerGames 2005, 2nd International Workshop on
Pervasive Gaming Applications.
Lesser, V. (1999). Cooperative multiagent systems: A personal view of the state of the art, IEEE
Transactions on Knowledge and Data Engineering 11, 1.
Lin, C.-y. and Hsu, J. Y.-j. (2006). IPARS: Intelligent portable activity recognition system via everyday objects, human movements, and activity duration, in Modeling Others from Observations
(MOO 2006): Papers from the 2006 AAAI Workshop (AAAI Press, Boston, Massachusetts,
USA), pp. 4452.
Long, S., Aust, D., Abowd, G. and Atkeson, C. (1996). Cyberguide: prototyping context-aware
mobile applications, in Conference companion on Human factors in computing systems (CHI
96) (ACM Press, Vancouver, British Columbia, Canada), ISBN 0-89791-832-0, pp. 293
294.
Look, G. and Shrobe, H. (2004). A plan-based mission control center for autonomous vehicles, in
IUI 04: Proceedings of the 9th international conference on Intelligent user interfaces (ACM
Bibliography
191
192
Nieto-Carvajal, I., Bota, J. A., Ruiz, P. M. and Gomez-Skarmeta, A. F. (2004). Implementation and
evaluation of a location-aware wireless multi-agent system, in EUC, pp. 528537.
Nwana, H. S., Ndumu, D. T., Lee, L. C., Collis, J. C. and Re, I. I. (1999). Zeus: A tool-kit for building
distributed multi-agent systems, Applied Artifical Intelligence Journal 13, pp. 129186.
OHare, G. M. P., Collier, R., Conlon, J. and Abbas, S. (1998). Agent factory: An environment for
constructing and visualising agent communities, in Proceedings of the Ninth Irish Conference
on Artificial Intelligence and Cognitive Science - AICS 98 (Dublin, Ireland), pp. 249261.
OHare, G. M. P., Duffy, B. R. and Campbell, A. G. (2004). NeXuS: Mixed reality experiments with
embodied intentional agents, in Proceedings of the Seventeenth International Conference on
Computer Animation and Social Agents - CASA 2004 (Geneva, Switzerland).
ONeill, E., Klepal, M., Lewis, D., ODonnell, T., OSullivan, D. and Pesch, D. (2005). A testbed for
evaluating human interaction with ubiquitous computing environments, in Proceedings of the
First International Conference on Testbeds and Research Infrastructures for the DEvelopment
of NeTworks and COMmunities (TRIDENTCOM05) (IEEE Computer Society, Washington,
DC, USA), pp. 6069.
Padgham, L. and Winikoff, M. (2004). Developing intelligent agent systems: a practical guide (John
Wiley and Sons).
Parsons, S., Sierra, C. and Jennings, N. R. (1998). Agents that reason and negotiate by arguing,
Journal of Logic and Computation 8, 3, pp. 261292.
Parsons, S. D. and Jennings, N. R. (1996). Negotiation through argumentation-A preliminary report,
in Proceedings of the Second International Conference Multi-Agent Systems (ICMAS96) (Kyoto, Japan), pp. 267274.
Patricio, M., Carbo, J., Perez, O., Garcia, J. and Molina, J. (2007). Multi-agent framework in visual
sensor networks, EURASIP Journal on Advances in Signal Processing , pp. Article ID 98639,
21 pages.
Paulidis, I. and Morellas, V. (????). Two examples of indoor and outdoor surveillance systems
(Kluwer Academic Publishers, Boston 2002).
Perich, F., Joshi, A., Finin, T., and Yesha, Y. (2004). On data management in pervasive computing
environments, IEEE Transactions on Knowledge and Data Engineering .
Perkins, C., Belding-Royer, E. and Das, S. (2003). RFC 3561: Ad hoc on-demand distance vector
(AODV) routing, http://www.ietf.org/rfc/rfc3561.txt.
Plaza, E., Arcos, J. and Martn, F. (1996). Cooperation Modes among Case-Based Reasoning Agents,
Proc. ECAI 96.
Pokahr, A., Braubach, L. and Lamersdorf, W. (2003). Jadex: Implementing a bdi-infrastructure for
jade agents, EXP - in search of innovation (Special Issue on JADE) 3, 3, pp. 7685.
Prakken, H. (2006). Formal systems for persuasion dialogue, Knowledge Engineering Review 21, 2,
pp. 163188.
Prakken, H. and Sartor, G. (1996). A dialectical model of assessing conflicting arguments in legal
reasoning, Artificial Intelligence and Law 4, 3-4, pp. 331368.
Prendingera, H., Dohi, H., Wang, H., Mayer, D. and Ishizuka, M. (2004). Empathic embodied interfaces: Addressing users affective state, in Proceedings of the Tutorial and Research Workshop
on Affective Dialogue Systems (Springer Verlag), pp. 5364.
Priest, G. (2002). Paraconsistent Logic, in D. M. Gabbay (ed.), Handbook of Philosophical Logic
Volume 6, 2nd edn. (Kluwer Academic Pub.).
Raiffa, H. (1984). The Art and Science of Negotiation (Harvard Univ. Press, Cambridge, Massachusetts).
Ramanujam, S. and Capretz, M. A. M. (2004). Design of a multi-agent system for autonomous
database administration, International Journal of Intelligent Systems , pp. 11671170.
Ranganathan, A., Al-Muhtadi, J. and Campbell, R. H. (2004). Reasoning about uncertain contexts in
pervasive computing environments, IEEE Pervasive Computing 3, 2, pp. 6270.
Bibliography
193
Rao, A. and Georgeff, M. (1995a). Bdi agents: from theory to practice, in Proceedings of the First
International Conference on Multi-Agent Systems (ICMAS95) (The MIT Press, Cambridge,
MA, USA), pp. 312319.
Rao, A. S. and Georgeff, M. P. (1995b). Bdi agents: From theory to practice, in ICMAS, pp. 312319.
Reiter, R. (2001). Knowledge in Action: Logical Foundations for Specifying and Implementing Dynamical Systems (MIT Press).
Reynolds, V., Cahill, V. and Senart, A. (2006). Requirements for an ubiquitous computing simulation
and emulation environment, in First International Conference on Integrated Internet Ad hoc
and Sensor Networks (InterSense 2006) (OCP Science).
Rickenberg, R. and Reeves, B. (2000). The effects of animated characters on anxiety, task performance, and evaluations of user interfaces, in CHI 00: Proceedings of the SIGCHI conference
on Human factors in computing systems (ACM, New York, NY, USA), pp. 4956.
Riva, G., Vatalaro, F., Davide, F. and Alcaniz, M. (2005). Ambient Intelligence (IOS Press).
Roman, M., Hess, C., Cerqueira, R., Ranganathan, A., Campbell, R. and Nahrstedt, K. (2002). Gaia:
A Middleware Infrastructure to Enable Active Spaces, IEEE Pervasive Computing 1, 4, pp.
7483.
Roman, M., Hess, C., Cerqueira, R., Ranganathan, A., Campbell, R. H. and Nahrstedt, K. (2002).
Gaia: a middleware platform for active spaces, ACM SIGMOBILE Mobile Computing and
Communications Review 6, 4, pp. 6567.
Rosenschein, J. S. and Zlotkin, G. (1994). Rules of Encounter. Designing Conventions for Automated
Negotiation among Computers (MIT Press).
Royer, E. and Toh, C. (1999). A Review of Current Routing Protocols for Ad Hoc Mobile Wireless
Networks, Personal Communications, IEEE [see also IEEE Wireless Communications] 6, 2,
pp. 4655.
Salber, D., Dey, A. K. and Abowd, G. D. (1999a). The context toolkit: aiding the development of
context-enabled applications, in Proceedings of the SIGCHI conference on Human factors in
computing systems (CHI99) (ACM Press, New York, NY, USA), ISBN 0-201-48559-1, pp.
434441.
Salber, D., Dey, A. K., Orr, R. J. and Abowd, G. D. (1999b). Designing for ubiquitous computing: A
case study in context sensing, Tech. Rep. GIT-GVU-99-29, Georgia Institute of Technology.
Sas, C. and OHare, G. M. P. (2001). Defining and measuring presence in non-virtual environments: An experimental study, in Proceedings of the 4th International Workshop on Presence
(Philadelphia, PA, USA).
Schiaffinoa, S. and Amandia (2004). A user interface agent interaction: personalization issues, Int.
J. Human-Computer Studies 60, pp. 129148.
Schilit, B., Adams, N. and Want, R. (1994). Context-aware computing applications, in Proceedings
of IEEE Workshop on Mobile Computing Systems and Applications (Santa Cruz, CA, US), pp.
85 90.
Schmidt, A. (2005). Interactive context-aware systems - interacting with ambient intelligence, in
G. Riva, F. Vatalaro, F. Davide and M. Alcaniz (eds.), Ambient Intelligence (IOS Press), pp.
159178.
Schmidt, A., Beigl, M. and Gellersen, H. (1999). There is more to context than location, Computer
& Graphics Journal 23, 19, pp. 893902.
Schmidt, A., Kortuem, G., Morse, D. and Dey, A. (2001). Situatied interaction and context-aware
computing, Personal and Ubiquitous Computing 5, 1, pp. 13.
Scott, C. (1994). Improved gps positioning for motor vehicles through map matching, in Proceedings
of ION GPS-94: 7th International Technical Meeting of the Satellite Division of the Institute
of Navigation, pp. 13911400.
Shechory, O. and S.Kraus (1995). Feasible formation of stable coalitions among autonomous agents
in general environments, Computational Intelligence Journal .
194
Shohama, Y. and Tennenholtz, M. (1995). On social laws for artificial agent societies: off-line design,
Artificial Intelligence 73, pp. 231252.
Shoji, M., Miura, K. and Konno, A. (2006). U-Tsu-Shi-O-Mi: The virtual humanoid you can reach,
in Proceedings of the Thirtythird International Conference on Computer Graphics and Interactive Techniques - SIGGRAPH 2006 (Boston, Massachusetts, USA).
Shreiber, G., Akkermans, H., Anjewierden, A., de Hoog, R., Shadbolt, N., de Velde, W. V. and
Wielinga, B. (2000). Knowledge Engineering and Management: the CommonKADS methodology (MIT Press).
Siebel, N. and Maybank, S. (2004). The advisor visual surveillance system, ECCV 2004 workshop
Applications of Computer Vision (ACV) 1.
Simmons, R., Goldberg, D., Goode, A., Monetmerlo, M., Roy, N., Sellner, B., Urmson, C., Schultz,
A., Abramson, M., Adams, W., Atrash, A., Bugajska, M., Coblenz, M., MacMahon, M.,
Perzanowski, D., Horswill, I., Zubek, R., Kortenkamp, D., Wolfe, B., Milman, T. and Maxwell,
B. (2003). Grace: An autonomous robot for the AAAI robot challenge, AI Magazine 24, pp.
5172.
Slater, M., Pertaub, D.-P. and Steed, A. (1999). Public speaking in virtual reality: facing an audience
of avatars, Computer Graphics and Applications, IEEE 19, 2, pp. 69.
Smith, M. K., , Welty, C. and McGuinness, D. L. (2004). OWL web ontology language guide. W3C
recommendation, Tech. rep., W3C.
Smithson, A., Moreau, L., Moro, G. and Koubarakis, M. (2003). Engineering an agent-based peerto-peer resource discovery system, Agents and Peer-to-Peer Computing. First International
Workshop, AP2PC 2002. Revised and Invited Papers. (Lecture Notes in Artificial Intelligence
Vol.2530) (Springer-Verlag, Berlin, Germany).
Soldatos, J., Pandis, I., Stamatis, K., Polymenakos, L. and Crowley, J. (2007). Agent based middleware infrastructure for autonomous context-aware ubiquitous computing services, Computer
Communications 30, pp. 577591.
Stilman, M., Chestnutt, J., Michel, P., Nishiwaki, K., Kagami, S. and Kuffner, J. (2005). Augmented
reality for robot development and experimentation, Tech. Rep. CMU-RI-TR-05-55, Robotics
Institute, Carnegie Mellon University.
Stone, M. (1974). Cross-validatory choice and assessment of statistical predictions, Journal of the
Royal Statistical Society 36, 2, pp. 577591.
Strang, T. and Linnhoff-popien, C. (2004). A context modeling survey, in Workshop on Advanced
Context Modelling, Reasoning and Management at The Sixth International Conference on
Ubiquitous Computing (UbiComp 2004) (Nottingham, England).
Strang, T., Linnhoff-popien, C. and Frank, K. (2003). CoOL: A context ontology language to enable
contextual interoperability, in Proceedings of 4th IFIP WG 6.1 International Conference on
Distributed Applications and Interoperable Systems (DAIS2003) (Springer Verlag), pp. 236
247.
Sutherland, I. E. (1998). A head-mounted three dimensional display, , pp. 295302.
Sycara, K. (1990). Persuasive argumentation in negotiation, Theory and Decision 28, 3, pp. 203242.
Sycara, K., Paolucci, M., Velsen, M. V. and Giampapa, J. (2003). The retsina mas infrastructure,
Autonomous Agents and Multi-Agent Systems 7, 1-2, pp. 2948.
Syukur, E., Loke, S. and Stanski, P. (2005). Methods for policy conflict detection and resolution in
pervasive computing environments, in Policy Management for Web workshop in conjunction
with WWW2005 Conference (Chiba, Japan).
Tamura, H., Yamamoto, H. and Katayama, A. (2001). Mixed reality: future dreams seen at the border
between real and virtual worlds, Computer Graphics and Applications, IEEE 21, 6, pp. 6470.
Thanh, D. V. and Jorstad, I. (2005). A service-oriented architecture framework for mobile services, in
Telecommunications, 2005. Advanced Industrial Conference on Telecommunications/Service
Assurance with Partial and Intermittent Resources Conference/ E-Learning on Telecommuni-
Bibliography
195
196