<!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>OntologyBeanGenerator 5.0: Extending Ontology Concepts with Methods and Exceptions</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Daniela Briola</string-name>
          <email>daniela.briola@unimib.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Viviana Mascardi Massimiliano Gioseffi</string-name>
          <email>viviana.mascardi@unige.it</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Computer Sciences</institution>
          ,
          <addr-line>Systems and Communications.</addr-line>
          ,
          <institution>University of Milano Bicocca</institution>
          ,
          <addr-line>Milan</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Department of Informatics</institution>
          ,
          <addr-line>Bioengineering, Robotics, and Systems Engineering.</addr-line>
          ,
          <institution>University of Genova</institution>
          ,
          <addr-line>Genoa</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <fpage>116</fpage>
      <lpage>123</lpage>
      <abstract>
        <p>-When modeling and implementing complex systems based on agents and artifacts, achieving semantic interoperability is not only useful, but often necessary. A commonly adopted solution to manage complex and real MASs is adopting a Model Driven methodology, which uses an ontology as the formal representation of the domain, and then exploiting some existing tool to automatically generate code for agents in the MAS, to let them interact according to the model. While this approach is satisfactorily supported when the target MAS environment is Jason, less support is provided to Jade MASs, despite Jade's large adoption for real MASs development. So, considering the great support given by the automatic code generation starting from a formal model, and the large community working on Jade MASs, in this work we present an extension of the OntologyBeanGenerator plugin for Prote´ge´, used to generate a Java representation of an OWL ontology for Jade. We improved the OntologyBeanGenerator tool to support the modeling of exceptions, formalized at the ontology level, and of methods associated with ontology elements, to set the interface of concrete objects (artifacts) at design stage. This extension allows us to integrate in a Model Driven approach a support for the formal definition of artifacts and provide an automatic generation of Jade code/interfaces to interact with them respecting the model. Index Terms-Multiagent Systems; Model Driven Design; Jade; Automatic Code Generation; Ontologies; OntologyBeanGenerator</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        Semantic interoperability, namely the ability to process
digital information without losing the true intended meaning of
the information itself, plays an increasingly important role in
countless areas. Being explicit specifications of a shared
conceptualization, ontologies [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] are one of the most widespread
tools for representing the entities characterizing a domain, in
order to make applications semantically interoperable.
      </p>
      <p>
        The biomedical domain is the one where the oldest and
largest ontologies were born1; closely related to that domain
is the e-Health one that witnesses a recent boost of both
scientific [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] and commercial initiatives. With regard
      </p>
    </sec>
    <sec id="sec-2">
      <title>1See for example http://www.openclinical.org/ontologies.html</title>
      <p>
        and http://www.obofoundry.org/.
to e-government, at the European level the ISA program and
its ongoing continuation ISA22 (2016-2020) demonstrate the
effort in developing interoperable digital solutions for public
administrations. The report [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] shows how standards have
become an essential part of the revolution in the information
industry, aiming at interoperability for hardware and software.
Finally, in the last few years we are witnessing an increasing
need for semantic interoperability also in the IoT [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]
and cyber-physical systems domains [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        Since the advent of the ontologies first, and the Semantic
Web later, agents and ontologies have been considered as two
sides of the same coin [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. On the one hand, agents
may exploit ontologies to model the environment, along with
the involved entities therein and the services they offer, and
to achieve a semantically rich message exchange [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ],
[
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. On the other hand, many stages of the ontology
engineering process may benefit from the exploitation of agents,
as discussed for example in [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] w.r.t. ontology alignment.
      </p>
      <p>
        Given this close connection, all the most widespread
platforms for MAS engineering offer some facilities to import
and manage ontologies, be them used as a representation of
the internal agent knowledge like in the JASDL extension [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]
of Jason [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], or as a vocabulary shared among agents and as
a formal description of agents’s actions, like in Jade [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ].
      </p>
      <p>Jade offers facilities to directly import and manage
ontologies, provided that they are represented as JavaBeans3. The
OntologyBeanGenerator 4.14 plugin of Prote´ge´5 automatically
creates a Java representation of the ontology coherent with
Jade requirements, modeling domain concepts, predicates, and
agent actions. Two features not supported by
OntologyBeanGenerator 4.1 are:</p>
      <p>(1) the capability of associating interfaces (methods) with
the ontology concepts representing entities in the domain, and
2http://ec.europa.eu/isa/
3https://docs.oracle.com/javase/tutorial/javabeans/
4https://protegewiki.stanford.edu/wiki/OntologyBeanGenerator
5https://protege.stanford.edu/
(2) the capability of modeling the exceptions thrown by
those methods as ontology concepts.</p>
      <p>
        These features are extremely relevant when the MAS under
development is as complex as a cyber-physical system, or in
general foresees a large set of artifacts (refering to the A&amp;A
model [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]). In these cases, the ontology models physical
devices that agents may control and act upon via some
unified interfaces (their public methods), and malfunctioning
of such devices (the exceptions they throw) must be explicitly
represented in order not only to immediately react to them,
but also to exchange information and reason about them.
      </p>
      <p>Associating the pieces of information related with the
standard and exceptional behavior of the entities in the model,
with the ontology entities themselves, may improve semantic
interoperability by adding compatibility between software
systems via reuse of standardized interfaces.</p>
      <p>
        Adopting an ontology as formal model to be used both at
design time, and then as a starting point for the automatic code
generation of agents and artifacts in the MAS, is the approach
foreseen by Model Driven Engineering [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ].
      </p>
      <p>In this work we present OntologyBeanGenerator 5.0, an
extension of OntologyBeanGenerator 4.1, designed and
implemented to address its shortcomings, having in mind Jade
MASs developed exploiting one (or more) ontology to model
the domain (seen as the set of environment, agents and artifacts
involved in the MAS). So, OntologyBeanGenerator 5.0 could
be used not only in those Jade MASs already exploiting an
OWL ontology – in its Java version – but also in those MASs
where a formal representation of artifacts, plus an “usage
interface” defined at design time, is needed to achieve a more
flexible solution.</p>
      <p>The paper is organized as follows: Section II motivates the
need for OntologyBeanGenerator 5.0, Section III describes
its implementation, Section IV presents an example of use,
Section V discusses the related works and concludes.</p>
    </sec>
    <sec id="sec-3">
      <title>II. MOTIVATION</title>
      <p>When engineering a complex, safety-critical MAS, a
software engineer might need to pursue the two soft goals below,
besides the hard goals imposed by the stakeholder
requirements and by privacy and security issues:
reusability: (s)he should look for existing models of the
domain, rather than starting from scratch;
semantic interoperability: (s)he should look for models
represented as ontologies, in order to exploit all the
advantages that their adoption brings.</p>
      <p>
        These soft goals may be integrated, for example, into an
agile “Gaia-like” agent-oriented software engineering
methodology [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] consisting of the following steps:
1) identify the Environment model, namely the appliances,
devices and resources – more in general, the “artifacts”
[
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] – characterizing the domain;
2) look for an ontology suitable for modeling that
Environment: only if none can be reused, create a new one
from scratch;
3) identify the roles model, plus the services offered by
each role;
4) identify the interaction model by describing use cases
involving agents and artifacts;
5) describe the programming interfaces with which artifacts
provide their services;
6) describe the exceptions such services may raise;
7) associate the programming interface and its exceptions
with the ontology concepts representing artifacts and
move from the MAS design to its implementation.
      </p>
      <p>
        Depending on the agent-oriented development environment
