<!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>GIMT: A tool for ontology and goal modeling in BDI Multi-Agent Design</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Massimo Cossentino</institution>
          ,
          <addr-line>Daniele Dalle Nogare</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>-Designing and developing BDI multi-agent systems would be facilitated by rising up the level of abstraction to use and by a methodological approach for managing it. To this aim it is common the integration of goal oriented analysis techniques with the design and implementation phases. In this fashion, our experience is that the use of an ontology in the early stages of the process is a great support for subsequent phases: goal modeling, agent design and implementation. However, we are aware that building and maintaining an ontology has to be supported by appropriate tools.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Besides the advantages offered by an automatic tool, the other
novelty of this research is in the mapping between metamodeling
based on Model Driven Engineering (MDE) and Domain Specific
Modeling Languages (DSMLs) with the Eclipse plug-in
development environment.</p>
    </sec>
    <sec id="sec-2">
      <title>I. INTRODUCTION</title>
      <p>The integration of a high-level programming paradigm,
such as the BDI multi-agent systems, into a systematic
approach, requires a revision of traditional instruments and
tools for conducting the requirement analysis, in order to
better fit with the well-known concept of goal. Much research
exists in the literature to deal with the goal oriented
requirement engineering. We aim at developing a complete software
methodology that includes a goal-oriented analysis, the design
of agent organizations, and the support to the implementation
phase.</p>
      <p>The fundamental common theme in all these activities is
the presence of an ontology. It is necessary for the definition
of the problem and of the solution domain, but also for the
structure of messages and for organizing agent knowledge in
beliefs.</p>
      <p>Ontologies are essential for our approach. However, we
have faced the problem that building and maintaining them is
not trivial. A totally manual approach would add a significant
burden to developer that may impact the personal productivity
in the project.</p>
      <p>
        The objective of our work is to provide a CASE tool for
supporting designers in the goal identification activity. We
exploit the results presented in [
        <xref ref-type="bibr" rid="ref16">17</xref>
        ] where two activities of
the preliminary phase of a complete methodological approach
were developed.
      </p>
      <p>
        Model Driven Engineering (MDE) is an approach
promoting the use of models as first-class citizens of a software
development process [
        <xref ref-type="bibr" rid="ref18">19</xref>
        ]. These models are, in many usual
cases, defined using general-purpose modeling languages like
the UML: the standard modeling language in the field of
object oriented software engineering. Conversely, for restricted
domains, it is widely spread the use of so-called Domain
Specific Modeling Languages (DSMLs) [
        <xref ref-type="bibr" rid="ref13">14</xref>
        ]. They are specifically
designed to meet the needs of the target application domain by
using specific concepts of the domain. A common practice of
MDE is that DSMLs are defined using a metamodel expressed
with a general-purpose metamodeling language like MOF [
        <xref ref-type="bibr" rid="ref14">15</xref>
        ],
to name the most widely used one. These metamodels describe
elements of the language the designer can instantiate at the
immediate meta-level below in order to build its own DSML.
      </p>
      <p>
        The results presented in this paper are founded on the use
of MDE as a key element for the development of the proposed
tool. The main contribution is the development of a CASE tool
based on a DSML we have defined in order to support the
activities of the requirement analyses proposed in our previous
work [
        <xref ref-type="bibr" rid="ref16">17</xref>
        ].
      </p>
      <p>It is well known that the joint use of DSMLs and CASE
tools allows to guide and automate the model construction and
transformation, resulting in an increase of both software
development productivity and quality. The tool imposes
domainspecific constraints and performs model checking for detecting
and preventing many errors in the early phases of the process
life cycle.</p>
      <p>
        The tool we propose has been developed by using Graphiti
[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], an Eclipse-based graphics framework that enables rapid
development of state-of-the-art diagram editors for domain
models. Graphiti can use EMF [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] based domain models very
easily but can deal with any Java-based objects on the domain
side as well.
      </p>
      <p>The rest of the paper is organized as follows, in the next
section we present the motivation of our work, in section III
we illustrate the methodological approach for which the tool
has been developed, in section IV we present the tool, its
functionality and some technological issues on its construction
and finally in Section V we draw some conclusions.</p>
      <p>II.</p>
    </sec>
    <sec id="sec-3">
      <title>MOTIVATION AND OBJECTIVES</title>
      <p>
        Much research has highlighted advantages and strengths of
MDE and DSMLs [
        <xref ref-type="bibr" rid="ref7">8</xref>
        ][
        <xref ref-type="bibr" rid="ref18">19</xref>
        ][
        <xref ref-type="bibr" rid="ref6">7</xref>
        ][
        <xref ref-type="bibr" rid="ref13">14</xref>
        ] in managing the complexity
