<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Overview of a Formal Semantics for the JADEL Programming Language</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Dipartimento di Ingegneria e Architettura Universita` degli Studi di Parma Parco Area delle Scienze 181/A</institution>
          ,
          <addr-line>43124 Parma</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Dipartimento di Scienze Matematiche, Fisiche e Informatiche Universita` degli Studi di Parma Parco Area delle Scienze 53/A</institution>
          ,
          <addr-line>43124 Parma</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Federico Bergenti</institution>
        </aff>
      </contrib-group>
      <fpage>55</fpage>
      <lpage>60</lpage>
      <abstract>
        <p>-This paper outlines a first proposal of a formal semantics for the JADEL programming language. JADEL is an agent-oriented programming language based on JADE that has been recently proposed to ease the adoption of JADE, and to promote its use. In previous works, JADEL was specified at the syntax level, and only an informal semantics was given. The major contribution of this paper is to outline a formalization of the semantics of JADEL to complement previous works and to allow reasoning on JADEL agents and multi-agent systems. First, the paper provides a brief recall on JADEL by describing its main abstractions and their specific syntactic constructs. Then, a discussion of the proposed operational semantics based on transition systems is described. Finally, a detailed operational semantics of only some relevant constructs is given. The validity of the proposed approach is discussed in the conclusion of the paper, together with directions of future developments.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        JADEL, which stands for JADE (Java Agent DEvelopment
framework) Language, is an agent-oriented programming
language designed to help the development of JADE [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] agents
and multi-agent systems. A preliminary work on JADEL [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]
shows the main ideas and motivations behind its creation,
together with a first example of JADEL code. More recent
works [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] describes the current state of the development of
JADEL and related tools, and frame JADEL in the scope of
model-driven development. In short, JADEL was conceived
to meet the needs of software developers that want to take
advantage of agent technologies—and of JADE in particular—
with no need to deal with the implementation details that
ordinary use of JADE requires. Actually, writing complex JADE
applications is sometimes perceived as a difficult task,
especially by developers who are starting to approach it. Due to its
inherent complexity and its continuous growth, JADE has now
a steep learning curve, especially for the number of low level
implementation details that the developer is required to master.
Despite these difficulties, JADE is widely recognized as one
of the most popular tools to develop multi-agent systems,
and it is used successfully in very different contexts, from
academic research to industrial applications [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], in the constant
attempt to effectively use the beneficial features of agents from
the point of view of software development [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Moreover,
related projects WADE (Workflows and Agents Development
Environment) [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]–[
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], and AMUSE (Agent-based Multi-User
Social Environment) [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] contributed to increment the
possibilities of JADE. JADE is now a complete tool, but
such a completeness comes at a cost: its constantly increasing
complexity. One of the reasons for the initial success of
JADE is that it was designed as a Java library, which was an
appreciated choice in the early 2000s. At the time, Java was
quickly becoming one of the most promising technologies,
and developers wanted to use it, also because it was tightly
connected with the growth of the Web. In fact, Java, and
the long gone Java applets, played a key role in the rapid
expansion of the Web. The idea of supporting developers of
multi-agent systems with a Java library, rather than with a
specific language, is one of the fundamental design choices
behind JADE. But, nowadays, a pure Java approach is less
appealing because a number of valid alternatives are becoming
popular, and, at the same time, because DSLs (Domain-Specific
Languages) are becoming popular among developers, and not
just among domain experts [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
      </p>
      <p>
        The work on JADEL started [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] to provide current and
future JADE users with a simpler, yet seamlessly effective,
tool. The major purpose of JADEL is to provide a
highlevel view on the most important abstractions that JADE
provides, allowing developers to concentrate on agent-oriented
abstractions, rather than on lower-level details. JADEL is by
design a DSL, whose host language is a dialect of Java
called Xtend [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. The choice of developing a DSL is not
accidental, since DSLs are often simpler to learn and to
use, thanks to their lighter syntax, and because they are
tailored on the specific needs of their target domain, which is
agent-oriented programming in this case. Well-designed DSLs
provide a small number of relevant abstraction, constructs
and expressions, whose purpose is to manage effectively the
specific abstractions of their specific domains.
      </p>
      <p>
        The core features of JADEL, namely agents, ontologies,
and behaviours, are briefly described in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], and the recent
extension of the language to support roles in FIPA interaction
protocols (see, e.g. [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]) is discussed in [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. A nontrivial
example of a JADEL multi-agent system is presented in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
Such an example is the implementation of the asynchronous
backtracking [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] algorithm, which is used as a test case to
evaluate the expressiveness of JADEL against an informal
pseudocode [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], and which is also used to validate the
possibility of reinterpreting relevant applications of other parallel
and distributed computing paradigms in terms of agents (see,
e.g., [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]). In all those previous works, the semantics
of JADEL was described only informally, and this paper
complements those works by describing the principal parts
of an operational semantics for JADEL. Obviously, there are
relevant advantages in specifying a formal semantics for a
programming language, for example, to support verification and
compiler implementation. Unfortunately, general-purpose
languages, such as Java, are too difficult to formalize completely,
and only minimal extracts are formalized (see, e.g., [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]).
On the contrary, DSLs are typically sufficiently small, and
for some of them a complete formalization was provided.
Moreover, agent-oriented programming languages are often
provided with a formal semantics, and for some of them
the formalization predated the implementation of tools, e.g.,
AgentSpeak(L) [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ], and Concurrent MetateM [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]. For other
agent-oriented programming languages, the formal semantics
came together with the implementation of tools, e.g., SEA L
(Semantic web-Enabled Agent Language [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], and SEA ML
Semantic web-Enabled Agent Modeling Language [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ].
Notably, relevant studies intended to provide JADE with a formal
semantics are available, e.g. [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ], and an overview of a
complete formalization of JADE in terms of transition systems
can be found in [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ], [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ].
      </p>
      <p>This paper is organized as follows. Section II briefly
describes the main abstractions and constructs of JADEL.
Section III provides a summary of the syntax of the language.
Section IV shows the most relevant parts of an operational
semantics for JADEL. Finally, Section V concludes the paper
and discusses future developments.</p>
    </sec>
    <sec id="sec-2">
      <title>II. OVERVIEW OF JADEL</title>
      <p>
        JADEL is an agent-oriented programming language
designed around the features of Xtext [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ], a framework which
provides effective support for the development of DSLs. The
use of Xtext eases the design of a DSL because it simplifies
the main steps involved in such a task, e.g., the creation of the
grammar and the implementation of the compiler. First, Xtext
provides a DSL to express EBNF (Extended Backus-Naur
Form) grammars, from which a parser can be easily obtained
with the help of a parser generator. Then, Xtext provides a
base grammar, called Xbase grammar [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ], which is highly
extensible and it is used to implement the basic features of the
Xtend language [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], such as expressions, and type references.
Xtend is a dialect of Java, and its syntax and semantics rely
on those of Java, but specific syntactic facilities are provided
to make it lighter and simpler. JADEL can be considered an
agent-oriented extension of Xtend.
      </p>
      <p>JADE provides a number of abstractions, and related Java
classes, for the construction of agents and multi-agent systems.
JADEL selects only a few primary abstractions among them
in order to provide the developer with an agent-oriented
view of agents and multi-agent systems. Only four main
abstractions that JADE implements were chosen, namely
agents, behaviours, communication ontologies, and interaction
protocols. For the sake of brevity, and because the support
for interaction protocols is still at an early stage, in this
paper only agents, behaviours and ontologies are considered.
In detail, JADEL agents use ontologies and behaviours, and
the syntax of JADEL clearly highlights the connections of
the agent with ontologies and behaviours. The declaration
of an agent is allowed to extend the declaration of another
agent, with the usual semantics of inheritance, and two event
handlers are provided to support initialization and take-down
phases. Behaviours can be activated in such initialization and
take-down phases by means of specific expressions. Actually,
JADEL provides a specific syntax to declare and activate
behaviours, and it also offers specific constructs to manage
actions and events.</p>
      <p>The behaviours of JADEL can be cyclic or oneshot,
and the semantics of such types of behaviour is the same
as JADE cyclic and one-shot behaviours, respectively. A
behaviour can be specific to a group of agents, i.e., it can
take advantage of the common characteristics of such agents
in the definition of its action. Also, a behaviour can refer to
a specific communication ontology. The body of a behaviour
contains a set of fields, a set of methods and a nonempty set
of event handlers. In fact, at least one event handler must be
present in order to define the action of the behaviour. Event
handlers are specified for behaviours by means of the construct
on-when-do which identifies the event, states conditions on
it, and describes the action to perform in response. Behaviours
can extend other behaviours, with the usual semantics of
subclassing, and all event handlers of a base behaviour are added
to all derived behaviours.</p>
      <p>The ontologies of JADEL are formal means to support the
semantics of agent communication languages for specific
problems. An ontology provides a dictionary of terms and schemas,
which can be arranged in a hierarchy. Terms and schemas
are used to send and receive syntactically-correct messages.
In detail, an ontology consists of a set of propositions, a
set of predicates, and a set of concepts, which can be basic
or composite. Propositions are first-order logics well-formed
formulas. Predicates are first-order logics predicates with an
arity, and their arguments are terms formed using concepts.
Basic (or atomic) concepts are atomic terms provided by
JADE. They can be composed to create other (composite)
concepts, which can be used to express complex terms.
Composite concepts can be seen as function symbols in first-order
logics. They are terms with arguments, and such arguments are
terms themselves. Predicates are used to state relations among
concepts, while concepts are used to to describe entities of
the domain. Both concepts and predicates can be derived from
other base concepts and predicates, respectively.
odecl
propdecl
cdecl
::=
::=
::=
ontology o extends obase
{ propdecl∗ cdecl∗ pdecl∗ }
proposition prop</p>
      <p>?
concept c ( cpar∗ ) extends cbase
pdecl ::= predicate p ( cpar∗ ) extends pbase
cpar ::= many? c x | many? cbasic x
cbasic ::= aid | bool | byte sequence
| content element list | date | float
| integer | string
Fig. 1. JADEL grammar for ontologies. Metavariables o, obase denote
ontologies, prop denotes a proposition, c, cbase denote concepts, p, pbase
denote predicates, and x denotes a generic variable.
?
?
expr
actb
extr
send
msgexpr
pexpr
oexpr
cexpr
rexpr
::=
::=
::=
::=
::=
::=
::=
::=
::=
xexpr | actb | extr | send
activate behaviour x as? b(xexpr∗)
extract x as t
send message m? { msgexpr∗ }
pexpr | oexpr | cexpr | rexpr
performative is INFORM | . . .
ontology is o
content is x
receivers are l
Fig. 2. JADEL grammar for extended Xtend expressions. xexpr refers to
standard Xtend expressions, metavariables x, y denote variables, b denotes a
behaviour, t denotes the name of a type, m denotes a message, o denotes an
ontology, and l denotes a variable which refers to a list of agent identifiers.</p>
    </sec>
    <sec id="sec-3">
      <title>III. THE GRAMMAR OF JADEL</title>
      <p>This section summarizes the grammar of JADEL to support
the description of an operational semantics in next section. A
detailed description of the grammar of JADEL is included in
an upcoming paper. The syntax that JADEL adopts is provided
starting from ontologies, whose grammar is shown in Figure 1
using the EBNF language, where
1) X∗ stands for the repetition of X zero or more times;
2) X+ means that X is repeated one or more times; and
3) X? means that X is optional.</p>
      <p>Figure 2 shows the grammar of JADEL expressions, as
an extension of the grammar of Xtend expressions. In fact,
it is worth noting that JADEL relies on Xtend expressions
instead of introducing a new syntax for expressions. This
choice has the advantage of grounding JADEL on a solid
grammar for expressions whose primary goal is to support the
construction of procedural languages. The syntax of extended
expressions introduced in Figure 2 provides specific features
to activate behaviours, to send messages and to extract the
content of messages. For JADEL, messages are structures that
have a number of fixed properties: the performative, the list
of recipients, the ontology and the content. The performative
denotes the type of the message, and exactly one performative
is contained in a syntactically-correct message. The list of
recipients specifies the agent identifiers of all agents that are
intended to receive the message. Ontologies are identified by
their names, and they must be declared using the grammar of
bdecl
btype
onto
f ield
method
bevent
::=
::=
::=
::=
::=
::=
btype behaviour b (t x∗) for a? onto
?</p>
      <p>?
extends bbase</p>
      <p>+
{ f ield∗ method∗ bevent }
cyclic | oneshot
uses ontology o
(var | val) t? f = expr?
t m(t mpar∗) { expr∗ }
do { expr∗}</p>
      <p>?
|
on message m when {wexpr}
do { expr∗}
wexpr or wexpr | wexpr and wexpr
not wexpr | pexpr | oexpr | cexpr
wexpr ::=</p>
      <p>|
Fig. 3. JADEL grammar for behaviours. Metavariables b, bbase denote
behaviours, t denotes a type, x denotes a variable, a denotes an agent type,
o denotes an ontology, f denotes the name of a field, m denotes the name
of a method, mpar denotes the name of a parameter, m denotes a message,
while expr, cexpr, pexpr, and cexpr are defined in Figure 2.</p>
      <p>adecl
aevent
event
::=
::=
::=
agent a onto? extends abase?
{ f ield∗ method∗ aevent+ }
on event { expr∗ }
create | destroy</p>
      <p>
        The semantics of JADEL briefly described in this paper is
formally defined by means of operational rules and auxiliary
lookup functions. The three lookup functions from the
operational semantics of Featherweight Java (FJ) [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], namely
f ields, mtype and mbody, are used to connect the semantics
of the agent-oriented features of JADEL with the semantics
of the host language, which is nothing but a syntactic dialect
of Java. Actually, the agent and behaviour abstractions that
      </p>
      <p>JADEL provides are mapped into Java classes that derives
agent A1 extends A2{F ∗ M ∗ aevent+}
f ields(A1) = F ∗ G∗
f ields(A2) = G∗
agent A1 uses ontology O1 extends A2{F ∗ M ∗ aevent+}</p>
      <p>ontologies(A1) = O1 O∗
agent A . . . {F ∗ M ∗ aevent+}</p>
      <p>mtype(setup, A) = →
agent A . . . {F ∗ M ∗ aevent+}
mtype(takeDown, A) =
→</p>
      <p>on create {expr∗} ∈ aevent
mbody(setup, A) = h , expr∗i</p>
      <p>on destroy {expr∗} ∈ aevent
mbody(takeDown, A) = h , expr∗i
ontologies(A2) = O∗
+
+
from classes Agent and Behaviour, respectively. Such
classes are provided by JADE in its API and, obviously,
they have fields and methods. In detail, in the operational
semantics of FJ, the f ields lookup function associates each
class name with its own fields plus inherited fields. For JADEL
agents, f ields works exactly as in FJ, as shown by rule (1)
in Figure 5. Despite this, there are differences between FJ
classes and JADEL agents and behaviours. For example, the
two agent event handlers on-create and on-destroy
implicitly provide two methods, as shown in Figure 5, rules (3)
and (4), which are not part of FJ.</p>
      <p>Methods are identified by means of the two functions mtype
and mbody. The first function takes the name of the method
and the name of the class, and returns a mapping between
the parameter types and the return type of the method. When
the return type is void, or there are no parameters, we
conventionally use . The second function, mbody, also takes
the name of the method and the name of the class, and it
returns a pair, whose first element is a list of parameters,
and whose second element is the actual body of the method.</p>
      <p>The definition of mtype and mbody for JADEL agents and
behaviours is the same that of FJ. Behaviour fields, instead,
are obtained not only by the user declared fields, but also by
behaviour parameters, and there is an implicitly declared field
theAgent, which identifies the agent that is currently using
a behaviour, as shown in Figure 6, rules (5) and (6).</p>
      <p>Two additional auxiliary lookup functions are defined for
ontologies and events. Function ontologies takes an agent and
it returns a list of ontologies, as in rule (2), when an ontology
is specified by the declaration uses-ontology. Function
events, instead, is defined only for behaviours, and it maps
the name of a behaviour with its list of declared events. It is
worth noting that the list of events is not limited to the event
handlers that are specified in the behaviour, but it also contains
inherited events, as shown in rule (7).</p>
      <p>The management of events also requires the definition of
such inherited events, even if they are not JADEL abstractions,
at least explicitly. In fact, in JADEL, event handlers are
translated into inner classes of the host behaviour, and they are
composed of specific fields and methods, which collectively
define the actual action of the behaviour.</p>
      <p>For the sake of brevity, only some rules to manage events are
shown in Figure 7. Rules (8) and (9) define the innerclasses
lookup function, which takes the name of a behaviour and a
list of events, and it returns a pair whose first element is the
definition of the current inner class plus the already defined
inner classes, and whose second element is the number of the
processed events. Each inner class Eventn has a list of fields
and methods, which are identified by looking at the definition
of the event handler. As shown in rule (10), if the event handler
is in the form of the on-when-do construct, two fields
are implicitly defined, namely, an ACLMessage field and a
MessageTemplate field. Three methods of Eventn are
also defined, namely the receive, doBody and run. Those
are all void methods without parameters. Rule (11) shows
the definition of the receive method. The doBody method
beventn ∈ events(B) innerclasses(B, bevent∗) = hE, ni
innerclasses(B, beventn bevent∗) = hprivate class Eventn{F ∗ M ∗} E, n + 1i
where F ∗ and M ∗ depend on beventn
beventn = on message m when{wexpr}do{expr∗}
f ields(Eventn) = ACLMessage m; MessageTemplate mt = wexpr;
beventn = on message m when{wexpr}do{expr∗}
mbody(receive, Eventn) = h , m = theAgent.receive(mt); i</p>
      <p>
        events(B) = bevent0 . . . beventN
mbody(action, B) = h , super.action(); Event0.run(); . . . EventN .run();i
contains the Java translation of the expressions contained in
the do block, and the run method contains the usual pattern
for message reception, as documented in virtually all teaching
material on JADE (see, e.g., [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ]). Finally, the action
method of the behaviour runs in sequence all behaviour event
handlers, which would typically check their condition and
return immediately.
      </p>
      <p>In Figure 8, the semantics of some interesting
expressions is shown. Expressions are directly translated into
Java code that uses the API of JADE. For example, the
activate-behaviour construct declares a new object x
of type b, and it adds the object to the list of behaviours of
the agent by means of addBehaviour, which is a method
of class Agent. Rules (13) and (14) show the activation of
a behaviour in two cases, i.e., the activation inside an agent
and inside another behaviour. Rules (15) and (16) show the
translation of a when expression into a MessageTemplate.</p>
    </sec>
    <sec id="sec-4">
      <title>V. CONCLUSIONS</title>
      <p>This paper presented an overview of an operational
semantics for the JADEL programming language. First, the syntax
that JADEL provides for its main abstractions is shown and
discussed. Then, relevant lookup functions and operational
semantics rules are provided to offer an outlook on the
complete operational semantics. In detail, JADEL agents and
behaviours are mapped into Java classes using the lookup
functions of FJ, a minimalistic subset of Java equipped with
an operational semantics. In addition, new auxiliary functions
are defined to treat the agent-oriented features of JADEL,
which are obviously not part of FJ. Finally, relevant rules that
formalize the operational semantics of JADEL expressions in
terms of Java statements are presented. The major contribution
of this work is to formalize the mapping between JADEL and
Java with JADE, and to provide useful guidelines for code
generation. Actually, the proposed operational semantics is the
core of the current implementation of the JADEL compiler.</p>
      <p>
        The current implementation of JADEL is in use to
experiment on the new possibilities that the features of smart
devices offer to agents. In particular, JADEL agents are given
indoor localization capabilities [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ], [
        <xref ref-type="bibr" rid="ref33">33</xref>
        ], in known
environments but without a dedicated infrastructure, to experiment
on location-aware games [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Moreover, JADEL has been
used to experiment on the use of agent technologies to support
effective collaborations in synergy with social networks [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ].
All such works emphasized the effectiveness of JADEL in
the implementation of agents that interact following complex
protocols. In particular, the implementation of agents for
experiments suggested interesting improvements of the
language in the direction of incorporating support for declarative
programming, as typically expected from an agent-oriented
programming language (see, e.g., [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ] for a recent discussion
on the subject).
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>F.</given-names>
            <surname>Bellifemine</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Bergenti</surname>
          </string-name>
          ,
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Caire, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Poggi</surname>
          </string-name>
          , “
          <article-title>JADE - A Java agent development framework,” in Multi-Agent Programming: Languages, Platforms and Applications</article-title>
          ,
          <string-name>
            <given-names>R. H.</given-names>
            <surname>Bordini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Dastani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Dix</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>El Fallah</surname>
          </string-name>
          Seghrouchni, Eds. Springer,
          <year>2005</year>
          , pp.
          <fpage>125</fpage>
          -
          <lpage>147</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>F.</given-names>
            <surname>Bergenti</surname>
          </string-name>
          ,
          <string-name>
            <surname>A“</surname>
          </string-name>
          <article-title>n introduction to the JADEL programming language,” in Procs</article-title>
          .
          <source>IEEE 26th Int'l Conf</source>
          .
          <article-title>Tools with Artificial Intelligence (ICTAI)</article-title>
          . IEEE Press,
          <year>2014</year>
          , pp.
          <fpage>974</fpage>
          -
          <lpage>978</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>F.</given-names>
            <surname>Bergenti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Iotti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Monica</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Poggi</surname>
          </string-name>
          ,
          <article-title>A“ comparison between asynchronous backtracking pseudocode and its jadel implementation,” in Procs</article-title>
          .
          <source>of the 9th Int'l Conference on Agents and Artificial Intelligence</source>
          (
          <article-title>ICAART), ser</article-title>
          .
          <source>ScitePress</source>
          , vol.
          <volume>2</volume>
          ,
          <issue>2017</issue>
          , pp.
          <fpage>250</fpage>
          -
          <lpage>258</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>K.</given-names>
            <surname>Kravari</surname>
          </string-name>
          and
          <string-name>
            <given-names>N.</given-names>
            <surname>Bassiliades</surname>
          </string-name>
          ,
          <article-title>A“ survey of agent platforms</article-title>
          ,
          <source>” Journal of Artificial Societies and Social Simulation</source>
          , vol.
          <volume>18</volume>
          , no.
          <issue>1</issue>
          , p.
          <fpage>11</fpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>F.</given-names>
            <surname>Bergenti</surname>
          </string-name>
          ,
          <article-title>A“ discussion of two major benefits of using agents in software development</article-title>
          ,” in Third International Workshop on Engineering Societies in the Agents World (ESAW
          <year>2002</year>
          ),
          <year>2002</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>12</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>F.</given-names>
            <surname>Bergenti</surname>
          </string-name>
          , G. Caire, and
          <string-name>
            <given-names>D.</given-names>
            <surname>Gotta</surname>
          </string-name>
          , “
          <article-title>Interactive workflows with WADE,” in Procs</article-title>
          .
          <source>of the 21st IEEE International Conference on Collaboration Technologies and Infrastructures (WETICE</source>
          <year>2012</year>
          ). IEEE,
          <year>2012</year>
          , pp.
          <fpage>10</fpage>
          -
          <lpage>15</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>G.</given-names>
            <surname>Caire</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Gotta</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Banzi</surname>
          </string-name>
          , “
          <article-title>WADE: A software platform to develop mission critical applications exploiting agents and workflows,” in Procs</article-title>
          .
          <source>of the 7th International Joint Conference on Autonomous Agents and Multiagent Systems. International Foundation for Autonomous Agents and Multiagent Systems</source>
          ,
          <year>2008</year>
          , pp.
          <fpage>29</fpage>
          -
          <lpage>36</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>F.</given-names>
            <surname>Bergenti</surname>
          </string-name>
          , G. Caire, and
          <string-name>
            <given-names>D.</given-names>
            <surname>Gotta</surname>
          </string-name>
          , “
          <article-title>Large-scale network and service management with WANTS,” in Industrial Agents: Emerging Applications of Software Agents in Industry</article-title>
          . Elsevier,
          <year>2015</year>
          , pp.
          <fpage>231</fpage>
          -
          <lpage>246</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>F.</given-names>
            <surname>Bergenti</surname>
          </string-name>
          , G. Caire, and
          <string-name>
            <given-names>D.</given-names>
            <surname>Gotta</surname>
          </string-name>
          ,
          <article-title>A“gent-based social gaming with AMUSE,” in Procs</article-title>
          . 5th
          <string-name>
            <surname>Int'l Conf</surname>
          </string-name>
          .
          <source>Ambient Systems, Networks and Technologies (ANT</source>
          <year>2014</year>
          )
          <article-title>and</article-title>
          4th
          <string-name>
            <surname>Int'l Conf</surname>
          </string-name>
          .
          <source>Sustainable Energy Information Technology (SEIT</source>
          <year>2014</year>
          )
          <article-title>, ser</article-title>
          . Procedia Computer Science. Elsevier,
          <year>2014</year>
          , pp.
          <fpage>914</fpage>
          -
          <lpage>919</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>F.</given-names>
            <surname>Bergenti</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Monica</surname>
          </string-name>
          , “
          <article-title>Location-aware social gaming with AMUSE,” in Advances in Practical Applications of Scalable Multiagent Systems</article-title>
          .
          <source>The PAAMS Collection: 14th International Conference, PAAMS</source>
          <year>2016</year>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Demazeau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Ito</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Bajo</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Escalona</surname>
          </string-name>
          , Eds. Springer International Publishing,
          <year>2016</year>
          , pp.
          <fpage>36</fpage>
          -
          <lpage>47</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>M.</given-names>
            <surname>Fowler</surname>
          </string-name>
          ,
          <article-title>Domain-specific languages</article-title>
          .
          <source>Pearson Education</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>M.</given-names>
            <surname>Mernik</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Heering</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A. M.</given-names>
            <surname>Sloane</surname>
          </string-name>
          , “
          <article-title>When and how to develop domain-specific languages,” ACM Computing Surveys (CSUR)</article-title>
          , vol.
          <volume>37</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>316</fpage>
          -
          <lpage>344</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>L.</given-names>
            <surname>Bettini</surname>
          </string-name>
          ,
          <article-title>Implementing Domain-Specific Languages with Xtext and Xtend</article-title>
          .
          <source>Packt Publishing</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>F.</given-names>
            <surname>Bergenti</surname>
          </string-name>
          , E. Iotti,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Poggi</surname>
          </string-name>
          , “
          <article-title>Core features of an agent-oriented domain-specific language for JADE agents,” in Trends in Practical Applications of Scalable Multi-Agent Systems</article-title>
          ,
          <source>the PAAMS Collection</source>
          . Springer,
          <year>2016</year>
          , pp.
          <fpage>213</fpage>
          -
          <lpage>224</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>F.</given-names>
            <surname>Bergenti</surname>
          </string-name>
          , G. Rimassa,
          <string-name>
            <given-names>M.</given-names>
            <surname>Somacher</surname>
          </string-name>
          , and
          <string-name>
            <given-names>L. M.</given-names>
            <surname>Botelho</surname>
          </string-name>
          ,
          <string-name>
            <surname>A“</surname>
          </string-name>
          <article-title>FIPA compliant goal delegation protocol,” in Communication in Multiagent Systems: Agent Communication Languages</article-title>
          and
          <string-name>
            <given-names>Conversation</given-names>
            <surname>Policies</surname>
          </string-name>
          , M.-P. Huget, Ed. Springer,
          <year>2003</year>
          , pp.
          <fpage>223</fpage>
          -
          <lpage>238</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>F.</given-names>
            <surname>Bergenti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Iotti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Monica</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Poggi</surname>
          </string-name>
          ,
          <article-title>A“ case study of the JADEL programming language</article-title>
          ,”
          <source>in Proceedings 17th Workshop Dagli Oggetti agli Agenti (WOA</source>
          <year>2016</year>
          )
          <article-title>, ser</article-title>
          .
          <source>CEUR Workshop Proceedings</source>
          , vol.
          <volume>1664</volume>
          . RWTH Aachen,
          <year>2016</year>
          , pp.
          <fpage>85</fpage>
          -
          <lpage>90</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>F.</given-names>
            <surname>Bergenti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Iotti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Monica</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Poggi</surname>
          </string-name>
          , “
          <article-title>Interaction protocols in the JADEL programming language</article-title>
          ,
          <source>” in Procs. 6th Int'l Workshop Programming Based on Actors, Agents, and Decentralized Control (AGERE</source>
          <year>2016</year>
          ). ACM Press,
          <year>2016</year>
          , pp.
          <fpage>11</fpage>
          -
          <lpage>20</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>M.</given-names>
            <surname>Yokoo</surname>
          </string-name>
          and
          <string-name>
            <given-names>K.</given-names>
            <surname>Hirayama</surname>
          </string-name>
          ,
          <article-title>A“lgorithms for distributed constraint satisfaction: A review,” Autonomous Agents and Multi-Agent Systems</article-title>
          , vol.
          <volume>3</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>185</fpage>
          -
          <lpage>207</lpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>S.</given-names>
            <surname>Cagnoni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Bergenti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mordonini</surname>
          </string-name>
          , and G. Adorni, “
          <article-title>Evolving binary classifiers through parallel computation of multiple fitness cases</article-title>
          ,
          <source>” IEEE Transactions on Systems, Man, and Cybernetics</source>
          ,
          <string-name>
            <surname>Part</surname>
            <given-names>B</given-names>
          </string-name>
          : Cybernetics, vol.
          <volume>35</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>548</fpage>
          -
          <lpage>555</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>S.</given-names>
            <surname>Monica</surname>
          </string-name>
          and
          <string-name>
            <given-names>F.</given-names>
            <surname>Bergenti</surname>
          </string-name>
          , “
          <article-title>A stochastic model of self-stabilizing cellular automata for consensus formation</article-title>
          ,”
          <source>in Proceedings of 15th Workshop Dagli Oggetti agli Agenti (WOA</source>
          <year>2014</year>
          )
          <article-title>, ser</article-title>
          .
          <source>CEUR Workshop Proceedings</source>
          , vol.
          <volume>1260</volume>
          . RWTH Aachen,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>A.</given-names>
            <surname>Igarashi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. C.</given-names>
            <surname>Pierce</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Wadler</surname>
          </string-name>
          , “
          <article-title>Featherweight Java: A minimal core calculus for Java and</article-title>
          GJ,
          <source>” ACM Transactions on Programming Languages and Systems (TOPLAS)</source>
          , vol.
          <volume>23</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>396</fpage>
          -
          <lpage>450</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>A. S.</given-names>
            <surname>Rao</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          “gentSpeak (L):
          <article-title>BDI agents speak out in a logical computable language,” Agents Breaking Away</article-title>
          , pp.
          <fpage>42</fpage>
          -
          <lpage>55</lpage>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>M.</given-names>
            <surname>Wooldridge</surname>
          </string-name>
          ,
          <article-title>A“ knowledge-theoretic semantics for concurrent MetateM,” Intelligent Agents III Agent Theories</article-title>
          , Architectures, and Languages, pp.
          <fpage>357</fpage>
          -
          <lpage>374</lpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>M.</given-names>
            <surname>Challenger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mernik</surname>
          </string-name>
          , G. Kardas, and T. Kosar, “
          <article-title>Declarative specifications for the development of multi-agent systems</article-title>
          ,”
          <source>Computer Standards &amp; Interfaces</source>
          , vol.
          <volume>43</volume>
          , pp.
          <fpage>91</fpage>
          -
          <lpage>115</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>M.</given-names>
            <surname>Challenger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Demirkol</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Getir</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mernik</surname>
          </string-name>
          , G. Kardas, and T. Kosar, “
          <article-title>On the use of a domain-specific modeling language in the development of multiagent systems</article-title>
          ,
          <source>” Engineering Applications of Artificial Intelligence</source>
          , vol.
          <volume>28</volume>
          , pp.
          <fpage>111</fpage>
          -
          <lpage>141</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>M.</given-names>
            <surname>Baldoni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Baroglio</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Capuzzimati</surname>
          </string-name>
          , “
          <article-title>Typing multi-agent systems via commitments,” in Engineering Multi-Agent Systems</article-title>
          : Second International Workshop, EMAS 2014,
          <string-name>
            <given-names>F.</given-names>
            <surname>Dalpiaz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Dix</surname>
          </string-name>
          , and M. B. van Riemsdijk, Eds. Springer,
          <year>2014</year>
          , pp.
          <fpage>388</fpage>
          -
          <lpage>405</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>F.</given-names>
            <surname>Bergenti</surname>
          </string-name>
          , E. Iotti,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Poggi</surname>
          </string-name>
          , “
          <article-title>Outline of a formalization of JADE multi-agents system</article-title>
          ,”
          <source>in Proceedings 16th Workshop Dagli Oggetti agli Agenti (WOA</source>
          <year>2015</year>
          )
          <article-title>, ser</article-title>
          .
          <source>CEUR Workshop Proceedings</source>
          , vol.
          <volume>1382</volume>
          . RWTH Aachen,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>F.</given-names>
            <surname>Bergenti</surname>
          </string-name>
          , E. Iotti,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Poggi</surname>
          </string-name>
          ,
          <string-name>
            <surname>A“</surname>
          </string-name>
          <article-title>n outline of the use of transition systems to formalize JADE agents and multi-agent systems</article-title>
          ,” Intelligenza Artificiale , vol.
          <volume>9</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>149</fpage>
          -
          <lpage>161</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>M.</given-names>
            <surname>Eysholdt</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Behrens</surname>
          </string-name>
          , “Xtext:
          <article-title>Implement your language faster than the quick and dirty way,” in Procs</article-title>
          .
          <source>ACM Int'l Conf. Object Oriented Programming Systems Languages and Applications companion (OOPSLA</source>
          <year>2010</year>
          ). ACM,
          <year>2010</year>
          , pp.
          <fpage>307</fpage>
          -
          <lpage>309</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>S.</given-names>
            <surname>Efftinge</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Eysholdt</surname>
          </string-name>
          ,
          <string-name>
            <surname>J.</surname>
          </string-name>
          <article-title>K o¨hnlein</article-title>
          , S. Zarnekow, R. von Massow, W. Hasselbring, and
          <string-name>
            <given-names>M.</given-names>
            <surname>Hanus</surname>
          </string-name>
          , “Xbase:
          <article-title>Implementing domain-specific languages for Java,” in Procs</article-title>
          . 11th
          <string-name>
            <surname>Int'l Conf</surname>
          </string-name>
          .
          <article-title>Generative Programming and Component Engineering (GPCE 2012)</article-title>
          . ACM Press,
          <year>2012</year>
          , pp.
          <fpage>112</fpage>
          -
          <lpage>121</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>F.</given-names>
            <surname>Bellifemine</surname>
          </string-name>
          , G. Caire, and
          <string-name>
            <given-names>D.</given-names>
            <surname>Greenwood</surname>
          </string-name>
          ,
          <article-title>Developing multi-agent systems with JADE, ser</article-title>
          . Wiley Series in Agent Technology. John Wiley &amp; Sons,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>S.</given-names>
            <surname>Monica</surname>
          </string-name>
          and
          <string-name>
            <given-names>F.</given-names>
            <surname>Bergenti</surname>
          </string-name>
          , “
          <article-title>Location-aware JADE agents in indoor scenarios</article-title>
          ,”
          <source>in Proceedings of 16th Workshop Dagli Oggetti agli Agenti (WOA</source>
          <year>2015</year>
          )
          <article-title>, ser</article-title>
          .
          <source>CEUR Workshop Proceedings</source>
          , vol.
          <volume>1382</volume>
          . RWTH Aachen,
          <year>2015</year>
          , pp.
          <fpage>103</fpage>
          -
          <lpage>108</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <given-names>S.</given-names>
            <surname>Monica</surname>
          </string-name>
          and
          <string-name>
            <given-names>F.</given-names>
            <surname>Bergenti</surname>
          </string-name>
          ,
          <article-title>A“ comparison of accurate indoor localization of static targets via WiFi and UWB ranging,” in Trends in Practical Applications of Scalable Multi-Agent Systems</article-title>
          ,
          <source>the PAAMS Collection</source>
          . Springer International Publishing,
          <year>2016</year>
          , pp.
          <fpage>111</fpage>
          -
          <lpage>123</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34]
          <string-name>
            <given-names>F.</given-names>
            <surname>Bergenti</surname>
          </string-name>
          , E. Franchi,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Poggi</surname>
          </string-name>
          ,
          <article-title>A“gent-based social networks for enterprise collaboration</article-title>
          ,
          <source>” in 20th IEEE International Workshop on Enabling Technologies: Infrastructure for Collaborative Enterprises</source>
          ,
          <year>2011</year>
          , pp.
          <fpage>25</fpage>
          -
          <lpage>28</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [35]
          <string-name>
            <given-names>L.</given-names>
            <surname>Fichera</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Messina</surname>
          </string-name>
          , G. Pappalardo, and
          <string-name>
            <given-names>C.</given-names>
            <surname>Santoro</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          “
          <article-title>Python framework for programming autonomous robots using a declarative approach</article-title>
          ,”
          <source>Science of Computer Programming</source>
          , vol.
          <volume>139</volume>
          , pp.
          <fpage>36</fpage>
          -
          <lpage>55</lpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>