Although some success [13] [14] have been made in the literature for solvingthe joint action and configuration planning problems at a global level for heterogeneousrobotic ecologies or to enable their purely reactive configuration [15], wepropose to distribute certain aspects <strong>of</strong> these tasks over a number <strong>of</strong> agents withvarying responsibilities and functionalities in order to lead to better scalability,robustness and fault tolerance.Agent and Multi Agent Systems (MASs) are regarded as a general-purposeparadigm to facilitate the co-ordination <strong>of</strong> complex systems built in terms <strong>of</strong>loosely-coupled, situated, autonomous and social components (the agents). Inparticular, the Belief Desire Intention (BDI) agent model, used in the Self -OSGiframework discussed in the following section, provides a simple but extensiblemodel <strong>of</strong> agency that explicitly addresses the production <strong>of</strong> rational and autonomousbehaviour by agents with limited computational resources.3 Self -OSGiSelf -OSGi [3] [4] is a BDI agent framework built on OSGi Java technology andpurposefully designed to support the type <strong>of</strong> collaboration envisaged within theubiquitous and embedded systems targeted by RUBICON.The component & service orientation used in the design <strong>of</strong> Self -OSGi is anhighly popular, mainstream approach used to build modular s<strong>of</strong>tware systems.Component & service frameworks operate by posing clear boundaries (in terms<strong>of</strong> provided and required service interfaces) between s<strong>of</strong>tware components andby guiding the developers in re-using and assembling these components intoapplications. Self -OSGi addresses the lack <strong>of</strong> common adaptation mechanismsin these frameworks by leveraging their previously unexploited similarities withthe BDI agent model.3.1 OSGiOSGi specification [5] is currently the most widely adopted technology for buildingmodular control systems for networked home applications, with many implementationstargeting computationally constrained platforms. Within the AALdomain, OSGi-based middleware have long been used to provide the technicalbasis for integrating network devices and services, e.g. in EU projects such asAmigo, OASIS, SOPRANO, and their recent consolidation in the UniversAALplatform.OSGi defines a standardised component model and a lightweight containerframework, built above the JVM, which is used as a shared platform for networkprovisionedservices and components specified through Java interfaces and Javaclasses. Each OSGi platform facilitates the dynamic installation and management<strong>of</strong> units <strong>of</strong> deployment, called bundles, by acting as a host environmentwhereby various applications can be executed and managed in a secured andmodularised environment. An OSGi bundle is packaged in a Jar file and organisesthe frameworks internal state and manages its core functionalities. These73
include both container and life cycle operations to install, start, stop and removecomponents as well as checking dependencies.The separation between services and their actual implementations is the keyto enable system adaptation. With OSGi, in addition to syntactic matching <strong>of</strong>service interfaces, developers can also associate lists <strong>of</strong> name/value attributes todescribe the semantic <strong>of</strong> each service, and use the LDAP filter syntax to searchthe services that match given search criteria. Furthermore, Declarative Services(DS) for OSGi <strong>of</strong>fers a declarative model for managing multiple componentswithin each bundle and also for automatically publishing, finding and bindingtheir required/provided services, based on XML component definitions. However,DS only matches pre-defined filters with pre-defined services attributes <strong>of</strong> alreadyactive components, but does not consider the automatic instantiation <strong>of</strong> newcomponents, the context-sensitive selection <strong>of</strong> their services, or the automaticrecovery from their failure - all necessary features for the construction <strong>of</strong> contextaware,adaptive systems.3.2 Component & Service based Agent ModelSelf -OSGi addresses the issues outlined in the previous section by translating theBDI agent model [16] into general component & service concepts. In particular,the separation between the services interface and the services implementation isthe basis for implementing both the declarative and the procedural components<strong>of</strong> BDI-like agents, and also for handling dynamic environments, by replicatingtheir ability to search for alternative applicable plans when a goal is first postedor when a previously attempted plan has failed.Belief Model: As in the Jadex agent language [17], Self -OSGi represents beliefsas simple Java objects. Compared to agent toolkits where beliefs are stored aslogic predicates, objects have the advantage <strong>of</strong> providing a strong typed definition<strong>of</strong> agent’s beliefs. In addition, within Self -OSGi, a belief set is implemented asa Belief Set component with clearly defined interfaces, which are used to accessany data that may affect the value <strong>of</strong> its beliefs.Service Goal Model: Goals, describing the desires that the agent may possiblyintend, are represented in Self -OSGi by the (Java) interfaces <strong>of</strong> the services thatmay be used to achieve them, or service goals.Service goals may represent either: (i) performative sub-goals defining thedesired conditions to bring about in the world and/or in the systems state - forinstance, the method ”(void) beAt(X, Y)” in the goal service GoalNavigationmay be used by a robotic agent to represent the goal <strong>of</strong> being at a given location- and (ii) knowledge sub-goals subtending the exchange <strong>of</strong> information. Forinstance, the method ”Image getImage()” in the GoalImage service goal maybe used to express the goal <strong>of</strong> retrieving the last video frame captured by onecamera. In addition, service goals attributes may be used to further characteriseeach service goal, e.g. the characteristic <strong>of</strong> the information requested/granted,74
- Page 2 and 3:
Proceedings of the Tenth Internatio
- Page 4 and 5:
OrganisationOrganising CommitteeMeh
- Page 6:
Table of ContentseJason: an impleme
- Page 10 and 11:
in Sect. 3 the translation of the J
- Page 12 and 13:
init_count(0).max_count(2000).(a)(b
- Page 14 and 15:
For instance, a failure in the ERES
- Page 16 and 17:
{plan, fun start_count_trigger/1,fu
- Page 18 and 19:
single parameter, an Erlang record
- Page 20 and 21:
1. Belief annotations. Even though
- Page 22 and 23:
decisions taken during the design a
- Page 24 and 25: Conceptual Integration of Agents wi
- Page 26 and 27: Fig. 2. Active component structurep
- Page 28 and 29: the service provider component. As
- Page 30 and 31: Fig. 4. Web Service Invocationretri
- Page 32 and 33: 01: public interface IBankingServic
- Page 34 and 35: tate them in the same way as in the
- Page 36 and 37: 01: public interface IChartService
- Page 38 and 39: implementations being available for
- Page 41: deliberative behavior in BDI archit
- Page 44 and 45: layer modules (i.e. nodes) can be d
- Page 46 and 47: different methods to choose the cur
- Page 48 and 49: also a single scheduler module, imp
- Page 50 and 51: andom choice (OR), conditional choi
- Page 52 and 53: - Dealing with conflicts based on p
- Page 54 and 55: 5. Brooks, R. A. (1991) Intelligenc
- Page 56 and 57: An Agent-Based Cognitive Robot Arch
- Page 58 and 59: It has been argued that building ro
- Page 60 and 61: EnvironmentHardwareLocal SoftwareC+
- Page 62 and 63: a cognitive layer can connect as a
- Page 64 and 65: can reliably be differentiated and
- Page 66 and 67: 4 ExperimentTo evaluate the feasibi
- Page 68 and 69: learn or gain knowledge from experi
- Page 70 and 71: A Programming Framework for Multi-A
- Page 72 and 73: exchange and storage of tuples (key
- Page 76 and 77: as well as important non-functional
- Page 78 and 79: component plans have been instantia
- Page 80 and 81: A in the example) can evaluate all
- Page 83 and 84: 1. robot-1 issues a Localization(ro
- Page 85 and 86: ACKNOWLEDGMENTThis work has been su
- Page 87 and 88: The code was analysed both objectiv
- Page 89 and 90: a conversation is following. Additi
- Page 91 and 92: the context of a communication-heav
- Page 93 and 94: Table 1. Core Agent ProtocolsAgent
- Page 95 and 96: statistically significant using an
- Page 97 and 98: to the conversation and has a perfo
- Page 99 and 100: principal reasons. Firstly, it is a
- Page 101 and 102: 2. Muldoon, C., O’Hare, G.M.P., C
- Page 103 and 104: In the following section we will at
- Page 105 and 106: DevelopmentProductionHuman Readabil
- Page 107 and 108: will then evaluate this new format
- Page 109 and 110: encoder, it is first checked if the
- Page 111 and 112: nents themselves. However, since th
- Page 113 and 114: optimized for this format feature s
- Page 115 and 116: Java serialization and Jadex Binary
- Page 117 and 118: 10. P. Hoffman and F. Yergeau, “U
- Page 119 and 120: Caching the results of previous que
- Page 121 and 122: querying an agent’s beliefs and g
- Page 123 and 124: or relative performance of each pla
- Page 125 and 126:
were run for 1.5 minutes; 1.5 minut
- Page 127 and 128:
Size N K n p c qry U c upd Update c
- Page 129 and 130:
epresentation. The cache simply act
- Page 131 and 132:
6 ConclusionWe presented an abstrac
- Page 133 and 134:
Typing Multi-Agent Programs in simp
- Page 135 and 136:
1 // agent ag02 iterations (" zero
- Page 137 and 138:
3.1 simpAL OverviewThe main inspira
- Page 139 and 140:
3.2 Typing Agents with Tasks and Ro
- Page 141 and 142:
Defining Agent Scripts in simpAL (F
- Page 143 and 144:
that sends a message to the receive
- Page 145 and 146:
* error: wrong type for the param v
- Page 147 and 148:
Given an organization model, it is
- Page 149 and 150:
Learning to Improve Agent Behaviour
- Page 151 and 152:
2.1 Agent Programming LanguagesAgen
- Page 153 and 154:
choosing actions is to find a good
- Page 155 and 156:
1 init module {2 knowledge{3 block(
- Page 157 and 158:
of a module. For example, to change
- Page 159 and 160:
if bel(on(X,Y), clear(X)), a-goal(c
- Page 161 and 162:
mance. Figure 2d shows the same A f
- Page 163 and 164:
the current percepts of the agent.
- Page 165:
Author IndexAbdel-Naby, S., 69Alelc