Seagent Development Environment

SEAGENT Development Environment 2.4.1 Starter Guide

Contents

  1. Introduction

  2. Download & Installation

  3. Getting Help

  4. Gettting Started

    1. Creating a new SEAGENT Project

    2. Modeling an Organization

    3. Programming Agent Plans

    4. Generating Ontology Documents and Action Class Templates

    5. Running an Agent Platform and Requesting a Goal From an Agent

  1. Further Readings

1.Introduction

SEAGENT is designed as two parts which are Runtime Environment and Development Environment. The Runtime Environment contains the Java libraries that constitutes the SEAGENT core framework. On the other hand, the Development Environment is implemented as an Eclipse Plugin to facilitate the agent development.

SEAGENT aims at developing multi-agent organizations that are composed of Semantic Web Agents. A Semantic Web Agent is a kind of agent sensing resources declared within ontologies in the semantic web, communicating with the other agents using these ontologies as vocabulary, and deliberating its goals through the ontologies in its knowledge-base. Such an integration with the semantic web requires enhancing the natural agent's primitive artifact set with the concepts of semantic web ontology languages. But this enhancement makes the development of the agents more hazardous than it already is. To facilitate the development of the semantic web agents, we built a model driven environment that realizes the Model Driven Architecture.

SEAGENT development environment (SDE) facilitates modeling SEGENT agent organizations by means of roles, goals, plans and protocols. Plan and protocol development for SEAGENT agents is done easily in the environment. SEAGENT artifact set is wholly composed of OWL ontologies. Some agents in the developed organization can be tested using the SEAGENT Platform Plugin.

2.Download & Installation

The eclipse plugin for SDE can be downloaded via the SEAGENT eclipse update site. Eclipse Helios (3.6) compatible SDE 2.4.1 update site is:

http://seagent.ege.edu.tr/etmen/releases/site/archive/2.4.1/

Copy the update site URL to the clipboard to use during the installation:

    1. Help > Install New Software from the menu...

  1. Add the SEAGENT Update Site URL.

  1. Select the added site from the drop down. If not immediately available in the list, cancel and re-open “Help > Install New Software”...

  1. From the available features to install, select SEAGENT Development Environment and SEAGENT Runtime Environment features. Then proceed to the installation by clicking the “Next >” button.

  1. After the installation completes, you are presented with a choice of applying the changes or restarting. At this point, you must restart. Press the 'Yes' button.

After installation, you can begin to explore SEAGENT.

3.Getting Help

The SEAGENT Environment Eclipse Plugin has been developed to support agent developers who wish to use SEAGENT. For any questions/issues, the best place to get answers and help is our user group . Visit to read the asked questions and to mail us.

SEAGENT Users Group:  http://groups.google.com.tr/group/seagent-users

E-Mail Address for the user group:  This email address is being protected from spambots. You need JavaScript enabled to view it. This email address is being protected from spambots. You need JavaScript enabled to view it.

4.Getting Started

SEAGENT Development Environment Plugin is used to develop muti-agent platforms with SEAGENT framework and try the developed platforms easily in Eclipse environment.

The following sections outline how to create a SEAGENT project, model a simple agent organization, write simple agent plans for the agents in the organization and run an agent platform to test the agents over a Hello World application.

    1. Creating a New SEAGENT Project

To create a project, go to File > New > Project. If the plugin has been installed correctly, then there should be aSEAGENT category of project and if you open it, you should be able to create a new SEAGENT Project. The screenshot below shows the project selection dialog under the SEAGENT category.

Click on the "Next >" button. This leads you to a page to set the project name in the Project Creation Wizard, as seen in the figure below.

Once you click on the “Finish” button, a SEAGENT project is created. As can be seen in the figure below, this project provides SEAGENT runtime environment libraries in the classpath. It also contains a ‘model’ folder to put the visual models into and an ‘organization’ folder to put the ontologies of the developed artifacts.

You are now ready to start developing the SEAGENT application...

    1. Modeling an Organization

To create an organization model, open a new organization diagram through the File > New > Other. Select “Organization Model Diagram” under SEAGENT category and click “Next >” as seen in the figure below.

The following page shown in the snapshot below asks about the file name and the path of the visual file. We generally save them to the 'model' folder under the project. Proceed after specifying the file path.

In the next page, file path for the SEAGENT model file is asked. This is the document that contains all the elements of the organization such as roles, goals, behaviors. All the elements in the model are transformed to ontology documents in the following steps.

After finishing the wizard, a diagram that represents the organization opens. Actually, a problem domain is designed in this diagram. The organization is that problem domain, and the elements in the organization is the result of the requirement analysis. Using Organization Diagram, you can define roles in the organization, goals of the roles, and plans that fulfills the goals. Assignments between roles, goals and plans can be done. The plans can be implemented in HTN by double-clicking on the plan object and opening an HTN Plan Diagram.

Let’s go on designing a Hello World organization. Firstly, you must specify a name for the organization. To set name, right-click on the diagram and select ‘Show Properties View’ in the context menu.

This item opens the ‘Properties’ view when click on a visual object. You can set the values of the attributes of the objects from the Properties view. Set the ‘Name’ of the organization as ‘HelloWorldOrganization’ here.

Then, a role, HelloWorldRole, must be defined to be played by an agent. Click on the Role in the Palette under theElements category and then click anywhere on the diagram once to put the Role.

Roles have some goals to be achieved by an agent. In our simple Hello World application, HelloWorldRole has a goalSayHelloWorldGoal. To add this goal to the organization, click on the PerformGoal object in the Palette. Two types of goals are supported in this version of SEAGENT: Complex Goal and Perform Goal. Complex goals are design level elements that facilitates the requirement analysis. Complex goals are refined in two ways: And Refinement and OR Refinement. Performs goals represents direcly executable goals. They are achieved by a plan object. Plans objects can be associated to tasks such as action series of a planning language and web services. In this version of SEAGENT, plans are able to associate with an HTN behavior. (Please refer to other documents for more information about SEAGENT organization model.)