used for the final implementation of the MAS, the last step
might take advantage of different supporting tools. In
particular, if the target system is Jason, the description of how
artifacts provide their services could be integrated into the
environment ontology using the tool presented in [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] (see
Section V). On the other hand, if the development environment
is Jade, some tools and languages (for example [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ]) exist
which can support the modeling phase, such as the automatic
generation of small parts of code but, as far as we know
(see more details in Section V), a complete tool for a Model
Driven generated MAS developed over Jade is not available
to the community, even if Jade is known to be one of the
most adopted platform for developing multiagent systems.
One quite widespread solution is to use OWL to create a
model of the agents, along with the services they offer, and
of the known artifacts, and then to automatically generate
the Jade skeletons of the agents actions and concepts to be
used by Jade agents. Our OntologyBeanGenerator 5.0 Prote´ge´
plugin makes a step forward helping designers in the modeling
phase of the artifacts, letting them to model the programmable
interfaces of the artifacts, that is, the methods to be used to
manage the Java objects representing the artifacts, along with
their Exceptions, if any, as foreseen in the 7th step of the
“Gaia-like” methodology presented before. This feature can
be useful when modeling an artifact managed by an agent
which requests a specific interface to interact with and, more
in general, can be seen as a new step towards a more solid and
exhaustive platform for automatically generate code for Jade
MASs. OntologyBeanGenerator 5.0 (OBG5.0 in the sequel)
seamlessly integrates with the previous
OntologyBeanGenerator 4.1 tool available to the community, which is one of the
very few able to partially generate Jade-compliant code.
      </p>
      <p>
        To make our approach and tool clearer, let us consider
a concrete scenario where the final goal is to develop a
controlling system (as we did for example in [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ], [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ]) for a
smart home implemented as a Jade MAS. The first six steps in
the above methodology can be addressed by a domain expert
who will design and implement the ontology modeling the
controlling system environment, along with its interactions
with the agents:
1) (S)he realizes that the environment includes a set of
Sensors and Smart elements which can be managed
thanks to a wifi (or wired) network, plus a set of concepts
such as Measurements and Locations;
2) (S)he discovers that the DogOnt ontology [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] http:
//elite.polito.it/ontologies/dogont.owl satisfies many of
her/his needs and decides to adopt it, taking into
consideration the possibility to refine or extend it, if necessary;
3) (S)he identifies two roles in the controlling system:
ElementController and HouseManager, along with their
services;
4) (S)he creates use cases, where agents playing the roles
identified in step 3 interact and manage the artifacts to
solve a set of problems;
5) (S)he lists a set of needed interfaces for Sensors and
      </p>
      <p>Smart elements;
6) (S)he lists a set of needed exceptions to model their
known errors/problems.</p>
      <p>After this first design phase, the software engineer (possibly,
with the help of an expert in Jade MAS design) faces step 7
and exploits OBG5.0 to create an OWL ontology able to model
the identified elements:
7.1. (s)he imports into Prote´ge´ the identified DogOnt
ontology, and adds the needed new Concepts (with their
properties);
7.2. (s)he adds a set of Exceptions;
7.3. (s)he models the AgentActions;
7.4. (s)he adds the desired methods (raising Exceptions when
needed) to the identified elements in the ontology;
7.5. (s)he uses the OBG5.0 to export the ontology into Java
interfaces and classes. At this point, (s)he is able to
implement the MAS by adding the real behavior of the
agents and implementing the AgentActions, and adding
the body to the methods defined in the ontology for the
elements managed in the MAS.</p>
      <p>Exceptions in our work have two meanings: the first one is
related directly to the methods we are adding to the Concepts,
so we need them to let the designer, and then the programmer,
define the methods with their errors as normally done in Object
Oriented languages; the second is related to the formalization
of an “Error/Exceptional State/Situation”, which in this case
should be modeled in the ontology and, if needed, should
be sharable between agents, for example, as the result of a
service execution that an agent was not able to satisfy. Since
we are targeting Jade, the only way an agent referring to
a specific ontology could answer with an Exception (as for
example for AgentAction result, as the content of a message
with Failure performative) is to have the Exception as subclass
of Jade:Concept. For this reason, to let the designer the
freedom of using the exceptions as (s)he prefers, we decided
to model them under Concept.</p>
      <p>In Sections III and IV we will use this running example to
show how to extend the DogOnt ontology and to implement
a simple Jade MAS exploiting it.</p>
    </sec>
    <sec id="sec-4">
      <title>III. ONTOLOGYBEANGENERATOR 5.0</title>
      <p>OntologyBeanGenerator is a tab widget for Prote´ge´
and is distributed under an open source license. The
last version available is 4.1. OntologyBeanGenerator
adds a tab to the Prote´ge´ interface to directly export
ontologies in Java, meeting the requirements for
being used in Jade. An ontology containing Jade
entities (OWLSimpleJADEAbstractOntology) is
distributed with the plugin: the entities of the ontology
O we want to make availabe for Jade must be
reorganized under the pre-defined concepts offered by
OWLSimpleJADEAbstractOntology (Concept,
AgentActions, AID and Predicate), according to
their semantics. Once this refactoring has been completed,
the OntologyBeanGenerator tab can be used to generate
the Java version of the “extended” ontology (namely, the
OWLSimpleJADEAbstractOntology extended with O
entities positioned in the right place).</p>
      <p>OBG5.0, available from www.disi.unige.it/person/MascardiV/
