# Towards Agent Organizations Interoperability: A Model Driven Engineering Approach
## 4 Abstract Conceptual Structure of Organizational Models
### Functional Dimension
#### 4.1.1 Graphs of Hierarchical Plans and Goal Relationships  
In essence, the general pattern can be characterized as directed graphs where:  
* The nodes correspond to _goals_ (in MOISE+), _operators_ (in STEAM), _objectives_ (in OPERA) or _tasks_ (in TAEMS), to be achieved or done by the agents in an organization;
* the edges represent:
* Either the acyclic decomposition of a _goal_ (_operator_, _objective_ or _task_) into _subgoals_ (_suboperators_, _subobjectives_ or _subtasks_), giving rise to the notion of _hierarchical plans_,
* or binary relationships between _goals_ (_operators_, _objectives_ or _tasks_), like the _depends_ relation in STEAM or the _non-local effects_ in TAEMS.  
Further, in each graph there is one _root node_ that corresponds to a primary goal whose planning and future achievement is prescribed by the structure of the graph. Such graphs of hierarchical plans and goal relationships receive the names of \"task group\" in TAEMS, \"operator hierarchy\" in STEAM, \"social scheme\" in MOISE+ and \"role objective definition\" in OPERA.  
In Figure 2, the conceptual pattern identified in the functional dimension is represented by means of an Ecore metamodel. The classes and references composing the metamodel are described in Table 2. Additional contextual constraints are presented in Table 3. These are written in OCL and formalize the static semantics of the metamodel (conceptual pattern).  
Figure 2: Similar functional specifications written in TAEMS, OPERA, STEAM and MOISE+, which prescribe how an agent is supposed to proceed for buying a product in an electronic market (example taken from [47]). The class diagram (Ecore metamodel) in the center of the figure represents the conceptual pattern identifiable in the various approaches of functional modeling. The dotted arrows detail what concepts are captured by what classes of the metamodel.  
\begin{table}
\begin{tabular}{l l} \hline \hline
**Class** & **Description** \\ \hline FSpec & Represents the concept of _functional specification_, i.e., an organizational specification \\  & restricted to the functional dimension. \\ GoalDef & Part of a functional specification that represents the definition of a _goal_. Abstracts the concepts of _task_ in TAEMS, _operator_ in STEAM, _goal_ in MOISE+, or _objective_ in OPERA. \\ HPlanDef & Part of a functional specification that represents the definition of a graph of _hierarchical plans_ and _goal relationships_. HPlanDef is characterized by a unique _root goal_ (the GoalDef referenced by HPlanDef::rootGoal), one or more _goal decompositions_ (referenced by HPlanDef::goalDec) and zero or more _goal relationships_ (referenced by HPlanDef::goalRel). Abstracts the concepts of _task group_ in TAEMS, _operator hierarchy_ in STEAM, _social scheme_ in MOISE+ and _role objective definition_ in OPERA. \\ GoalDec & Part of a HPlanDef graph that represents the general concept of _goal decomposition_, i.e., the decomposition of one major _goal_(GoalDec::goal reference) into one or more minor direct _subgoals_(GoalDec::subGoal reference). Abstracts the relationship of _subtasks_ or _local effects_ in TAEMS, the concept of _plan_ in STEAM and MOISE+, and the _subobjective definitions_ in OPERA. \\ GoalRel & Part of a HPlanDef graph that represents _goal relationships_ directed from one _source goal_) \\ GoalRel::source reference) to one _target goal_ (GoalRel::target reference. Abstracts the concept of _non-local effects_ (_facilitates_, _enables_, etc.) in TAEMS and the _depends_ relation in STEAM. \\ \hline \hline \end{tabular}
\end{table}
Table 2: Functional specification pattern: Classes description.