23.08.2015 Views

Here - Agents Lab - University of Nottingham

Here - Agents Lab - University of Nottingham

Here - Agents Lab - University of Nottingham

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

3.1 simpAL OverviewThe main inspiration for simpAL abstractions comes – on the one side – from theA&A model [10] and from the BDI (Belief-Desire-Intention) model, in particularfrom its implementation in existing APL, Jason in particular. On the other side,differently from existing BDI-based APL, simpAL has been conceived conceptuallyas an extension <strong>of</strong> OOP languages with a further separated abstractionlayer based on agent-oriented abstractions. The OOP layer – based on Java, butit could be any OOP language – is meant to be used solely to represent andmanipulate abstract data types and data structures in general; All the otherissues that, for instance, are related to concurrent programming (e.g. threads,synchronized methods, etc.) or I/O programming (e.g. network, GUI, OS relatedfunctionalities, etc.) are meant to be tackled using the agent-oriented abstractionlayer.By adopting a typical anthropomorphic and social view <strong>of</strong> computation,a simpAL program is given by an organization composed by a dynamic set<strong>of</strong> agents concurrently working in a shared, possibly distributed, environment.<strong>Agents</strong> are those components <strong>of</strong> the program (system) designed to perform autonomouslytasks, that can be assigned both statically and dynamically to them.Autonomously means in this case that given a task to do, they pro-actively decidewhat actions to do and when to do them, promptly reacting to relevant eventsfrom their environment, fully encapsulating the control <strong>of</strong> their behavior. To performtheir tasks, agents can create and use resources and tools, called genericallyartifacts. Artifacts are useful to represent those non-autonomous components <strong>of</strong>our program, the basic bricks composing the environment <strong>of</strong> the organization,providing some kind <strong>of</strong> functionality or service—such as easing agent communicationand coordination (e.g. a blackboard), or interfacing agents with externalenvironment or the user (e.g. a GUI, a socket), or wrapping external systems(e.g. a data-base, a web-service) or even simply helping agent work (e.g. a sharedcounter). An artifact can be used by a single agent or can be designed to be concurrentlyand safely used by multiple agents (e.g. a shared knowledge base, ashared calendar for alarms, etc.).Agent interactions can occur in two basic ways that can be combined together:either indirectly through the environment (by using the same artifacts),or directly by means <strong>of</strong> asynchronous messages. In particular, agents have a basicset <strong>of</strong> communicative actions, that allow for sending messages either to informor ask about some data or to assign/ work with tasks. Agent-artifact interactionis based instead on the concept <strong>of</strong> use and observation, reminding the way inwhich artifacts are used by people in human environments. In order to be used,an artifact provides a set <strong>of</strong> operations, corresponding to the set <strong>of</strong> actions availableto agents to use it. This implies that the repertoire <strong>of</strong> an agent’s actionsat runtime depends on the artifacts that the agent knows and can use. Besidesoperations, the usage interface <strong>of</strong> an artifact includes also observable properties,as observable information concerning the dynamic state <strong>of</strong> the artifact whichmay be perceived and exploited by agents accordingly.136

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!