Download/OBG5.0.zip, has been built as a Prote´ge´ plugin
extending the OntologyBeanGenerator 4.1 (OBG4.1). The
OntologyBeanGenerator developer Chris van Aart authorized
this extension, which aims at: 1) correcting some errors in
OBG4.1; 2) adding a way to specify methods in the ontology;
3) adding a way to model, and then directly exploit,
exceptions. The main improvements of OBG5.0 w.r.t OBG4.1 are:
Addition of a new tab (called Java Method Mapper)
to manage methods creation and exportation, to allow
the MAS/ontology designer to add methods to the Java
version of the ontology directly. This is necessary if
we want to add methods that cannot be mapped into
setters/getters of a specific field (which were already
supported by OBG4.1). Methods are saved in an XML
file which is loaded by the tab and overwritten when
exporting the ontology, and are added to the interfaces
and to their default implementations;
Exception management: methods are allowed to raise
Exceptions. To do this, a specific ontology has been
created;
Update of the ontology type, now is BeanOntology;
Automatic import of the Default Implementations of the
interfaces in the Java Ontology;
Conversion of the boolean and int Prote´ge´ types into
the wrapper Boolean and Integer Java classes, to
support the exportation of multiple properties into lists
(currently, OBG4.1 exports them as a List of Object,
but this does not work with the methods for adding or
removing elements from the list);
Automatic disambiguation of Java types: we now use
the fully qualified names when exporting types from
java.lang or java.util to avoid ambiguities with
the Jade classes;</p>
      <p>Creation, after the compilation step, of the Java jar.</p>
      <p>The Java Method Mapper tab widget. Figure 1 shows the
OBG5.0 Java Method Mapper: when selecting a class from
the left area, the user can see the methods (if any) associated
with that class on the right area. Setters and getters do not
appear, since they are managed by the OBG4.1 “core” code.</p>
      <p>If the method name is preceded by “this::”, it means that it is
defined in the current class: if the method name is preceded
by another string, that string is the name of a parent class (the
method is inherited from the parent class). A user can remove
or modify methods of the selected class only: with a double
click on an inherited method, it is possible to override it.</p>
      <p>The “Add” and “Remove” buttons add a new method to the
selected class and remove the selected method respectively. In
the lower part of the tab, the button “Method File” loads, for
the entire ontology (not only for the selected class), all the
methods previously created for the ontology. The two “Save”
buttons save the current changes or create a new XML file,
which is used when exporting the ontology using the other
tab of the plugin.</p>
      <p>The add/edit method interface. When we add a new
method to a class or we edit an already existing method, the
Edit Window opens (shown in Figure 2a). The first part of the
dialog window is composed by these elements:</p>
      <p>Return Type of the method: allows to select the return
type from a combobox. The user can chose between
primitive Java types, Wrapper types, and the collections
List, Set and Map from java.lang. With the button
“Ontology” the user can instead select one class from
the ontology (a windows with the ontology structure is
opened, and the user can navigate it and select a class).
Method name: the user can insert a valid string as a name
(an alphanumeric string starting with or a character, not
containing a Java keyword).</p>
      <p>Parameters: The button “+” opens the window Add/Edit
Parameters (shown in Figure 2b). The button “-” deletes
the selected parameter.</p>
      <p>Exceptions: with the button “+”, a window showing the
ontology part regarding the Exceptions is opened, so
that the user can select one (see below). The button “-”
removes the selected Exception.</p>
      <p>In the lowest part of the window, a text area shows the
resulting Java code for the method. This area can be manually
inspected and its content can be changed: with the “Apply”
button, a syntactic checker is performed thanks to ANTLR46,
to verify that the method is well written, then a semantic check
(a) The Edit method window.</p>
      <p>(b) The Add parameters window.</p>
      <p>Fig. 2: The Edit method dialog and the Add new parameter dialog.
is performed, to verify that the types involved in the method
exist either in Java or in the ontology, and if all is correct, the
previous fields are then updated.</p>
      <p>With the “Set” button, a check over the method and
parameters names is performed. If we are adding a new method,
the check verifies that the method does not already exist.
Overloading is permitted, and checked when adding/modifying
a method in a class. Overriding is permitted as well: if the
user double clicks on an inherited method from the Java
Method Mapper tab, a new dialog windows will open: from
this, the user can redefine the exceptions or the return type,
changing them into a more specific type. If the user confirms
the changes, and they are correct, the method is added (if it
was the first time it was modified) or updated in the tab.</p>
      <p>Exception management. To let methods use Exceptions,
the user is requested to modify a template ontology modeling
the Exceptions (s)he wants to use: in this new ontology,
under the already existing Base class (that is a subclass of
Jade:Concept), the user must create all the Exceptions
(s)he will use. Then, this Exception ontology must be
imported in the main ontology, and must be given the prefix
Exception (that can be set up in the Metadata tab in
Prote´ge´). During the export phase, the tool will
automatically modify the class Exception:Base so that it extends
java.lang.Exception: in this way, all its subclasses
will be automatically Exceptions. The Exception:Base
class is already a subclass of Jade:Concept, and can be
consequently used in the Jade MAS as the user prefers, for
example, as content in a message.</p>
      <p>It is not allowed to add methods to the Exception classes.</p>
      <p>The BeanOntology class. Starting from Jade 3.6.1, a class
called jade.content.onto.BeanOntology is adopted
by Jade to represent an ontology: this class lets the
programmer to directly create ontology schemas starting from Java
classes (if they respect the Bean convention), without having
to manually specify all the elements in the ontology. For
example, if we want to import a new Java implementation of
the C ontology class (called CImpl.java), we can simply
write the code ontology.add(CImpl.class) avoiding
to manually create each element present in the class.</p>
      <p>Another functionality provided by OBG5.0 is directly
