1 role Thermostat {23 task AchieveTemperature {4 targetTemp : double ;5 }67 task KeepTemperature {8 inputView : UserView ;9 }1011 task DoSelfTest { }1213 understands {14 newThreshold : double ;15 }16 }1 interface Conditioner {23 obsprop isHeating : boolean ;4 obsprop isCooling : boolean ;56 operation startHeating ( speed : double );7 operation startCooling ( speed : double );8 operation stop ();9 }1 interface Thermometer {2 obsprop currentTemp : double ;3 }1 interface View {2 obsprop desiredTemp : double ;3 obsprop thermStatus : ThermostatStatus ;4 }Fig. 2. Definition <strong>of</strong> an agent role (on the left) and artifact interfaces (on the right).The overall (dynamic) set <strong>of</strong> agents and artifacts can be organized in one ormultiple logical containers called workspaces, possibly in execution on differentnodes <strong>of</strong> the network. An agent actually can eventually use concurrently andtransparently artifacts located in different workspaces, not necessarily only thosethat belong to the workspace where the agent is running.The computational model/architecture adopted for simpAL agents is a simplifiedversion <strong>of</strong> the BDI one, implementing a sense-plan-act like executioncycle [15], but using OOP instead <strong>of</strong> logic programming to represent and manipulatedata structures. An agent has a belief base, as a long term private memorystoring information about: (i) the private state <strong>of</strong> an agent, (ii) the observablestate <strong>of</strong> the environment, and (iii) information communicated by other agents.In simpAL the belief base is composed by a set <strong>of</strong> beliefs represented by simplevariable-like information items, characterized by a name, a type, and a value—which could be any data object 3 . To perform tasks, an agent exploits the plansavailable in its plan library. Plans are modules <strong>of</strong> procedural knowledge specifyinghow to act and react to the events <strong>of</strong> the environment in order to accomplishsome specific task. The set <strong>of</strong> plans in the plan library depends on the scriptsloaded by the agent. As detailed later on, scripts are modules containing thedescription <strong>of</strong> set <strong>of</strong> plans, written by the agent programmers. An agent canhandle multiple tasks in execution at a time.3 It is worth remarking that in existing agent-oriented languages beliefs are typicallyrepresented by first-order logic literals, denoting information that can be used byreasoning engines. However the logic representation is not necessarily part <strong>of</strong> thebelief concept, as remarked by Rao and Georgeff in [12]:“[beliefs] can be viewed asthe informative component <strong>of</strong> the system state” and “[beliefs] may be implemented asa variable, a database, a set <strong>of</strong> logical expressions, or some other data structure”([12],p. 313).137
3.2 Typing <strong>Agents</strong> with Tasks and RolesIn a s<strong>of</strong>tware engineering perspective, a type defines a contract about what onecan expect by some computational entity. In the case <strong>of</strong> objects, this concernsits interface, i.e. what methods can be invoked (and with which parameters)or – in a more abstract view – what messages can be handled by the object.Conceptually, messages are the core concept <strong>of</strong> objects: receiving a message isthe reason why an object moves and computes something. This is actually truealso for active objects and actors. <strong>Agents</strong> introduce a further level <strong>of</strong> abstraction.An agent does something because – first <strong>of</strong> all – it has a task to do (or rathera goal to achieve or maintain). It is quite intuitive then to define the type <strong>of</strong>an agent as its contract with respect to the organizational environment whereit is immersed. In other words, conceiving the type <strong>of</strong> an agent as what one canexpect by the agent in terms <strong>of</strong> the set <strong>of</strong> possible tasks that can be assignedto that agent. Following this idea we introduce the notion <strong>of</strong> role to explicitlydefine the type <strong>of</strong> an agent as the set <strong>of</strong> the possible types <strong>of</strong> tasks that any agentplaying that role is able to do. Fig. 2 shows the definition <strong>of</strong> a role in simpAL.A role is identified by a name (e.g. Thermostat) and it includes the definition<strong>of</strong> the set <strong>of</strong> task types. A task type – which defines a set <strong>of</strong> tasks – is identifiedby a unique identifier (name) inside the role and its definition includes a set <strong>of</strong>typed attributes (e.g. targetTemp), which are used to fully describe the task. Atask type instance is like a record with the attributes assigned to some value.Typed attributes may contain any value/object <strong>of</strong> any Java class, plus also theidentifiers <strong>of</strong> entities that are first-class simpAL abstractions, such as artifacts,agents, tasks, plans, etc, which are typed too.This concept <strong>of</strong> role defining the agent type allows us to do error-checkingon: (a) the behavior <strong>of</strong> the agent implementing the role, checking that the agentimplementation (the how) conforms to role definition (the what); (b) the behavior<strong>of</strong> the agents that aim at interacting with agents implementing that role,checking that – for instance – they would request the accomplishment only <strong>of</strong>those tasks that are specified by the role.In simpAL, the former case concerns checking agent scripts, which are thebasic construct used to define agent concrete behavior (a brief description <strong>of</strong>agent scripts is reported in a separate box following Fig. 3). As an example,Fig. 3 shows an ACMEThermostat script implementing the Thermostat role. Theerror checking rule states informally:– for an agent script, for each type <strong>of</strong> task T defined in any role R implementedby a script, it must exist one plan P for T .Given this rule, the ACMEThermostat script described in Fig. 3 is correct, while ascript like the following one:agent-script UncompleteThermostatImpl implements Thermostat {plan-for AchieveTemperature { }plan-for DoSelfTest { }}138
- 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 74 and 75:
Although some success [13] [14] hav
- 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: 3.1 simpAL OverviewThe main inspira
- 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