While modeling the organization by SEAGENT organization model, the editor gives directives about errors for the beginners. When you save the diagram or validate through Edit > Validate, the model is validated according to our rules. To see the error or warning messages, please open the Problems View through Window > Show View > Other > Problems. Those messages can also be seen on the objects in the diagram. It sometimes requires to select Validate inEdit menu to remove the warnings or errors. The difference between a Warning and Error is that you cannot generate the organization ontology with an error but generate with a Warning. Warnings indicate possible run-time problems while errors indicate wrong models.

After adding SayHelloWorldGoal, we must associate it with the role. To do this, click on the Goal Assignment under theLinks category of the Palette on the right side, and then hold on the HelloWorldRole and drag the line to the SayHelloWorldGoal. You assigned the goal to the role by doing this.

The last element of that simple organization is a plan that fulfills the goal. Put a plan object from the Palette and give its name as SayHelloWorldPlan. Assign the plan to the SayHelloWorldGoal by constructing a Plan Assignment relationship which stands under the Links category of the Palette. The warning on the plan indicates that the plan is empty which cause a problem at run-time. In the next section, an HTN behavior is designed for this plan.

    1. Programming Agent Plans

Behaviors of SEAGENT agents are programmed via Hierarchical Task Network (HTN) plans. An HTN plan can be created by double-clicking to a plan object in the organization model as mentioned in the previous section.

For Hello World agent, a simple behavior can be specified. To do this, put a Behavior to the diagram from the Palette and set the name to BHSayHelloWorld. Behavior is under the Task category in the Palette.

Behavior must have subtasks to act for the behavior. Add an Action from the palette to the diagram and set the nameACSayHello.

Actions are always subtasks of some behaviors. To define the subtask relationship between behavior and action create a Subtask Link from BHSayHelloWorld and ACSayHello. It is under the Link category in the Palette.

The HTN Plan Editor also shows messages like Organization Model Editor. Those messages are prepared to lead you to draw valid plans.

    1. Generating Ontology Documents and Action Class Templates

After you complete the organization model and HTN plans, ontology documents of the organization and plans must be generated. As mentioned before, knowledge of the agents are defined in the OWL ontologies, and the development environment generates these ontologies from the visual models.

To generate the organization ontology, right-click on the diagram and select the Generate Organization Ontology. The generated ontology document is directly put into the 'organization' folder. Apply this operation for the Hello World organization model.

After a plan is designed completely, two parts are generated. First one is the plan ontology document as done for the organization ontology. When right-clicked on the plan diagram, the 'Generate HTN' menu can be seen in the context menu. 'Ontology' option generates the plan Ontology and puts the plan ontology to the ‘organization’ folder. For our Hello World example, do this on the SayHelloWorldPlan.

The other generated part is the action class templates. In SEAGENT, actions are implemented with Java classes. The 'Action Classes' option in the ‘Generate HTN’ menu generates all class templates of the actions in the plan to the given output directory.

At that point, if you gave 'packaged' names to the activation classes, you must move your classes to the appropriate packages. In the scope of our example, select ‘src’ folder in HelloWorldOrganization project.

After all ontologies and classes are generated, the project will be seen as below.

Instead of generating ontologies one by one, “Generate All Ontologies” feature can be used. This feature can be found under the SEAGENT menu when right-clicked on a SEAGENT project. Although, it generates ontology documents for all artifacts, action classes must be generated for each plan as described above.

Action class templates have an method which is indicated by ExecutionMethod annotation that is filled to apply required business logic. Fill this method in the ACHelloWorld as below.

/**

* Action class of ACSayHello.

*/

  1. Action {

...

 /**

* Execution method.

*/

 @ExecutionMethod

  1. execute() {
  2. ( "Hello World from SEAGENT agent!" );

}

}

    1. Running an Agent Platform and Requesting a Goal From an Agent

After a SEAGENT project is built, it can be tested via SEAGENT Platform Plugin. Platform plugin comes within the Development Environment. You can see the action buttons in the toolbar and Seagent Platform in the menus.

To start a new platform, select Seagent Platform > Start Platform. Give a name to the platform from the opened input dialog.

A multi-agent platform represents a domain. So, names of the platforms are given similar to domain names. After clicking on the “OK” button, a progress window is seen.

Then, the platform is created and the SEAGENT Platform Console is opened. You can also see some messages at the bottom of the IDE. SEAGENT Platform Console shows the logs in the Eclipse environment. You are able to follow the execution of the agent platform and agents from those logs.

Starting a platform means that creating an Agent Management System (AMS) in the platform and an Agent Communication Channel (ACC) for it. AMS and ACC are implemented as agents in SEAGENT and responsibilities of them are designed in a MAS organization model.

To create a new agent in the platform, go to Seagent Platform > New Agent. Give name to the agent and select the SEAGENT project. SEAGENT project is the organization knowledge of the created agent.

After creating agents, you are able to request a goal from an agent. For this purpose, open Seagent Platform > Trigger Agent Goal and select the agent to request, the role to play and the goal of the role to be achieved.

Click “Finish” and look at the logs in the SEAGENT Platform Console if something wrong happens. You can also access the recorded log files in the “tmp” folder under your user home directory.

5.Further Readings

  • Agent Communication Example

  • SEAGENT Deployment Documentation

    • Platform Initializer

    • Agent Connector

  • Organization Model Advanced

  • Interaction Protocols Advanced

  • HTN Planning Advanced

    • Action Classes

    • Import Behavior