importing a package of classes (using the code
ontology.add("packageName")), so that to avoid
registering every class in the package. That also means that
one line of code is enough to include a new set of concrete
classes, so the user may develop its classes (implementing
the exported interfaces) and, adding one line of code, (s)he
can directly use them in Jade: anyway, if the user is not using
methods (or (s)he is adopting other classes composition),
(s)he can directly import the automatically created jar with
no need to modify the code.</p>
    </sec>
    <sec id="sec-5">
      <title>IV. OBG5.0 EXAMPLE</title>
      <p>
        Let us consider the SmartHome Controlling system domain
presented in Section II. We started from the already available
DogOnt ontology [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ], which gives a device/network
independent description of houses with smart entities, including both
“controllable” and architectural elements, and we kept only
a very small subset of the existing elements (those coherent
with our example, that is a very simple example foreseen to
show the capabilities of our tool and its functioning, with no
claim to be completely realistic).
      </p>
      <p>Figure 3 shows the DogOnt (part of) extended ontology,
while the methods added to SurveillanceCamera are
reported in Figure 1.</p>
      <p>The new concepts and the artifacts’s methods.
SurveillanceCamera comes from the DogOnt existing
ontology, but the software engineer in charge for the
ontology modeling added to it a property pointingAT of type
Fig. 3: (Part of) DogOnto ontology, extended with exceptions and
new concepts.</p>
      <p>CoordinateInSpace (a new concept for specifying a point
in the 2D area of the camera). The camera identifies the
movement of an intruder and, thanks to the boolean method
intrusionDetected, can notify the caller – its own
controlling agent in this case – of this situation. This method
raises an exception of type Exception_NotResponding
if the camera is not working properly or is unable to perceive a
clear image (the image is completely filled with a unique color)
because, for example, the intruder covered the camera with a
piece of paper. The camera may change its orientation (the
pointingAT value) thanks to the new method pointAt,
which actually rotates the camera and raises an exception if
the requested point cannot be framed.</p>
      <p>Use case and interactions. We consider a use case related
to home security. We assume to have an agent associated with
each sensor in the house: in this very simple example, we have
two SurveillanceCameras, each one associated with
a CameraAgent (with the role ElementController),
and a Manager agent (with the role of HouseManager)
which receives either notifications of intrusion from the
CameraAgents (IntrusionNotification
AgentAction) or notifications of problems (for example, a
camera not responding): when a CameraAgent sends the
ManagerAgent the CameraNotWorking AgentAction, it
will also specify the last coordinate LastC the camera was
pointing at: we could otherwise include the Exception itself
in the message and let the receiving agent decide what to do,
but in this example due to space limitation, we decided to not
exchange Exceptions between agents, and we adopt a simpler
behavior where the CameraAgent already knows how to
react when an Exception is raised by its associated device.
In that situation, the Manager will select another Camera
and will ask the associated CameraAgent to point to that
coordinate LastC: consequently, the camera which moved
because of this request will start patrolling that point and, if
an intrusion is detected, it will inform the Manager. In this
way, if a camera is not working or has been deactivated, the
Manager is immediately notified and is able to coordinate
the other cameras to check the situation.</p>
      <p>Figure 4 provides a general overview of how agents interact
by means of a UML sequence diagram: agents exchange
messages containing AgentActions defined in the
ontology, and CameraAgents interact with their respective
SurveillanceCamera artifacts using methods in the ontology.</p>
      <p>Jade implementation. We implemented this simple MAS
in Jade. Figure 5 shows a screenshot from the Jade
Sniffer Agent. At the beginning of the surveillance activity,
Camera_1 and Camera_2 are patrolling two disjoint areas.
Then, Camera_1 (a CameraAgent) notifies the Manager
that the camera is no longer working properly: the Manager
requests Camera_2 (another CameraAgent) to point where
Camera_1 was pointing, and at that point Camera_2
perceives an intruder and notifies the Manager, which will for
example contact the police. Later on we report the content of
the FIPA-ACL request sent by the Manager to Camera_2,
so that the reader can see how the ontological concept
(ControlAT AgentAction) is used.</p>
      <p>ACL Message Content:
((action
(agent-identifier</p>
      <p>:name Manager@10.0.1.5:1099/JADE)
(DefaultControlAT
:newCoordinate
(DefaultCoordinateInSpace
:x 3
:y 4))))</p>
      <p>To give the reader an idea of how the Java code output by