of domain concepts and domain abstractions while designing
complex systems. These are fundamentals in our research. We
have been working for a couple of years on the construction
of a complete design process for modeling complex MAS
systems, including organizations, hierarchical structures and
norms [
        <xref ref-type="bibr" rid="ref17">18</xref>
        ][
        <xref ref-type="bibr" rid="ref12">13</xref>
        ][
        <xref ref-type="bibr" rid="ref10">11</xref>
        ][
        <xref ref-type="bibr" rid="ref11">12</xref>
        ].
      </p>
      <p>In order to develop such kinds of systems, we need to
manage abstractions such as organizations, goals,
communications, messages, beliefs and so on. Thus we need a
domainspecific modeling language that includes these specific terms
as keywords. In addition, the methodological approach we are
developing may be facilitated by the creation of CASE tools
for supporting designers in each part of their work. However,
customization of existing tools for different application
domains is not always easy or even possible.</p>
      <p>
        Nowadays, several environments exist for DSMLs, some
of them are commercial such as Metaedit+ [
        <xref ref-type="bibr" rid="ref20">21</xref>
        ] and
Actifsource [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], some are open source and some others are
developed as plug-ins for popular IDEs such as Eclipse
Modeling Project [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and Microsoft’s DSL Tools [6]. In particular,
Eclipse is an open and flexible framework, providing the API
for adding functionalities perfectly integrated in the whole
working environment. Indeed, the Eclipse framework does not
support any specific task but the composition of a set of
plugins gives Eclipse a particular “configuration” for specific needs.
The Eclipse community is committed at providing plug-ins for
generating graphical modeling tool. Recently, the Graphical
Modeling Project reached good results by using two interesting
technologies: Graphiti [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and Graphical Modeling Framework
(GMF) [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. The distinctive feature in the Graphiti technology
is the employment of the Ecore metamodel for representing
all the elements and relationships at the base of the graphical
view1.
      </p>
      <p>
        Ecore metamodel is the modeling language used for
creating models in the diagram editor. In other words, the use
of a metamodel corresponds to the definition of a DSML.
Since in our work [
        <xref ref-type="bibr" rid="ref19">20</xref>
        ] we use metamodels for representing
the abstractions to be managed during design processes and
to be reported in the models, we have a grounded theory
for representing the domain abstractions for each kind of
application and upon which to construct a DSML.
      </p>
      <sec id="sec-3-1">
        <title>One of the objectives of our research is (i) to support designers in the early phase of goal oriented requirements analysis for BDI MASs and (ii) to provide a CASE tool in order to aid the design of the goal model.</title>
        <p>
          This line of research exploits the results of [
          <xref ref-type="bibr" rid="ref16">17</xref>
          ]. This is
part of a broader activity towards the creation of a complete
methodological approach for developing multi-agent systems
1We discuss our point of view on developing CASE tool with Graphiti and
Ecore in section IV, for more details see [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ].
&lt;&lt;SMMR&gt;&gt;
isPrecondition
&lt;&lt;SMMR&gt;&gt;
isPostcondition
1..* 1..*
&lt;&lt;SMME&gt;&gt; 1..*
        </p>
        <p>Action
0..* 1..*
&lt;&lt;SMMR&gt;&gt;
isPart_of</p>
        <p>1
0..*
&lt;&lt;SMME&gt;&gt; 0..*
0..* Predicate
&lt;&lt;SMMR&gt;&gt;
hasTarget
&lt;&lt;SMMR&gt;&gt;</p>
        <p>isInput
&lt;&lt;SMMR&gt;&gt;
executes
2 {same
subtype}
2 {same
subtype}
&lt;&lt;SMMR&gt;&gt;
Association
1
2
&lt;&lt;SMME&gt;&gt;
Ontology
Element
&lt;&lt;SMMR&gt;&gt;
Describes
&lt;&lt;SMMR&gt;&gt;
is_a
1
1..*
0..* &lt;&lt;SMME&gt;&gt;
0..* Concept
1..* &lt;&lt;SMME&gt;&gt;</p>
        <p>Position
&lt;&lt;SMME&gt;&gt;</p>
        <p>Object
1..*
&lt;&lt;SMME&gt;&gt;
Intentional
Action</p>
        <p>U&lt;n&lt;iSntMenMtiEo&gt;n&gt;al 0..* &lt;&lt;SMMR&gt;&gt;</p>
        <p>
          Action executes
to be implemented in the JACAMO framework [
          <xref ref-type="bibr" rid="ref8">9</xref>
          ]. The result
of [
          <xref ref-type="bibr" rid="ref16">17</xref>
          ] is a couple of design activities for identifying goals
from the ontological representation of the problem domain.
        </p>
        <p>In this paper, we complement this portion of the
methodology with a CASE tool. It has been developed as an Eclipse
plug-in, for supporting designers in these two activities
(Problem Domain Description and Goal Description). The Goal
Identification and Modeling Tool (GIMT) has been conceived
for being a MDE tool that automatically aids designers in some
of their activities.</p>
        <p>III.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>GOAL IDENTIFICATION APPROACH</title>
      <p>
        In the proposed methodology [
        <xref ref-type="bibr" rid="ref16">17</xref>
        ] ontologies are used
very early in the process. Goal Description is the preliminary
activity in which the analysts observe (and model) the strategic
objectives of the software system and of its environment.
This is done with a close iteration with another activity: the
Problem Domain Description. This activity is responsible of
creating a significant and transferable understanding of the
portion of the world where to introduce the software. The
collaboration of the two activities produces the elements of
the environment (together with their significant states) that
are collected and therefore used for formalizing user goals,
thus avoiding ambiguities, discovering tacit knowledge and
simplifying the comprehension among stakeholders.
Generate
Ontology
Elements List
      </p>
      <p>Initialize Problem</p>
      <p>Ontology</p>
      <p>Refine Problem
Ontology Description
System Analyst
Domain Expert</p>
      <p>In particular, the aim of Problem Domain Description
(PDD) activity is to identify and to describe the problem
domain elements and their relationships. This activity adopts
the metamodel depicted in Fig. 1. Main elements are: concept
(anything about which something is said), action (the cause
of an event by an acting concept) and predicate (a property, a
state or more generally a clarification to specify a concept). In
particular we use to distinguish intentional actions (implying
a kind of consciousness to act) from unintentional actions
(purely reactive), and objects (concepts that can perform only
unintentional actions) from positions (concepts with
intentions).</p>
      <p>
        This activity enables the Goal Description (GD) activity
that grounds on the ontology and exploits some recurrent
structures (Goal Patterns) that lead to identify goals (in terms
of actor, and state transitions) and dependencies among them.
The work product resulting from this activity is the Goal
diagram whose system metamodel is shown in Fig. 2. This
metamodel grounds on two main concepts: Hard Goal and
Soft Goal. A HardGoal [
        <xref ref-type="bibr" rid="ref9">10</xref>
        ][
        <xref ref-type="bibr" rid="ref15">16</xref>
        ] represents a strategic interest
of an actor. It is satisfied absolutely when its subgoals are
satisfied, and that satisfaction can be automatically established.
A SoftGoal [
        <xref ref-type="bibr" rid="ref9">10</xref>
        ][
        <xref ref-type="bibr" rid="ref15">16</xref>
        ] is a goal having no clear criteria for
deciding whether it is satisfied or not.
      </p>
      <sec id="sec-4-1">
        <title>Initialize Problem Ontology - a first draft of the</title>
        <p>problem ontology description diagram is prepared by
using the previous list and a specific notation for
representing each element of the diagram (the SMME
and SMMR in the metamodel);
Compose Goal Describe Goals</p>
        <p>List
&lt;&lt;mandatory,
input&gt;&gt;
&lt;&lt;mandatory,</p>
        <p>input&gt;&gt;
&lt;&lt;mandatory,
output&gt;&gt;
Goal Patterns</p>
        <p>Goal List</p>
        <p>Initialize Goal
diagram</p>
        <p>Design Goal
Diagram
&lt;&lt;mandatory,
c output&gt;&gt;
Goal Diagram</p>
      </sec>
      <sec id="sec-4-2">
        <title>Refine Problem Ontology Description - it is a refine</title>
        <p>
          ment of the POD, by analyzing the the underlined
Problem Statement. The final version includes
relationships among ontology elements;
In the Goal Description Activity, tasks are:
Compose Goal List - this is the first activity for
identifying goals, starting from the POD diagram. The Goal
Patterns document is used for searching patterns in the
POD diagram by following the guidelines illustrated
in [
          <xref ref-type="bibr" rid="ref16">17</xref>
          ];
Describe Goals - here the description on each goal is
completed by describing the elements a goal is
composed of: goal type, name, state, who is responsible
for the goal and dependencies;
        </p>
      </sec>
      <sec id="sec-4-3">
        <title>Initialize Goal Diagram - a first draft of the goal</title>
        <p>diagram is prepared by using the previous goal list
and a specific notation for representing each element
of the diagram;
Design Goal Diagram - it provides a structured
description of the goals, their dependencies and the
positions responsible for goal achievement, by using
a specific notation.</p>
        <p>The advantage of this methodological approach is
correlating goals with the corresponding portion of textual
requirements, thus supporting an iterative approach and a future
evolution of the system. In order to support the designer’s work
during the goal identification phase, we developed a MDE tool,
as an Eclipse plug-in, for which a specific modeling language
has been created. This tool is introduced in the next section.</p>
        <p>IV.</p>
        <p>GOAL IDENTIFICATION AND MODELING TOOL</p>
        <p>
          The Goal Identification and Modeling Tool (GIMT) is a
CASE tool for supporting designers in performing all the tasks
of the Problem Domain Description and Goal Description
activity (see Fig. 3) for the representation of system requirements
and the domain formalization, as proposed in [
          <xref ref-type="bibr" rid="ref16">17</xref>
          ].
        </p>
        <p>GIMT has been realized as an Eclipse plug-in by using
the Eclipse Modeling Framework (EMF) and Graphiti. It
implements the Domain Specific Modeling Language we defined
in order to create the models for representing the problem
ontology and the goal identification.</p>
        <p>The key element for the implementation of GIMT is the
Model definition. The EMF provides a modeling and code
generation framework for Eclipse applications based on a
layered structure for data models. The information type of the
sets of model instances is defined in a so-called core model,
corresponding to metamodel in the Essential MOF (EMOF).
Ecore is the metamodel adopted for core models. It contains
the following elements: EPackage, EClass, EDataType,
EAttribute and EReference.</p>
        <p>
          Usually, in our work we use a system metamodel for
formalizing the definition of all the elements and
relationships, and for representing constraints on the enactment of
design processes or part of them. Examples of metamodels
are reported in Figures 1 and 2. They respectively describe the
Problem Domain Description and Goal Description activities.
The metamodelling techniques [
          <xref ref-type="bibr" rid="ref19">20</xref>
          ] are based on a
metamodelling layered architecture, that follows the principles of MOF
and OMG [
          <xref ref-type="bibr" rid="ref14">15</xref>
          ]. As anticipated before, constructing plug-in
in Eclipse implies the definition of models that are based on
Ecore. Therefore we map our metamodel elements (SMME
and SMMR) on EClasses and the relations on ERelations, as
specified in the Ecore notation. Moreover, starting from an
EMF model, a set of Java classes have been generated for the
model.
        </p>
        <p>Summarizing, GIMT is based on two metamodels, one for
each supported diagram, (see Fig. 1 and Fig. 2) and on a
graphical notation to represent the specific design elements. GIMT
has been conceived to give the user the possibility to create
two different diagrams for representing the problem domain
ontology and the goal model according to the guidelines we
previously introduced.</p>
        <p>In the following subsections we present the adopted
notation and its usage into the specific GIMT diagrams.</p>
      </sec>
      <sec id="sec-4-4">
        <title>A. Diagrams and Notation</title>
        <p>GIMT supports the Problem Ontology Description and the
Goal diagrams. The graphical notation defined for our DSML
and implemented in these diagrams is shown in Fig. 4 and it
refers to the abstractions we use in our metamodels (see Fig.
1 and Fig. 2).</p>
        <p>As regard the Problem Ontology Description diagram, it
adopts the notation (see the left side of Fig. 4) defined for</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>2Detailed definitions can be found in [17].</title>
      <p>representing the concrete elements and the relationships of the
Problem Ontology Description Metamodel (see Fig. 1).</p>
      <p>POD diagram elements - Each element of a POD diagram
is represented by means of a graphical notation and a specific
stereotype. In GIMT, each element is also colored differently
to easily distinguish it, especially in large diagrams. Elements
in a POD diagram may be:</p>
      <sec id="sec-5-1">
        <title>Intentional and Unintentional Action that are repre</title>
        <p>sented as a cut corners rectangle with an Action Name.
They are differentiated by means of the stereotype.
They may be also connected to other elements such
as Object, Position and Predicate.</p>
        <p>Object is represented as a round corner rectangle with
an Object Name. Object may be input or target of an
action. It may be connected with predicates or other
objects.</p>
        <p>Position is represented by a simple rectangle with a
Position Name. A position may be connected only to
actions and other positions.</p>
        <p>Predicate is depicted as a little sheet with a Predicate
Name. It may be connected with Position, Action and
Object.</p>
        <p>POD diagram relationships - The elements in a POD
diagram can be related to each other by different kinds of
relationship, whose semantic is quite intuitive2. Relationships
in a POD diagram may be:</p>
        <p>Association that is represented as usual by an arrow.
Elements in the diagram can be logically related with
each other by using Associations.</p>
        <p>Is A is represented by the traditional symbol for
generalization. Is-a is the relationship between an
ontological element and one of its refinements.</p>
        <p>Part Of is represented by the traditional symbol for
composition. This relationship represents the
wholepart relationship among ontological elements.</p>
        <p>The Goal diagram adopts the notation (see the right side
of Fig. 4) defined for representing the concrete elements and
the relationships of the Goal Description Metamodel (see Fig.
2).</p>
        <p>
          Goal diagram elements - The graphical notation of the
Goal diagram is derived from a well-known graphical notation
[
          <xref ref-type="bibr" rid="ref9">10</xref>
          ]. Elements in a Goal diagram may be:
        </p>
        <p>A Hard Goal is represented by an ellipse with a Name.
It is always connected with at least one Position. It can
be also related with other Hard Goals and Soft Goals.
A SoftGoal is depicted as a cloud with a Name. It can
be related to Hard Goals.</p>
        <p>A Position is referred to the same element described
in the POD diagram, but in this diagram it is depicted
as a sticky man.</p>
        <p>Goal diagram relationships - The elements of a Goal
Diagram can be logically related to each other by using the
following kinds of relationships:</p>
        <p>Aggregate is the only relationship that can exist
between Positions and Goals. Its notation looks like the
UML “part-of” relationship: a line starting with an
empty diamond.</p>
        <p>
          Contribute that is the relationship that can relate
HardGoal with SoftGoal and vice-versa. There are
four different types of contribution: positive, strongly
positive, negative and strongly negative [
          <xref ref-type="bibr" rid="ref9">10</xref>
          ]. Each one
is depicted with its own dedicated notation, as shown
in Fig. 4.
        </p>
        <p>Depend relates two different goals. It may be an
Internal Dependency or an External Dependency. Notations
are respectively a simple arrow and an arrow with
dashed line.</p>
        <p>Generalize, very similar to the UML inheritance, it
specifies a relationship between Positions, in which
specialized positions inherit features from the general
position.</p>
        <p>Decompose relates two Goals. There are two kinds
of decomposition: AND and OR. Both of them are
depicted as an arrow and a specific symbol (see Fig.
4).</p>
        <p>Eclipse EMF makes the domain concepts explicit. It
distinguishes between model and metamodel and uses the
metamodel for ruling the structure of a model. The Ecore
metamodel is the part of the EMF metamodel dedicated to
define the following elements:</p>
        <p>EClass represents a class, with zero or more attributes
and zero or more references.</p>
      </sec>
      <sec id="sec-5-2">
        <title>B. Ecore Metamodel Mapping</title>
        <p>
          Adopting a design process for developing a system
generally means managing a set of abstractions (concepts of
the domain) that may be instantiated in one ore more work
products. In this work we use system metamodelling as one
of the fundamental elements for the construction of CASE
tools. In particular, our technique [
          <xref ref-type="bibr" rid="ref19">20</xref>
          ] prescribes that a system
metamodel is composed of:
        </p>
        <p>Element (SMME) is a construct of the metamodel that
can be instantiated into elements of the system model;
Relationship (SMMR) is a construct used for
representing the existence of a relationship between two
(or more) instances of elements. For instance, the
aggregation relationship between two instances of
the element class is an instance of the “association”
SMMR.</p>
        <p>Attribute (SMMA) is a construct used for adding
properties to SMMEs.</p>
        <p>Operation (SMMO) is a construct used for describing
additional proprieties of an SMMEs.</p>
        <p>EAttribute represents an attribute which has a name
and a type.</p>
        <p>EReference represents one end of an association
between two classes. It has a flag to specify if it
represents a containment and the cardinality.</p>
        <p>EDataType represents the type of an attribute, e.g. int,
float or java.util.Date.</p>
        <p>For space reasons we do not provide further details about
how to create an EMF editor plug-in but it is worth to note that
the mapping is one to one in most of the cases: any element of
the system metamodel has a direct counterpart with an element
of the Ecore metamodel. Therefore, it is pretty straight to
obtain an Ecore metamodel starting from a system metamodel
(like those in Fig. 1 or Fig. 2).</p>
      </sec>
      <sec id="sec-5-3">
        <title>C. Using GIMT</title>
        <p>GIMT provides three kinds of editor: a textual editor for
manipulating the problem statement and two diagram editors
for modeling respectively the Problem Ontology Description
(POD) diagram and the Goal diagram. Moreover, GIMT has
been endowed with some functionalities that allow to
automatically perform transitions between the tasks of our process.</p>
        <p>This section aims at describing how to employ GIMT as a
CASE tool for the portions of design process described in Fig.
3. The Conference Management System (CMS) case study3
has been used for exemplifying the description.</p>
        <p>At this stage it should be clear that the flow of work
described in Fig. 3 is logically divided into two main portion of
work: the Problem Domain Description activity and the Goal
Description activity. The first devoted to deliver POD diagram
in its final version and the second resulting in the creation
of the Goal diagram. The GIMT tool aims at supporting the
designer in the creation of these two work products.</p>
        <p>As it can be seen in Fig. 3, the first three tasks of the
Problem Domain Description Activity: Highlight Keywords,</p>
      </sec>
      <sec id="sec-5-4">
        <title>Generate Ontology Element List and Initialize Problem On</title>
        <p>tology. These have to be performed following the guidelines
briefly introduced in Section III. GIMT provides a text editor
for loading or creating textual documents (such as a Problem
Statement), in order to make easy the use of our guidelines.
It also comes with particular editing functionalities that allow
the identification of ontology elements.</p>
        <p>
          3A complete description of the CMS case study may be found in [
          <xref ref-type="bibr" rid="ref21">22</xref>
          ].
        </p>
        <p>
          The Document is the key element of the Problem Statement
Editor (PSE), shown in Fig. 5. In a Document the designer can
highlight words thus identifying specific ontological elements
(such as Intentional Action, Position and so on) according
to our guidelines [
          <xref ref-type="bibr" rid="ref16">17</xref>
          ]. For instance in the CMS problem
statement (see upper side of Fig.6) the words authors and
manuscript have been identified respectively as a Position
and an Object. Then, these ontological elements can be
automatically exported into a POD diagram where they will be
represented according to their notation (see lower side of Fig.
6).
        </p>
        <p>Fig. 6 represents the portion of the work devoted to produce
the POD diagram in its initial version (see Fig. 3). In fact, in
the upper part of Fig.6, the words highlighted with appropriate
labels correspond to ontological elements that are added to a
list (the Element List4 work product). Then, elements may be
exported from the list to be added to the Problem Ontology</p>
      </sec>
      <sec id="sec-5-5">
        <title>Description diagram [initial] for its refinement.</title>
        <p>Moreover, the GIMT Problem Statement Editor provides
also functionality for grouping words to be identified as a
unique ontological element by means of a Connection. A
Connection is a link that allows to relate also two
nonconsecutive text portions. For instance, in the CMS case study
(see upper side of Fig. 6) we want to identify the words
accepting and rejecting as the same Intentional Action. To do
this, we firstly select the two words and then we relate them by
means of a Connection (represented as a dashed arrow). As a
consequence, GIMT will automatically refers them as a unique
4The Element List is not clearly visible to the designer. It maintains
information about ontological elements and it may be exported by the tool.
ontological element named AcceptingRejecting (see lower side
of Fig. 6). Hence, it is worth to point out that the Initialize
Problem Ontology task can be performed automatically with
GIMT by means of an exporting functionality implemented in
the Problem Statement Editor.</p>
        <p>In order to complete the Problem Domain Description
Activity, the last task is the Refine POD (see Fig. 3). GIMT is
also endowed with an appropriate diagram editor that allows to
handle the structural aspect of problem ontology elements by
organizing them and by adding relationships or other elements.
The upper side of Fig. 7 shows the POD diagram for the CMS
case study. This diagram has been obtained by refining its
initial version (see the lower side of Fig. 6) derived from the
previous task. The POD editor allows to edit a POD diagram,
by managing elements imported from the previous phases, but
also adding new ontological elements and relationships. For
instance, the Position author, the Intentional Action submit
and the Object manuscript previously identified (lower side of
Fig. 6) have been opportunely related (top/right side of Fig.
7).</p>
        <p>The Refine POD task completes the Problem Domain
Description activity and the POD diagram [final] is the resulting
artifact. So far, the second activity of our process can start
(Fig. 3): the Goal Description. As our guidelines prescribe, the
first task is Compose Goal List that identifies specific patterns
from the POD diagram. Fig. 8 shows an example of a common
pattern5 that can be discovered in a POD diagram. It is worth
to note that a pattern is characterized by compartments: i)
a generic schema of the ontological elements and ii) the</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>5Further detail of patterns can be found in [17].</title>
      <p>description of goal information that can be extracted if the
pattern matches (goal type, goal name and so on). For instance,
the ontological elements triple, author, submit and manuscript
in the upper side of Fig. 7 corresponds to the pattern shown in
Fig. 8. The POD editor supports this task, by allowing multiple
selection of elements, thus generating the goal related to the
specific pattern and adding it to the goal list. A thicker red
border is used to highlight the elements already selected by
the designer.
information(see Fig. 9): Goal Type=Achieve, Name= To submit
manuscript, State= submitted manuscript, Who= author.</p>
      <p>Pattern N°3</p>
      <p>Finally, GIMT supports the Design Goal Diagram task by
providing a Goal Diagram Editor. Previously created goals
may also be automatically exported in a goal diagram. The
functionality implemented in the Goal Diagram Editor allows
the designer to describe more in detail the dependencies
between the imported goals and the Positions that perform
them. For instance, by applying the pattern of Fig. 8, another
goal can be extracted from the POD diagram of the CMS case
exesctuutedsy: To maketarrgeevtiew (Fig. 7). The goal To make review and
Position1 the goal ATcot submit maPnousisticonr2ipt in the initial version of the Goal</p>
      <p>
        Diagram were not related. By reasoning on the diagram with
Goal Information
Goal type: Achietvhee support of our guidelines, the designer is able to discover a
Name: To+ &lt;ActD_naempee&gt;n+d&lt;ePnocsiytiona2m_noamneg&gt; these two goals and to refine the diagram.
State: &lt;Act_name&gt; + 'ed' (&lt;Position2_name&gt;)
Who: Position1 is resIptonsible for achievninogttihneggoatlhat our process is iterative. Thus, at
Dependency: None is worth
PreCondition: None
Note: it may also be Position1=Position2
Fig. 8. Pattern extracted from [
        <xref ref-type="bibr" rid="ref16">17</xref>
        ].
      </p>
      <p>The POD editor also provides a functionality in order to
automatically perform the second task of the Goal Description
activity, that is Describe Goals. This task consists in setting
the goal information according to the identified pattern. A
specific form (see Fig.9) allows to add all the information that
is not automatically settable, such as the information about
the Dependency. For instance, the triplet previously identified
corresponds to a goal with the following, automatically set,
Fig. 9. The Goal Information frame.
each iteration it is important to trace (forward and backward)
the ontology model with the goal model. GIMT maintains
a traceability of the elements during model transformation.
Each diagram of GIMT, in fact, uses a single persistence
file model. A typical scenario that can occur is, for example,
the deletion of a goal from the goal diagram. In this case,
the linked ontological elements will be affected. The tool
automatically removes the ticker border in the POD diagram.
This functionality allows also to create a direct link between a
goal and portion of problem statement from which it derives.
This is important when conflicting or inconsistent goals are
discovered. Thus, the possibility to go back to the textual
description that originated the problem may help to solve the
inconsistency.</p>
      <p>CONCLUSIONS</p>
      <p>
        GIMT has been designed and developed in order to
overcome the limitations of the manual approach proposed in [
        <xref ref-type="bibr" rid="ref16">17</xref>
        ]
especially when it has to be applied to large size problems.
Such an approach grounds on two main models (an ontology
and a goal model) and on a set of guidelines allowing model to
model transformations. Hence, GIMT has been conceived as a
CASE tool based on a DSML opportunely defined to support
the goal oriented requirement analysis proposed in [
        <xref ref-type="bibr" rid="ref16">17</xref>
        ]. It has
also been endowed with some functionalities that support the
designer in applying the guidelines to perform the activities
of the approach (i.e: the Problem Domain Description and the
Goal Description activity). Moreover, in some cases GIMT
automatically executes some tasks of the process.
      </p>
      <p>
        The work illustrated in [
        <xref ref-type="bibr" rid="ref16">17</xref>
        ] is a part of a broader work
towards the creation of a complete methodological approach
for developing multi-agent systems to be implemented in the
JACAMO framework. Thus, new models will be included in
order to face other design issues. Hence, we decided to develop
GIMT as an Eclipse plug-in by using the Graphity framework,
thus ensuring us a rapid development and integration of new
diagram editors and a great flexibility to extend our DMSL.
      </p>
      <p>We found in Ecore a very easy and fast way to produce
DSML due to its almost one to one mapping with our
metamodeling techniques.
[6] Microsoft visual studio sdk including domain-specific language tools,
available at http://msdn.microsoft.com/en-us/library/bb126259.aspx.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Actifsource</surname>
          </string-name>
          , available at http://www.actifsource.com.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>Eclipse</given-names>
            <surname>Modeling Project</surname>
          </string-name>
          , available at http://www.eclipse.org/modeling/.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>EMF</given-names>
            <surname>- Eclipse Modeling</surname>
          </string-name>
          Framework, available at http://www.eclipse.org/modeling/emf/.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>GMF</given-names>
            <surname>- Eclipse Graphical</surname>
          </string-name>
          Modeling Framework, available at http://www.eclipse.org/modeling/gmp/.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Graphiti - Graphical Tooling</surname>
          </string-name>
          Infrastructure, available at http://www.eclipse.org/graphiti/.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>U.</given-names>
            <surname>Aßmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Zschaler</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Wagner</surname>
          </string-name>
          . Ontologies,
          <article-title>meta-models, and the model-driven paradigm</article-title>
          .
          <source>Ontologies for Software Engineering and Software Technology</source>
          , pages
          <fpage>249</fpage>
          -
          <lpage>273</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>C.</given-names>
            <surname>Atkinson</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.</given-names>
            <surname>Kuhne</surname>
          </string-name>
          .
          <article-title>Model-driven development: A metamodeling foundation</article-title>
          .
          <source>IEEE Software</source>
          ,
          <volume>20</volume>
          (
          <issue>5</issue>
          ):
          <fpage>36</fpage>
          -
          <lpage>41</lpage>
          , September/
          <year>October 2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [9]
          <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>Multiagent oriented programming with jacamo</article-title>
          .
          <source>Science of Computer Programming</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>P.</given-names>
            <surname>Bresciani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Perini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Giorgini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Giunchiglia</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Mylopoulos</surname>
          </string-name>
          . Tropos:
          <article-title>An agent-oriented software development methodology</article-title>
          .
          <source>Autonomous Agents and Multi-Agent Systems</source>
          ,
          <volume>8</volume>
          (
          <issue>3</issue>
          ):
          <fpage>203</fpage>
          -
          <lpage>236</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>M.</given-names>
            <surname>Cossentino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Chella</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Lodato</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Lopes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Ribino</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V.</given-names>
            <surname>Seidita</surname>
          </string-name>
          .
          <article-title>A notation for modeling jason-like bdi agents</article-title>
          .
          <source>In Complex, Intelligent and Software Intensive Systems (CISIS)</source>
          ,
          <year>2012</year>
          Sixth International Conference on, pages
          <fpage>12</fpage>
          -
          <lpage>19</lpage>
          . IEEE,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>M.</given-names>
            <surname>Cossentino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Lodato</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Lopes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Ribino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Seidita</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Chella</surname>
          </string-name>
          .
          <article-title>A uml-based notation for representing mas organizations</article-title>
          .
          <source>In WOA</source>
          , pages
          <fpage>133</fpage>
          -
          <lpage>139</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>M.</given-names>
            <surname>Cossentino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Lodato</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Lopes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Ribino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Seidita</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Chella</surname>
          </string-name>
          .
          <article-title>Towards a design process for modeling MAS organizations</article-title>
          . In Massimo Cossentino, Michael Kaisers, Karl Tuyls, and Gerhard Weiss, editors,
          <source>Multi-Agent Systems</source>
          , volume
          <volume>7541</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>63</fpage>
          -
          <lpage>79</lpage>
          . Springer Berlin Heidelberg,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>S.</given-names>
            <surname>Kelly</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.P.</given-names>
            <surname>Tolvanen</surname>
          </string-name>
          .
          <article-title>Domain-specific modeling: enabling full code generation</article-title>
          . John Wiley &amp; Sons,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [15]
          <article-title>OMG meta object facility</article-title>
          ,
          <source>version 2.4</source>
          .2, april
          <year>2014</year>
          . doument formal/2014-04-03, available at http://www.omg.org. http://www.omg.org/technology/documents/formal/mof.htm.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>J.</given-names>
            <surname>Mylopoulos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Chung</surname>
          </string-name>
          , and
          <string-name>
            <given-names>E.</given-names>
            <surname>Yu</surname>
          </string-name>
          .
          <article-title>From object-oriented to goaloriented requirements analysis</article-title>
          .
          <source>Communications of the ACM</source>
          ,
          <volume>42</volume>
          (
          <issue>1</issue>
          ):
          <fpage>31</fpage>
          -
          <lpage>37</lpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>P.</given-names>
            <surname>Ribino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Cossentino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Lodato</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Lopes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Sabatucci</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V.</given-names>
            <surname>Seidita</surname>
          </string-name>
          .
          <article-title>Ontology and goal model in designing bdi multi-agent systems</article-title>
          .
          <source>In WOA@AI*IA, Proceedings of the 14th Workshop ”</source>
          From Objects to Agents”
          <article-title>co-located with the 13th Conference of the Italian Association for Artificial Intelligence (AI*IA</article-title>
          <year>2013</year>
          ), Torino, Italy, volume
          <volume>1099</volume>
          , pages
          <fpage>66</fpage>
          -
          <lpage>72</lpage>
          , December 2-3
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>P.</given-names>
            <surname>Ribino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Lodato</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Lopes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Seidita</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Hilaire</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Cossentino</surname>
          </string-name>
          .
          <article-title>A norm-governed holonic multi-agent system metamodel</article-title>
          .
          <source>In Agent Oriented Software Engeneering (AOSE)</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>D.C.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          .
          <article-title>Model-driven engineering</article-title>
          .
          <source>Computer</source>
          ,
          <volume>39</volume>
          (
          <issue>2</issue>
          ):
          <fpage>25</fpage>
          -
          <lpage>31</lpage>
          , Feb.
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>V.</given-names>
            <surname>Seidita</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Cossentino</surname>
          </string-name>
          . Metamodeling:
          <article-title>Representing and modeling system knowledge in design processes</article-title>
          .
          <source>In In Proceedings of the 10th European Workshop on Multi-Agent Systems, EUMAS 2012</source>
          , pages
          <fpage>103</fpage>
          -
          <lpage>117</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>J.P.</given-names>
            <surname>Tolvanen</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Rossi</surname>
          </string-name>
          . Metaedit+
          <article-title>: defining and using domainspecific modeling languages and code generators</article-title>
          .
          <source>In OOPSLA '03: Companion of the 18th annual ACM SIGPLAN conference on Objectoriented programming, systems, languages, and applications</source>
          , pages
          <fpage>92</fpage>
          -
          <lpage>93</lpage>
          , New York, NY, USA,
          <year>2003</year>
          . ACM Press.
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>F.</given-names>
            <surname>Zambonelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Jennings</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Wooldridge</surname>
          </string-name>
          .
          <article-title>Organizational rules as an abstraction for the analysis and design of multi-agent systems</article-title>
          .
          <source>Journal of Knowledge and Software Engineering</source>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>