OBG5.0 looks like, we show below a fragment of the code
produced by the plugin. In particular, we report part of the
code for adding concepts and properties to the ontology, and
part of the code in the interface SurveillanceCamera to
manage the new methods.
public class SensorsOntoOntology extends jade.content.onto.
BeanOntology {
private SensorsOntoOntology(){
super(ONTOLOGY_NAME, BasicOntology.getInstance());
try {
// Concepts, AgentActions and Exceptions (part of code)
add(AIExportDougSensor.exceptions.Exception_Base.class);
add(AIExportDougSensor.ControlAT.class);
//new! done to automatically add all the default classes
add("AIExportDougSensor.impl");
} catch (BeanOntologyException e) {e.printStackTrace();}
}</p>
      <p>}
}
public interface SurveillanceCamera extends Sensor {
public boolean intrusionDetected ( )
throws Exception_Exception_NotResponding ;
public void pointAt (CoordinateInSpace newCoordinate)
throws Exception_Exception_OutOfScope ;</p>
    </sec>
    <sec id="sec-6">
      <title>V. RELATED WORKS AND CONCLUSIONS</title>
      <p>The research field in the intersection of multiagent systems
and semantic web technologies is an extremely lively one.</p>
      <p>
        As recently observed in [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], it has also close connections
with model-driven engineering, since the model which drives
the MAS engineering may be profitably represented as an
ontology. In our research activity, we have often used
OntologyBeanGenerator, for example in [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ], [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ], [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ], [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ], [
        <xref ref-type="bibr" rid="ref33">33</xref>
        ],
[
        <xref ref-type="bibr" rid="ref34">34</xref>
        ], [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ], [
        <xref ref-type="bibr" rid="ref36">36</xref>
        ], where the MASs were centered around the
domain ontology, and in many cases they were driven by it.
      </p>
      <p>
        Starting from [
        <xref ref-type="bibr" rid="ref37">37</xref>
        ], a lot of effort has been devoted to the
integration of ontologies into the AgentSpeak language [
        <xref ref-type="bibr" rid="ref38">38</xref>
        ],
and more practically into Jason [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], [
        <xref ref-type="bibr" rid="ref39">39</xref>
        ], [
        <xref ref-type="bibr" rid="ref40">40</xref>
        ]. One of the last
works in this series [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] presents a new modeling approach
where MASs are designed by instantiating an ontology
developed by the authors, and a tool uses these instances to generate
code for such systems.
      </p>
      <p>
        When moving from Jason to Jade, the number of available
tools and scientific papers dramatically decreases. Since Jade
ontologies must be represented in Java, it is common practice
to model them in OWL using Prote´ge´, and then to use some
existing tool that automatically generates the Java
representation of the ontology. The process of exporting an OWL
ontology into a Java representation was faced in similar ways
by [
        <xref ref-type="bibr" rid="ref41">41</xref>
        ]-[
        <xref ref-type="bibr" rid="ref42">42</xref>
        ] and [
        <xref ref-type="bibr" rid="ref43">43</xref>
        ]; anyway [
        <xref ref-type="bibr" rid="ref43">43</xref>
        ], which gave birth to the
OntologyBeanGenerator tool, was more successful, probably
due to its simplicity and its direct integration into Prote´ge´, and
is still today widely used.
      </p>
      <p>Whereas we can already add properties while modeling
entities in OWL aimed at being used in Jade, we have no
way to model methods nor Exceptions.</p>
      <p>
        Our understanding of the issues raised by MAS engineering
along with our knowledge of the OntologyBeanGenerator tool
and of its limitations, plus a comparison with platforms like
CArtAgO [
        <xref ref-type="bibr" rid="ref40">40</xref>
        ] and JaCaMo [
        <xref ref-type="bibr" rid="ref44">44</xref>
        ], suggested us the extensions
described in this paper. The analysis of the literature confirmed
that, currently, no comprehensive Model Driven Tool with Jade
as a target exists.
      </p>
      <p>
        Our implementation of OBJ5.0, freely available to the
community, improves the previous version of the tool by
fixing a set of known problems; it also addresses some issues
discusses for example in [
        <xref ref-type="bibr" rid="ref45">45</xref>
        ], where the authors argue that an
exception ontology, along with a domain one, may increase
the MAS reliability and enhance its fault tolerance capability.
      </p>
      <p>By adding Exceptions both to methods and as Concepts in the
ontology, we believe OBJ5.0 may represent a very first step
towards the design of a Model Driven platform for developing
secure and reliable Jade MASs.</p>
      <p>An ideally similar approach is the one proposed by
the W3C with OWL-S (https://www.w3.org/Submission/
OWL-S/), which is an ontology modeling Web Services: this
ontology is born mainly to be used for the Semantic Web, to
support the semantic annotation and invocation of web services
and also of entities in IoT environments. In this ontology,
each Service has a Profile, describing what the service offers,
a Model, to explain how to use it, and a Grounding, to
specifically describe how to interact with it. In some way, the
grounding may be similar to our methods, but the difference is
in the general approach. We created a way to add methods to
Concepts in an ontology that represents agents, services and
artifacts to be used in a Jade MAS, so, we are already acting in
a specific model (the one requested by Jade), foreseen for the
usage inside the MAS. OWL-S is foreseen to model how an
agent could interact with an external Web Service, so its scope
calling the intrusionDetected method. We assume here that method pointAt never throws exception. Note that agents exchange
AgentActions each other, while agents manage artifacts thanks to their methods.
is slightly different (we do not have access on the Java object
representing the Remote Web Service, while we have direct
access to the Java object representing the specific artifact in the
MAS). Nevertheless, since OWL-S is an OWL ontology, we
could evaluate to integrate it (after understanding how to relate
the Jade classes with the OWL-S existing classes) and directly
exploiting it in our tool, maybe as a new part (not alternative
but parallel to the current one): in this way, we could meet
the requirements of a larger MAS designer community. This
study is part of the future work.</p>
      <p>As further extensions, we plan to add more types in the
methods definition (the Array type and other less used Java
types, which could be specified by the user in a configuration
file to get greater flexibility), and to allow the Java Generics
usage. We would also directly let the user insert the methods
code (to be automatically used in the Default concrete classes),
and static methods. Finally, since OBG5.0 does not work with
the most recent releases of Prote´ge´, we plan to exploit the
lessons learned with its design and development, to create a
completely new version of OBG5.0 compliant with Prote´ge´
5.2.0.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>T.</given-names>
            <surname>Gruber</surname>
          </string-name>
          , “Ontology,” in Encyclopedia of Database Systems, L. Liu and M. T. O¨zsu, Eds. Springer,
          <year>2009</year>
          , pp.
          <fpage>1963</fpage>
          -
          <lpage>1965</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>A.</given-names>
            <surname>Taweel</surname>
          </string-name>
          , “
          <article-title>Semantic interoperability-enabled architecture for connected health services,” in Reshaping medical practice and care with health information systems</article-title>
          .
          <source>IGI Global</source>
          ,
          <year>2016</year>
          , pp.
          <fpage>246</fpage>
          -
          <lpage>265</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>J. C.</given-names>
            <surname>Mandel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. A.</given-names>
            <surname>Kreda</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K. D.</given-names>
            <surname>Mandl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I. S.</given-names>
            <surname>Kohane</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R. B.</given-names>
            <surname>Ramoni</surname>
          </string-name>
          , “
          <article-title>SMART on FHIR: a standards-based, interoperable apps platform for electronic health records</article-title>
          ,
          <source>” Journal of the American Medical Informatics Association</source>
          , vol.
          <volume>23</volume>
          , no.
          <issue>5</issue>
          , pp.
          <fpage>899</fpage>
          -
          <lpage>908</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>S.</given-names>
            <surname>Bhalla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Sachdeva</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Batra</surname>
          </string-name>
          , “
          <article-title>Semantic interoperability in electronic health record databases: Standards, architecture and e-health systems</article-title>
          ,” in
          <source>International Conference on Big Data Analytics</source>
          . Springer,
          <year>2017</year>
          , pp.
          <fpage>235</fpage>
          -
          <lpage>242</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>V.</given-names>
            <surname>Peristeras</surname>
          </string-name>
          , “
          <article-title>Semantic standards: Preventing waste in the information industry</article-title>
          ,
          <source>” IEEE Intelligent Systems</source>
          , vol.
          <volume>28</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>72</fpage>
          -
          <lpage>75</lpage>
          ,
          <year>July 2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>M.</given-names>
            <surname>Ganzha</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Paprzycki</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Pawłowski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Szmeja</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Wasielewska</surname>
          </string-name>
          , “
          <article-title>Semantic interoperability in the Internet of Things: An overview from the INTER-IoT perspective</article-title>
          ,
          <source>” Journal of Network and Computer Applications</source>
          , vol.
          <volume>81</volume>
          , pp.
          <fpage>111</fpage>
          -
          <lpage>124</lpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>S.</given-names>
            <surname>Jabbar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Ullah</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Khalid</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Khan</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          K. Han, “
          <article-title>Semantic interoperability in heterogeneous IoT infrastructure for healthcare,”</article-title>
          <source>Wireless Communications and Mobile Computing</source>
          , vol.
          <year>2017</year>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>G.</given-names>
            <surname>Bajaj</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Agarwal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Singh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Georgantas</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V.</given-names>
            <surname>Issarny</surname>
          </string-name>
          , “
          <article-title>A study of existing ontologies in the IoT-domain,” CoRR</article-title>
          , vol.
          <source>abs/1707.00112</source>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>V.</given-names>
            <surname>Jirkovsky</surname>
          </string-name>
          ´, “
          <article-title>Semantic integration in the context of cyber-physical systems</article-title>
          ,” czech Technical University in Prague, Doctoral Thesis. [Online]. Available: https://dspace.cvut.cz/handle/10467/73622
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>M. N.</given-names>
            <surname>Huhns</surname>
          </string-name>
          and
          <string-name>
            <given-names>M. P.</given-names>
            <surname>Singh</surname>
          </string-name>
          , “
          <article-title>Ontologies for agents,” IEEE Internet computing</article-title>
          , vol.
          <volume>1</volume>
          , no.
          <issue>6</issue>
          , pp.
          <fpage>81</fpage>
          -
          <lpage>83</lpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>J.</given-names>
            <surname>Hendler</surname>
          </string-name>
          , “
          <article-title>Agents and the semantic web</article-title>
          ,
          <source>” IEEE Intelligent Systems</source>
          , vol.
          <volume>16</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>30</fpage>
          -
          <lpage>37</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>V.</given-names>
            <surname>Mascardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. A.</given-names>
            <surname>Hendler</surname>
          </string-name>
          , and L. Papaleo, “
          <article-title>Semantic web and declarative agent languages and technologies: Current and future trends - (position paper),” in DALT, ser</article-title>
          .
          <source>Lecture Notes in Computer Science</source>
          , vol.
          <volume>7784</volume>
          . Springer,
          <year>2012</year>
          , pp.
          <fpage>197</fpage>
          -
          <lpage>202</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>K</surname>
            .-t. Ng and
            <given-names>Q.</given-names>
          </string-name>
          <string-name>
            <surname>Lu</surname>
          </string-name>
          , “
          <article-title>Improve the service quality of multi-agent system: Ontology management</article-title>
          ,”
          <source>in Proc. of AAMAS. ACM</source>
          ,
          <year>2003</year>
          , pp.
          <fpage>1078</fpage>
          -
          <lpage>1079</lpage>
          . [Online]. Available: http://doi.acm.
          <source>org/10</source>
          .1145/860575.860804
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>D.</given-names>
            <surname>Briola</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Locoro</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V.</given-names>
            <surname>Mascardi</surname>
          </string-name>
          , “
          <article-title>Ontology agents in FIPAcompliant platforms: A survey and a new proposal,”</article-title>
          <source>in Proc. of WOA</source>
          <year>2008</year>
          ,
          <year>2008</year>
          , pp.
          <fpage>68</fpage>
          -
          <lpage>75</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>S. M.</given-names>
            <surname>Deen</surname>
          </string-name>
          and
          <string-name>
            <given-names>K.</given-names>
            <surname>Ponnamperuma</surname>
          </string-name>
          , “
          <article-title>Dynamic ontology integration in a multi-agent environment,”</article-title>
          <source>in Proc. of AINA</source>
          <year>2006</year>
          , vol.
          <volume>1</volume>
          ,
          <string-name>
            <surname>April</surname>
          </string-name>
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>R.</given-names>
            <surname>Brena</surname>
          </string-name>
          and
          <string-name>
            <given-names>H. G.</given-names>
            <surname>Ceballos</surname>
          </string-name>
          , “
          <article-title>Combining local and global access to ontologies in a multiagent system</article-title>
          ,
          <source>” Journal of Advanced Computational Intelligence</source>
          , vol.
          <volume>9</volume>
          , no.
          <issue>1</issue>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>J.</given-names>
            <surname>Euzenat</surname>
          </string-name>
          , “
          <article-title>Crafting ontology alignments from scratch through agent communication,” in Proc. of PRIMA, ser</article-title>
          .
          <source>LNCS</source>
          , vol.
          <volume>10621</volume>
          . Springer,
          <year>2017</year>
          , pp.
          <fpage>245</fpage>
          -
          <lpage>262</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>T.</given-names>
            <surname>Klapiscak</surname>
          </string-name>
          and
          <string-name>
            <given-names>R. H.</given-names>
            <surname>Bordini</surname>
          </string-name>
          , “
          <article-title>JASDL: A practical programming approach combining agent and semantic web technologies,” in Proc. of DALT, ser</article-title>
          .
          <source>LNCS</source>
          , vol.
          <volume>5397</volume>
          . Springer,
          <year>2008</year>
          , pp.
          <fpage>91</fpage>
          -
          <lpage>110</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>R. H.</given-names>
            <surname>Bordini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. F.</given-names>
            <surname>Hu</surname>
          </string-name>
          <article-title>¨ bner, and M. Wooldridge, Programming MultiAgent Systems in AgentSpeak Using Jason</article-title>
          . John Wiley &amp; Sons,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>F. L.</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</article-title>
          . Wiley,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>A.</given-names>
            <surname>Ricci</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Viroli</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Omicini</surname>
          </string-name>
          , “
          <article-title>The A&amp;A programming model and technology for developing agent environments in MAS,” in Proc. of PROMAS, ser</article-title>
          .
          <source>LNCS</source>
          , vol.
          <volume>4908</volume>
          . Springer,
          <year>2007</year>
          , pp.
          <fpage>89</fpage>
          -
          <lpage>106</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>D. C.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          , “
          <article-title>Guest editor's introduction: Model-driven engineering</article-title>
          ,” IEEE Computer, vol.
          <volume>39</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>25</fpage>
          -
          <lpage>31</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>F.</given-names>
            <surname>Zambonelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N. R.</given-names>
            <surname>Jennings</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Wooldridge</surname>
          </string-name>
          , “
          <article-title>Developing multiagent systems: The Gaia methodology</article-title>
          ,
          <source>” ACM Trans. Softw. Eng. Methodol.</source>
          , vol.
          <volume>12</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>317</fpage>
          -
          <lpage>370</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>A.</given-names>
            <surname>Freitas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. H.</given-names>
            <surname>Bordini</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Vieira</surname>
          </string-name>
          , “
          <article-title>Model-driven engineering of multi-agent systems based on ontologies</article-title>
          ,
          <source>” Applied Ontology</source>
          , vol.
          <volume>12</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>157</fpage>
          -
          <lpage>188</lpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <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>Agent-oriented modeldriven development for jade with the jadel programming language,”</article-title>
          <string-name>
            <surname>Comput. Lang. Syst. Struct.</surname>
          </string-name>
          , vol.
          <volume>50</volume>
          , no. C, pp.
          <fpage>142</fpage>
          -
          <lpage>158</lpage>
          , Dec.
          <year>2017</year>
          . [Online]. Available: https://doi.org/10.1016/j.cl.
          <year>2017</year>
          .
          <volume>06</volume>
          .001
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>V.</given-names>
            <surname>Mascardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Briola</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Martelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Caccia</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Milani</surname>
          </string-name>
          , “
          <article-title>Monitoring and diagnosing railway signalling with logic-based distributed agents,”</article-title>
          <source>in Proc. of the International Workshop CISIS</source>
          '08,
          <string-name>
            <given-names>E.</given-names>
            <surname>Corchado</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Zunino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Gastaldo</surname>
          </string-name>
          , and
          <string-name>
            <surname>A</surname>
          </string-name>
          ´ . Herrero, Eds. Springer Berlin Heidelberg,
          <year>2009</year>
          , pp.
          <fpage>108</fpage>
          -
          <lpage>115</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>D.</given-names>
            <surname>Briola</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Mascardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Martelli</surname>
          </string-name>
          , G. Arecco,
          <string-name>
            <given-names>R.</given-names>
            <surname>Caccia</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Milani</surname>
          </string-name>
          , “
          <article-title>A prolog-based mas for railway signalling monitoring : Implementation and experiments</article-title>
          ,”
          <source>in Proceedings of the Workshop on Objects and Agents, WOA'08</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>D.</given-names>
            <surname>Bonino</surname>
          </string-name>
          and
          <string-name>
            <given-names>F.</given-names>
            <surname>Corno</surname>
          </string-name>
          , “
          <article-title>DogOnt - ontology modeling for intelligent domotic environments,” in The Semantic Web - ISWC</article-title>
          <year>2008</year>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Sheth</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Staab</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Dean</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Paolucci</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Maynard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Finin</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          K. Thirunarayan, Eds. Berlin, Heidelberg: Springer Berlin Heidelberg,
          <year>2008</year>
          , pp.
          <fpage>790</fpage>
          -
          <lpage>803</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>A.</given-names>
            <surname>Locoro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Mascardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Briola</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Martelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ancona</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Deufemia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Paolino</surname>
          </string-name>
          , G. Tortora, G. Polese, and
          <string-name>
            <given-names>R.</given-names>
            <surname>Francese</surname>
          </string-name>
          , “
          <article-title>The Indiana MAS Project: Goals and Preliminary Results,”</article-title>
          <source>in Proceedings of the 13th Workshop on Objects and Agents Milano, Italy, September 17-19</source>
          ,
          <year>2012</year>
          ,
          <string-name>
            <given-names>G. V.</given-names>
            <surname>Flavio De Paoli</surname>
          </string-name>
          , Ed., vol.
          <source>CEUR</source>
          Vol-
          <volume>892</volume>
          . CEUR,
          <year>2012</year>
          . [Online]. Available: http://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>892</volume>
          /paper10.pdf
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <surname>Mascardi</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Briola</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          , et al.,
          <article-title>“A holonic multi-agent system for sketch, image and text interpretation in the rock art domain</article-title>
          ,
          <source>” Int. J. of Innovative Computing, Information and Control</source>
          , vol.
          <volume>10</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>81</fpage>
          -
          <lpage>100</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>D.</given-names>
            <surname>Briola</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Deufemia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Mascardi</surname>
          </string-name>
          , and L. Paolino, “
          <article-title>Agent-oriented and ontology-driven digital libraries: the IndianaMAS experience</article-title>
          ,”
          <source>Software: Practice and Experience</source>
          , vol.
          <volume>47</volume>
          , no.
          <issue>11</issue>
          , pp.
          <fpage>1773</fpage>
          -
          <lpage>1799</lpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>D.</given-names>
            <surname>Briola</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Deufemia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Mascardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Paolino</surname>
          </string-name>
          , and
          <string-name>
            <given-names>N.</given-names>
            <surname>Bianchi</surname>
          </string-name>
          , “
          <article-title>Ontology-driven processing and management of digital rock art objects in IndianaMAS,”</article-title>
          <source>in Proc. of EuroMed</source>
          <year>2014</year>
          ,
          <year>2014</year>
          , pp.
          <fpage>217</fpage>
          -
          <lpage>227</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <given-names>M.</given-names>
            <surname>Leotta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Beux</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Mascardi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Briola</surname>
          </string-name>
          , “
          <article-title>My MOoD, a multimedia and multilingual ontology driven MAS: Design and first experiments in the sentiment analysis domain,”</article-title>
          <source>in Proc. of ESSEM workshop</source>
          , ser.
          <source>CEUR-WS.org</source>
          , vol.
          <volume>1351</volume>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34]
          <string-name>
            <given-names>D.</given-names>
            <surname>Briola</surname>
          </string-name>
          , “
          <article-title>Agents and ontologies for a smart management of heterogeneous data: The IndianaMAS system,” in Intelligent Distributed Computing IX, P</article-title>
          . Novais,
          <string-name>
            <given-names>D.</given-names>
            <surname>Camacho</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Analide</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>El Fallah Seghrouchni</surname>
          </string-name>
          , and C. Badica, Eds. Springer International Publishing,
          <year>2016</year>
          , pp.
          <fpage>25</fpage>
          -
          <lpage>36</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [35]
          <string-name>
            <given-names>M.</given-names>
            <surname>Bozzano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Briola</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Leone</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Locoro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Marasso</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V.</given-names>
            <surname>Mascardi</surname>
          </string-name>
          , “MUSE:
          <article-title>MUltilinguality and SEmantics for the citizens of the world</article-title>
          ,
          <source>” Studies in Computational Intelligence</source>
          , vol.
          <volume>446</volume>
          , pp.
          <fpage>97</fpage>
          -
          <lpage>102</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [36]
          <string-name>
            <given-names>D.</given-names>
            <surname>Briola</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Mascardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Martelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Caccia</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Milani</surname>
          </string-name>
          , “
          <article-title>Dynamic resource allocation in a MAS: A case study from the industry</article-title>
          ,
          <source>” Proceedings of the 10th Workshop on Objects and Agents, WOA'09</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          [37]
          <string-name>
            <given-names>A</given-names>
            <surname>´. F. Moreira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Vieira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. H.</given-names>
            <surname>Bordini</surname>
          </string-name>
          , and
          <string-name>
            <surname>J. F.</surname>
          </string-name>
          <article-title>H u¨bner, “Agent-oriented programming with underlying ontological reasoning,” in Proc. of DALT, ser</article-title>
          .
          <source>LNCS</source>
          , vol.
          <volume>3904</volume>
          . Springer,
          <year>2005</year>
          , pp.
          <fpage>155</fpage>
          -
          <lpage>170</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          [38]
          <string-name>
            <given-names>A. S.</given-names>
            <surname>Rao</surname>
          </string-name>
          , “
          <string-name>
            <surname>AgentSpeak</surname>
          </string-name>
          (L):
          <article-title>BDI agents speak out in a logical computable language,” in Proc. of MAAMAW, ser</article-title>
          .
          <source>LNCS</source>
          , vol.
          <volume>1038</volume>
          . Springer,
          <year>1996</year>
          , pp.
          <fpage>42</fpage>
          -
          <lpage>55</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          [39]
          <string-name>
            <given-names>V.</given-names>
            <surname>Mascardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Ancona</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Barbieri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. H.</given-names>
            <surname>Bordini</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Ricci</surname>
          </string-name>
          , “
          <article-title>CooL-AgentSpeak: Endowing AgentSpeak-DL agents with plan exchange and</article-title>
          ontology services,
          <source>” Web Intelligence and Agent Systems</source>
          , vol.
          <volume>12</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>83</fpage>
          -
          <lpage>107</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          [40]
          <string-name>
            <given-names>A.</given-names>
            <surname>Freitas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. R.</given-names>
            <surname>Panisson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Hilgert</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Meneguzzi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Vieira</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R. H.</given-names>
            <surname>Bordini</surname>
          </string-name>
          , “
          <article-title>Integrating ontologies with multi-agent systems through CArtAgO artifacts,” in WI-IAT (2)</article-title>
          .
          <source>IEEE Computer Society</source>
          ,
          <year>2015</year>
          , pp.
          <fpage>143</fpage>
          -
          <lpage>150</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          [41]
          <string-name>
            <given-names>M.</given-names>
            <surname>Tomaiuolo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Bergenti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Poggi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Turci</surname>
          </string-name>
          , “OWLBeans - from ontologies to Java classes,”
          <source>in Proc. of WOA'04. Pitagora Editrice Bologna</source>
          ,
          <year>2004</year>
          , pp.
          <fpage>116</fpage>
          -
          <lpage>125</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          [42]
          <string-name>
            <given-names>M.</given-names>
            <surname>Tomaiuolo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Turci</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Bergenti</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Poggi</surname>
          </string-name>
          , “
          <article-title>An ontology support for semantic aware agents,” in Agent-Oriented Information Systems III, M. Kolp</article-title>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Bresciani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Henderson-Sellers</surname>
          </string-name>
          , and M. Winikoff, Eds. Berlin, Heidelberg: Springer Berlin Heidelberg,
          <year>2006</year>
          , pp.
          <fpage>140</fpage>
          -
          <lpage>153</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          [43]
          <string-name>
            <surname>C. van Aart</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Pels</surname>
          </string-name>
          , G. Caire, and
          <string-name>
            <given-names>F.</given-names>
            <surname>Bergenti</surname>
          </string-name>
          , “
          <article-title>Creating and using ontologies in agent communication,”</article-title>
          <source>in Proc. of OAS</source>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref44">
        <mixed-citation>
          [44]
          <string-name>
            <given-names>O.</given-names>
            <surname>Boissier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. H.</given-names>
            <surname>Bordini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. F.</given-names>
            <surname>Hu</surname>
          </string-name>
          <article-title>¨ bner, A. Ricci, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Santi</surname>
          </string-name>
          ,
          <article-title>“Multi-agent oriented programming with JaCaMo,”</article-title>
          <source>Science of Computer Programming</source>
          , vol.
          <volume>78</volume>
          , no.
          <issue>6</issue>
          , pp.
          <fpage>747</fpage>
          -
          <lpage>761</lpage>
          ,
          <year>2013</year>
          , special section:
          <source>The Programming Languages track at the 26th ACM Symposium on Applied Computing (SAC</source>
          <year>2011</year>
          ) &amp;
          <article-title>Special section on Agent-oriented Design Methods and Programming Techniques for Distributed Computing in Dynamic and Complex Environments</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref45">
        <mixed-citation>
          [45]
          <string-name>
            <given-names>N.</given-names>
            <surname>Shah</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Iqbal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>James</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Iqbal</surname>
          </string-name>
          , “
          <article-title>Exception representation and management in open multi-agent systems</article-title>
          ,
          <source>” Information Sciences</source>
          , vol.
          <volume>179</volume>
          , no.
          <issue>15</issue>
          , pp.
          <fpage>2555</fpage>
          -
          <lpage>2561</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>