<!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>A Planner for Implementing Semantic Service Agents based on Semantic Web Services Initiative Architecture</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>nder Grcan</string-name>
          <email>onder.gurcan@ege.edu.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Geylani Kardas</string-name>
          <email>geylani.kardas@ege.edu.tr</email>
          <xref ref-type="aff" rid="aff2">2</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>zgr Gms Erdem Eser Ekinci</string-name>
          <email>erdemeserekinci@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Oguz Dikenelli</string-name>
          <email>oguz.dikenelli@ege.edu.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Ege University, Department of Computer Engineering</institution>
          ,
          <addr-line>35100 Bornova, Izmir</addr-line>
          ,
          <country country="TR">Turkey</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Managing End-to-End Operations-Semantics (METEOR-S) Working Group</institution>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Number: 106E008</institution>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>The OWL Services Coalition: Semantic Markup for Web Services (OWL-S)</institution>
          ,
          <addr-line>2004</addr-line>
        </aff>
        <aff id="aff4">
          <label>4</label>
          <institution>W3C Web Services Architecture Working Group, Web Services Architecture Recommendation</institution>
          ,
          <addr-line>11 February 2004</addr-line>
        </aff>
        <aff id="aff5">
          <label>5</label>
          <institution>Web Service Modeling Ontology (WSMO) Working Group</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>The Semantic Web Services Initiative Architecture (SWSA) describes the overall process of discovering and interacting with Semantic Web services in three phases and denes a conceptual model to accomplish the specied requirements of these phases. This conceptual model is based on semantic service agents that provide and consume semantic web services and includes architectural and protocol abstractions. In this paper 1, a software platform is dened which fullls fundamental requirements of SWSA's conceptual model including all its sub-processes. Based on this software platform, requirements of the planner module are identied and such a planner has been implemented. The developed planner has the capability of executing plans consisting of special tasks for semantic service agents in a way that described in SWSA. These special tasks are predened to accomplish the requirements of SWSA's sub-processes and they can be reused in real plans of semantic service agents both as is and as specialized according to domain requirements.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>1,</p>
    </sec>
    <sec id="sec-2">
      <title>Introduction</title>
      <p>realize this conceptual model and does not include the theoretical and implementation details of
the required software architecture.</p>
      <p>
        There have been a few partial implementations to integrate web services and FIPA compliant
agent platforms. WSDL2Jade [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] can generate agent ontologies and agent codes from a WSDL
input le to create a wrapper agent that can use external web services. WSDL2Agent [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] describes
an agent based method for migrating web services to the semantic web service environment by
deriving the skeletons of the elements of the Web Service Modeling Framework (WSMF) [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] from a
WSDL input le with human interaction. WSIG (Web Services Integration Gateway) [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] supports
bi-directional integration of web services and Jade agents. WS2JADE [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] allows deployment of
web services as Jade agents’ services at run time to make web services visible to FIPA-compliant
agents through proxy agents. But these tools only deal with the integration of agents and external
web services and do not provide any mechanism to realize the entire architectural and protocol
abstractions addressed by the SWSA framework. It’s clear that there must be environments which
will simplify the development of SWSA-based software systems for ordinary developers.
      </p>
      <p>The main contribution of this paper is to dene a software platform which fullls fundamental
requirements of SWSA’s conceptual model including all its sub-processes. Then, these sub-processes
are modeled as reusable plans for development of semantic service agents. And the second
contribution of this paper is to develop a planner that has the capability of executing these kinds of plans.
So, the developed planner has the innovative features listed below:</p>
      <p>Denition of reusable template plans that includes abstract task structures for SWSA’s
subprocesses and usage of these templates for generating agents’ real plans by specializing these
abstract tasks
Support for recursion on the plan structure</p>
      <p>Constitution of composite services by using reusable semantic service agent plans
The paper is organized as follows: in Sect. 2, the proposed architecture of the Software Platform
for the SWSA framework is given. Section 3 introduces the planner component of the platform.
Planning requirements of SWSA and our solution are discussed in Sect. 4. Conclusion and future
work are given in Sect. 5.
2</p>
    </sec>
    <sec id="sec-3">
      <title>Semantic Service Platform Architecture</title>
      <p>It is apparent that SWSA describes the architecture extensively in a conceptual base. However
it doesn’t dene required details and theoretical infrastructure to realize the architecture. Hence,
we propose a new software platform in which above mentioned fundamental requirements of all
SWSA’s sub-processes (service discovery, engagement and enactment) are concretely fullled.</p>
      <p>The software architecture of the proposed Semantic Service Platform is given in Fig. 1. The
platform is composed of two main modules called Semantic Service Kernel and External Service
Agent.</p>
      <p>The Semantic Service Kernel includes the required infrastructure and architectural components
for an agent to execute sub-processes of SWSA. The agent’s actions, to be used in semantic service
discovery, engagement and enactment, are modeled as reusable plans and will be executed in a
composite fashion by a planner. The sub-tasks, which compose the plan, will execute SWSA’s
sub-processes by invoking the related services. Invocation will be realized via predened execution
protocols.</p>
      <p>The External Service Agent converts either WSDL or OWL-S dened external services into
agents that are able to execute SWSA’s dened processes. This module includes inner services like
WSDL to OWL-S Converter, Ontology Mapper and Translator -that provides mapping of services
into the platform’s ontologies, stores those mapping ontologies and serves ontology translation- and
Monitor service that monitors quality of service parameters. Planner component of the External
Service Agent realizes registration of the related service into the platform and executes interaction
plans concerning service engagement and enactment. Those plans are formed automatically during
the creation phase of the External Service Agent and stored in the plan library as domain plans.</p>
      <p>In the following subsections, we discuss details of how our proposed semantic service platform
meets the requirements of the SWSA taking into consideration predened SWSA sub-processes.</p>
      <p>Semantic Service Kernel
Service Layer</p>
      <p>Monitoring Service</p>
      <p>Match Maker
Planning Layer</p>
      <p>Semantic
Knowledge
Manager</p>
      <p>Ontology Server
Plan Library
Domain Plans
Service Architecture
Kernel Plan Interfaces
Planning Module
Goal Matcher
Plan Executer</p>
      <p>External Service Agent
Service Layer
WSDL2OWLS
Ontology Mapping &amp;
Translation Service
Planning Layer</p>
      <p>Semantic
Knowledge
Manager</p>
      <p>External
Service</p>
      <p>Plan Generator
Monitoring Service
Plan Library
Domain Plans
External Service Plan
Interfaces
Planning Module
Goal Matcher</p>
      <p>Plan Executer
Communication Layer</p>
      <p>Communication Channel</p>
      <p>Communication Layer</p>
      <p>Communication Channel</p>
      <p>HTTP - IIOP
In order to realize semantic service discovery, the platform services should be registered to a
matchmaker and service clients should query on this matchmaker and have ability to interpret resultant
service advertisements.</p>
      <p>
        The Matchmaker service of the Semantic Service Platform stores capability advertisements of
registered services as OWL-S proles. As previously implemented in SEAGENT 6 environment [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ],
the capability matching of the requested and registered service advertisements herein, is also based
on the algorithm given in [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] and deals with semantic distances between input/output parameter
concepts of related services. The details of the implemented capability matching may be found
in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] and [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. However, in addition to the above mentioned matching algorithm, Matchmaker
service of our proposed platform also supports semantic match only on types of services
(excluding input/output parameter match). Therefore, a client may indicate his/her preferred capability
matching approach to the matchmaker and matchmaker performs capability matching upon this
client’s preference.
      </p>
      <p>Based on domain knowledge of the related application, the Semantic Service Platform provides a
meta-prole denition for platform services those to be registered, discovered and invoked within the
platform. Hence, in this approach, Semantic Service Kernel plans, which include client invocation
codes, may be prepared easily by only using those predened meta-proles of services. However
this naturally exposes an ontology mapping requirement when an outer service, which is needed
to be included in the platform, has a dierent prole model than platform’s meta-denitions. It
is aimed to bring a solution to this problem by using capabilities of the ontology mapping and
translation service of the External Service Agent. So, advertisement plan of the External Service
Agent supports platform administrators to be able to map platform’s meta-prole with the related
external service’s ontology by using mapping service via a user interface.</p>
      <p>
        It should be noted that discovery process of the client, has already been dened as a reusable
plan template in the Semantic Service Kernel. So, the content of this plan template is determined
during domain based application development and this creates the application dependent plan
of the discovery process. The client agent, which uses the related created discovery plan, rst
sends the required service’s prole to the matchmaker service and receives advertisement proles of
semantically appropriate services. The suitable communication protocol and content language for
the client has already been designed and implemented for OWL-S services [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
6 http://seagent.ege.edu.tr/
      </p>
      <p>Another important task of the discovery process is the service selection policy of the requester
client. The Matchmaker of the platform may return a collection of suitable service proles for the
client’s requests in many cases and client should apply a policy into the result collection to select
the service(s) for further engagement and enactment processes. The Semantic Service Platform
provides extensible service selection policy structures for plan designers to add various selection
criteria into the service user agent plans.
2.2</p>
      <p>Realization of service engagement process
After completion of the service selection, the client-service engagement process begins. The
engagement process has 2 stages: (1) negotiation on quality of service metrics between client and service
agents and (2) agreement settlement.</p>
      <p>
        The rst stage of the engagement process includes determination of the exact service according
to quality of service (QoS) metrics. Currently, there exists no standard for the service quality
metrics. However, during the exact service determination, our proposed service platform utilizes
some QoS parameters (like service cost, run-time, location, etc.) dened in various studies [
        <xref ref-type="bibr" rid="ref11 ref12">11,12</xref>
        ]
which address this issue. When both sides (client and service) agree on the quality metrics, the rst
stage of the process is nished.
      </p>
      <p>The engagement process is completed after determined service’s OWL-S process ontology and
QoS parameters are sent to the Monitoring Service for being monitored during service execution.
2.3</p>
      <p>Realization of service enactment process
Conceptually, enactment can be dened as the invocation of the engaged service by the client
agent. However, enactment includes more than just invocation and it should take into consideration
monitoring, certication, trust and security requirements of service calls.</p>
      <p>Execution of composite semantic services (which are modeled using OWL-S) is maintained in
the platform by means of a planning approach. The approach herein, provides denition of service
templates for each atomic service of the composite service and realizes composition of the service
by linking those atomic subprocesses.</p>
      <p>Service execution also requires monitoring of the invocation according to the engagement
between client agent and the server. Monitoring services of the Semantic Service Kernel and External
Service Agent both monitor execution of services and check whether current interaction conforms
to the predened QoS metrics and engagement protocol or not. Hence, the Monitoring service of
the External Service Agent informs the platform’s monitoring service about the produced values of
the quality metrics during service execution. According to the state of the ongoing interaction, the
informed client agent may change his task execution behavior as dened in his enactment plan.</p>
      <p>In the following, we rst briey explain the details of our planning module, and its mechanism.
Then we explain the planning requirements of SWSA and how these requirements are accomplished
in our planning mechanism.
3</p>
    </sec>
    <sec id="sec-4">
      <title>SEAGENT Planner</title>
      <p>
        Since planning systems that are knowledge-based and hand tailor-able are the most promising
ones to solve the real-world planning problems, the planner of our MAS development framework,
called SEAGENT, is based on the Hierarchical Task Networking (HTN) planning formalism. HTN
Planning is an AI planning methodology that creates plans by task decomposition. This
decomposition process continues until the planning system nds primitive tasks that can be performed
directly. The basic idea of HTN planning was propounded in the mid-70s[
        <xref ref-type="bibr" rid="ref13 ref14">13,14</xref>
        ], and the formal
underpinnings were developed in the mid-90s[
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. In an HTN planning system, the objective is to
accomplish a partially-ordered set of given tasks (plan) and a plan is correct if it is executable, and
it accomplishes the given tasks. That is, the main focus of an HTN planner is to perform tasks,
while a traditional planner focuses on achieving a desired state.
      </p>
      <p>A plan is a representation of future behaviour, hence, in our platform, all behaviours of agents
(even planning) are plans. To provide such a mechanism we use a task execution unit whose only
job is to execute and schedule executable entities. Initially, a planning unit should provide two basic
mechanisms: dispatching and goal matching. By dispatching we mean sending outgoing messages,
fetching incoming messages and creating objectives from that messages when required. By a goal
matching we mean matching the objectives to suitable plans.
3.1</p>
      <p>
        Plan Structure
Our framework is similar to the frameworks presented by Sycara et. al[
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] and DECAF architecture[
        <xref ref-type="bibr" rid="ref17">17</xref>
        ].
As a requirement of HTN, tasks might be either complex (called behaviours) or primitive (called
actions). Each plan consists of a complex root task consisting of sub-tasks to achieve a predened
goal. Behaviours hold a ’reduction schema’ knowledge that denes the decomposition of the
complex task to the sub-tasks and the information ow between these sub-tasks and their parent task.
The information ow mechanism is as follows: each task represents its information need by a set
of provisions and the execution of a task produces outcomes, and there are links that represents
the information ows between tasks using these provision and outcome slots. Actions are primitive
tasks that can be executed directly by the planner. Also, each task produces an outcome state after
its execution. Default outcome state is OK and usually it is not shown explicitly. The outcome
states are used to route the information ow between tasks.
      </p>
      <sec id="sec-4-1">
        <title>ProvisionLink</title>
        <p>-senderTaskClassName
-senderTaskOutcomeName
-targetTaskClassName
-targetTaskOutcomeName</p>
      </sec>
      <sec id="sec-4-2">
        <title>InheritanceLink</title>
        <p>-senderProvisionName
-targetTaskClassName
-targetProvisionName</p>
        <p>DisinheritanceLink
-senderTaskClassName
-senderOutcomeName
-targetOutcomeName
*
*
*
&lt;&lt;abstract&gt;&gt;</p>
        <p>Task
#defineName()
#defineProvision()
#defineOutcome()
+isAllProvisionsAreSet()
&lt;&lt;abstract&gt;&gt;</p>
        <p>Behaviour
#defineSubtask()
#defineProvisionLink()
#defineInheritanceLink()
#defineDisinheritanceLink()
-reduct()
&lt;&lt;abstract&gt;&gt;</p>
        <p>Action
+do()
*</p>
      </sec>
      <sec id="sec-4-3">
        <title>Outcome</title>
        <p>-name
+getValue()
* Provision
-name
+isSet()</p>
        <p>Components of our plan structure are shown in Fig. 2. Tasks have a name describing what they
are supposed to do and have zero or more provisions (information needs) and outcomes (execution
results). The provision information is supplied dynamically during plan execution. Tasks are ready,
and thus eligible for execution, when there is a value for each of its provisions and this is checked via
isAllProvisionsAreSet() method. A task that has no provisions is always ready. Upon execution,
a task consumes its provisions and produces outcomes if any. Tasks may be designated by the
developers as periodic (cyclic). A periodic task is rescheduled upon execution for sub-sequent
reexecution according to its associated period. Unlike other HTN frameworks mentioned above, we
do not support external provisions. The reason for that is, in our platform agents that are resident
on the same machine are attached to an Agent Communication Channel (ACC) which carries out
all of the messaging of this agents. Agents’ are just responsible for fetching their messages from
that ACC and/or giving messages to that ACC (described in Sect. 3.2). Then ACC makes all the
job (physical transfer of messages over HTTP - IIOP etc.). That’s why all provisions are internal
provisions whose value’s are internally set within the plan. This means, the value of a provision is
determined by an outcome of another task.</p>
        <p>As described above, actions are directly executable tasks (using Do() method), while behaviours
are complex tasks whose execution depends on the execution of all its sub-tasks. Behaviours’ role
is to control the execution of its subtasks. Behaviours hold a ’reduction schema’ knowledge that
describes which sub-tasks it is composed of and the information ow relationships between them.</p>
        <p>Propagation of output values of the executed task to other dependent task(s) is handled by the
owner behaviour since it is the only construct that knows the relationships.
3.2 Internal Architecture
The overall structure of our planner’s architecture (Fig. 3) is designed to execute HTN structure(s).
In order a plan to be executed, the complex root task must be opened using the ’reduction schema’
knowledge, and this reduction continues until the actions are found, and then the execution unit
executes these actions. The planner basically is composed of the following functional modules: an
execution unit, a periodic dispatching plan, and a periodic goal matching plan. All together, they
match the goal extracted from the incoming FIPA-ACL message to an agent plan, schedule and
execute the plan following the predened HTN based plan. In the following, we briey explain
responsibilities of each module during plan execution.</p>
      </sec>
      <sec id="sec-4-4">
        <title>Planner</title>
        <p>Execution Unit</p>
        <p>Waiting task</p>
        <p>queue
Scheduler</p>
        <p>Executor
Ready action
queue
&lt;&lt;cyclic&gt;&gt;
Dispatching</p>
        <p>Plan
&lt;&lt;cyclic&gt;&gt;
Goal Matching</p>
        <p>Plan</p>
        <p>Knowledge base</p>
        <p>Plan Library</p>
        <p>The planner is responsible for processing incoming and outgoing messages, goal matching,
scheduling and executing tasks. The mechanism of the planner is as follows: New FIPA-ACL
messages are fetched by the Dispatching plan. Then the Dispatching plan parses these messages and
checks whether they are part of an ongoing conversation or not. In latter case, it puts the message
to the knowledge-base as an incoming message. In former case, where the incoming message is
not part of an ongoing conversation, it creates a new objective, and puts it to the knowledge-base
as a new objective knowledge. The Goal Matching plan continuously checks the knowledge-base
whether there are new objectives or not. When it nds one, the Goal Matching plan matches it to a
pre-dened plan by the querying the plan library which is resident on knowledge-base. If this match
process succeeds, this plan creates an instance of the matched plan and gives it to the execution
unit for execution. After all, how this plan will be carried out is handled by the plan itself.</p>
        <p>Now, we briey explain the details each planning module, and their responsibilities. The
execution unit is responsible for executing and scheduling submitted executable tasks. The task executor
is composed of a scheduler and an executor module. Each module runs concurrently in a separate
Java thread and uses the common data structures such as waiting queue and ready queue.
Scheduler’s role is to determine the execution time of each task. If a task is ready (all its provisions are
set) and it is time to execute it, Scheduler removes it from the waiting queue and puts it to the
ready queue. Executor, on the other hand, executes the ready tasks by invoking their execute()
method and puts periodic tasks to the waiting queue for re-execution.</p>
        <p>Dispatching plan is a cyclic plan which is responsible for incoming and outgoing messages and
creating objectives for agents. It periodically checks ACC for incoming messages and fetches them
(by putting them to the knowledge-base) if there is any. It also periodically checks knowledge-base
for outgoing messages. Because when the agent intends to send a message, it simply puts it to the
knowledge-base.</p>
        <p>Goal Matching plan is responsible for matching the incoming objective to a pre-dened plan by
querying the plan library which is constructed using plan ontology and match ontology. This plan
inheritance
link
provisions
sub-task
relations
periodically checks knowledge-base whether a new objective is occurred or not. When there is a
new objective, it tries match a plan from the plan library for that objective. If the match process
succeeds, Goal Matching plan creates an instance of the plan and submits it to the execution unit
for execution.</p>
        <p>Here after, the responsibility of the execution of the plan is belonged to the root task of the
plan. Because a behaviour is said to be accomplished when all its subtasks are performed. So, the
life cycle of a plan is as follows: It rst reducts itself to its subtasks, and submits them to the
execution unit for execution. Then it checks them until they all are executed.
4</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Planning Requirements of SWSA</title>
      <p>As mentioned in Sect. 2, the Semantic Service Kernel includes the required infrastructure and
architectural components for an agent to execute subprocesses of SWSA. Such an environment simplies
the overall process of executing semantic web services for ordinary developers. Client agent(s) in
this environment, must provide plans to be used in semantic service discovery, engagement and
enactment. Hence, in our platform, we modeled these plans as reusable plans.</p>
      <p>Figure 4 shows the task tree of the HTN plan for service execution of client agents. Execute
Service task represents the service execution process which was proposed by SWSA and is the root
task of the plan that needs abstract characterizations of candidate services in order to be executed.
It is composed of three sub-tasks: Discover Candidate Services, Engage with a Service and Enact
Service (decomposition of these tasks are not shown in this gure). Discover Candidate Services
task inherits the abstract characterization of candidate services from its parent task and produces
service proles of candidate services after its execution completes. Then these service proles are
passed to Engage with a Service task via a provision link and then the execution of this task
begins. Engage with a Service task nishes by producing two outcomes: selected service provider
and service agreement. These outcomes are consumed by Enact Service task in order to complete
the nal part of the plan. This task executes the selected service and passes the output list of its
execution to its parent task.</p>
      <p>As discussed above, SWSA processes are controlled and monitored by Semantic Service Kernel.
The planner is at the heart of the architecture which controls the work-ows of the SWSA processes.
Each of these processes are modeled as reusable plans and the developed planner must have the
innovative features in order to have the capability of executing these kind of plans. These features
are listed below:
Denition of reusable template plans that includes abstract task structures for SWSA’s
subprocesses and usage of these templates for generating agent’s real plans by specializing these
abstract tasks.</p>
      <p>Some parts of processes introduced by SWSA is abstract because, they change according
to domain. Hence, it must be possible to generate a template plan for SWSA and realize it
on specic domains. Such a template plan must include abstract tasks which can be
specied based on the domain requirements. So, the plan structure must provide mechanisms
to dene and specify such abstract task constructs for developers. Without such a planning
mechanism, it is impossible to dene reusable plan templates for executing SWSA processes.
For example, in service discovery, the client agent, rst forms a query using the required
service’s prole and sends it to the matchmaker service, then receives advertisement proles
of semantically appropriate services and nally applies a service selection policy to return
a collection of suitable proles. The abstract plan for this service discovery process is
illustrated in Fig. 5. As shown in the gure, Form a Query for Service Discovery task and
Select Service(s) task are abstract. Former is abstract because the query could be formed
either according to service type or input/output parameter types or etc. Latter is abstract
because developers should be able to use various service selection criteria.</p>
      <p>Support for recursion on the plan structure.</p>
      <p>By a recursion we mean a situation where one instance of a task is an ancestor in the
task network of another instance of the same task. Consider the engagement process of the
client agent given in Sect. 2.2. At rst, one of the candidate services are chosen and then
completeness of all service invocation parameters is assured. After the assurance, negotiation
on QoS metrics and agreement settlement are performed. If either assurance or negotiation
tasks fail, the engagement process will be restarted for unselected services (Fig. 6). To
provide this iteration the plan structure must have support for recursion. Such a support
needs the ability for a task to contain itself as a sub-task (in Fig. 6, Engage with a Service
contains itself as a sub-task).</p>
      <p>Constitution of composite services by using semantic service execution plans in agent’s real
plans.</p>
      <p>To generate domain dependent service execution plans, developers must realize Execute
Service template plan shown in Fig. 4. Consider the HTN plan for reserving a hotel room
shown in Fig. 7. Reserving a hotel is as follows: rst user preferences are taken, and according
to these preferences a hotel is found, then it is tried to make a reservation with that hotel
and nally results are shown to the user. In this plan, Find a Hotel, Find a Room
and Make Room Reservation sub-tasks of the plan are concrete realizations of Execute
Service task. They are connected with their provisions and outcome slots, and because
they are domain dependent plans they know what input parameters they will take.
service
profiles
candidate
sevice
unselected
sevices
candidate
sevice
unselected
sevices
Select a Service</p>
      <p>Assure on Parameters</p>
      <p>Negotitate with</p>
      <p>Candidate Service
Engage with
a Service
candidate
sevice
unselected OK
sevices
fail
service
agreement
candidate
sevice
unselected
sevices</p>
      <p>selected
service provider
service
agreement
unselected
sevices</p>
      <p>fail</p>
      <p>OK
Engage with
a Service
the plan are concrete realizations of Execute Service task.
As mentioned in Sect. 3, SEAGENT planner has innovative features to handle the work-ows of
the SWSA processes. This section shows how these features are satised by SEAGENT planner.
The built-in support makes implementing overall processes of SWSA easier for developers.
Template plan support In SEAGENT it is possible to create template (generic) plans. The
basic idea resembles abstract class logic in object orientation. That is, to construct a generic plan,
describe the main characteristics of a plan leaving the variable parts (tasks) unimplemented. So
that in the future they may be specialized and used (remember the service discovery plan in Fig.
5). The tasks dened in reusable template plan can be extended (by redenition of abstract tasks)
to concrete plans. The important point here is the coniction of the specications of the abstract
task to be extended (provision and outcome denitions) and specications of the extended concrete
task. To implement a template plan, construct the plan as a normal plan but use abstract task
denitions where you want to make abstract tasks.</p>
      <p>In SEAGENT, to dene sub-tasks, defineSubtask() method is used by giving the class name
of the sub-task as a parameter. If we want to dene an abstract sub-task, all we need to do
is to give the name of the abstract sub-task indirectly. This can be done by using an abstract
method that returns the name of the sub-task, and passing this abstract method as parameter to
defineSubtask() method. For example, Select Service(s) abstract task in Fig. 5 can be dened
in Discover Candidate Services parent task by using getSelectServicesTaskName() abstract
method ( defineSubtask( getSelectServicesTaskName() ) . Concrete realization of this plan is
made by extending this plan and implementing the abstract methods that return the class names
of the concrete tasks.</p>
      <p>Recursion support Recursion is another capability of SEAGENT planner. By a recursion we
mean a situation where one instance of a task is an ancestor in the planning tree of another
instance of the same task. This is usually used when we cannot satisfy something in a task and
want to execute this task again but with dierent provisions until reaching the goal. Since there
is no restriction on dening sub-tasks, a task may contains itself as a sub-task. But the important
point here is that the decomposition of the successor task must be in control, just like in recursive
methods in traditional programming. In SEAGENT, the decomposition of a task is checked via its
provision’s state, that is, if all provisions are set or there is no provision then the task decomposes.
So, in a recursive HTN plan, recursion tasks must contain at least one provision and the value of
this provision must be dierent from its ancestor’s value (see Fig. 6). Otherwise an innite loop
arises and our agent crashes.</p>
      <p>Constitution of Composite Services support Constitution of composite services is simple in
SEAGENT, because there are predened reusable template plans for service execution (see Fig. 4)
in plan library and, developers can use these plans to construct their own domain dependent service
execution plans and compose them just as building an ordinary plan (see Fig. 7). The important
point here is the satisfaction of input/output compatibility and this is easily handled by the correct
concrete realizations of the abstract tasks.
5</p>
    </sec>
    <sec id="sec-6">
      <title>Conclusion</title>
      <p>The SWSA is currently a working group recommendation and describes abstract infrastructures
and related processes for semantic web services and agents interaction in a conceptual base. We
believe that this architecture brings a comprehensive model of software agents which utilize and
provide semantic web services. However this architecture is a product of an initiative study and
most of its components are only theoretically dened, not implemented. In this paper, a new MAS
software platform, which aims to concretely fulll fundamental requirements of the SWSA, has
been introduced. We have modeled subprocesses of SWSA as reusable plans by HTN approach
and provided a framework in which those plans can be executed in a composite fashion by agent
planners. Hence, platform agents can accomplish execution of discovery, engagement and enactment
processes for semantic web service interaction by employing those reusable and predened HTN
plans. We have also discussed necessary properties of an agent planner which can execute those
dened plans. Such a planner has been implemented based on the SEAGENT platform.</p>
      <p>In the paper we focused on the requirements of the planner for execution of SWSA subprocesses.
But we are also working on the other parts of the software architecture. For example, service
discovery mechanisms for the platform are fully operational. Semantic capability matching of services has
already been implemented and platform agents are currently able to invoke semantic web services
in proper to OWL-S standards.</p>
      <p>Perhaps our major weakness, considering both the software and reusable agent plans, is seen in
denition and design of the service engagement sub-process. QoS topics are currently being studied
and they weren’t addressed in detail by the service oriented computing community. Hence our
QoS support during the engagement process is extremely primitive and only composes monitoring
service. That support is also in its initial state. Security and trust mechanisms have not been
considered yet in our implementation.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Burstein</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bussler</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zaremba</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Finin</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Huhns</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paolucci</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sheth</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Williams</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>A semantic web services architecture</article-title>
          .
          <source>IEEE Internet Computing Volume 9 Issue</source>
          <volume>5</volume>
          (
          <year>2005</year>
          )
          <fpage>72</fpage>
          <lpage>81</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Varga</surname>
            ,
            <given-names>L.Z.</given-names>
          </string-name>
          , `kos Hajnal, Werner,
          <string-name>
            <surname>Z.</surname>
          </string-name>
          <article-title>In: Engineering Web Service Invocations from Agent Systems</article-title>
          . Volume
          <volume>2691</volume>
          . Lecture Notes in Computer Science (
          <year>2003</year>
          )
          <fpage>626</fpage>
          <lpage>635</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Varga</surname>
            ,
            <given-names>L.Z.</given-names>
          </string-name>
          , `kos Hajnal, Werner,
          <string-name>
            <surname>Z.</surname>
          </string-name>
          <article-title>In: An Agent Based Approach for Migrating Web Services to Semantic Web Services</article-title>
          . Volume
          <volume>3192</volume>
          . Lecture Notes in Computer Science (
          <year>2004</year>
          )
          <fpage>381</fpage>
          <lpage>390</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Fensel</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bussler</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>The web service modeling framework wsmf</article-title>
          .
          <source>Electronic Commerce Research and Applications</source>
          <volume>1</volume>
          (
          <year>2002</year>
          )
          <fpage>113137</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Greenwood</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Calisti</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Engineering web service - agent integration</article-title>
          .
          <source>In: SMC (2)</source>
          , IEEE (
          <year>2004</year>
          )
          <fpage>19181925</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Nguyen</surname>
            ,
            <given-names>T.X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kowalczyk</surname>
            ,
            <given-names>R.:</given-names>
          </string-name>
          <article-title>Ws2jade: Integrating web service with jade agents</article-title>
          .
          <source>In: AAMAS'05 Workshop on Service-Oriented Computing</source>
          and
          <string-name>
            <surname>Agent-Based Engineering</surname>
          </string-name>
          (SOCABE'
          <year>2005</year>
          ).
          <article-title>(</article-title>
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Dikenelli</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Erdur</surname>
          </string-name>
          , R.C.,
          <string-name>
            <surname>zgr</surname>
            <given-names>Gms</given-names>
          </string-name>
          , Ekinci,
          <string-name>
            <given-names>E.E.</given-names>
            ,
            <surname>nder</surname>
          </string-name>
          <string-name>
            <surname>Grcan</surname>
          </string-name>
          , Kardas,
          <string-name>
            <given-names>G.</given-names>
            ,
            <surname>Seylan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            ,
            <surname>Tiryaki</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.M.:</surname>
          </string-name>
          <article-title>Seagent: A platform for developing semantic web based multi agent systems</article-title>
          . In: AAMAS,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2005</year>
          )
          <fpage>12711272</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Paolucci</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kawmura</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Payne</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sycara</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Semantic matching of web services capabilities</article-title>
          .
          <source>In: First Int. Semantic Web Conf</source>
          . (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Dikenelli</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gms</surname>
          </string-name>
          , .,
          <string-name>
            <surname>Tiryaki</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kardas</surname>
          </string-name>
          , G.:
          <article-title>Engineering a multi agent platform with dynamic semantic service discovery and invocation capability</article-title>
          . In Eymann, T.,
          <string-name>
            <surname>Klgl</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lamersdorf</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Klusch</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Huhns</surname>
          </string-name>
          , M.N., eds.
          <source>: MATES</source>
          . Volume
          <volume>3550</volume>
          of Lecture Notes in Computer Science., Springer (
          <year>2005</year>
          )
          <fpage>141152</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Kardas</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          , Gms, .,
          <string-name>
            <surname>Dikenelli</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          :
          <article-title>Applying semantic capability matching into directory service structures of multi agent systems</article-title>
          .
          <source>In: ISCIS</source>
          . Volume
          <volume>3733</volume>
          of Lecture Notes in Computer Science., Springer (
          <year>2005</year>
          )
          <fpage>452461</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Zeng</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Benatallah</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dumas</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kalagnanam</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sheng</surname>
            ,
            <given-names>Q.Z.</given-names>
          </string-name>
          :
          <article-title>Quality driven web services composition</article-title>
          .
          <source>In: WWW '03: Proceedings of the 12th international conference on World Wide Web</source>
          , New York, NY, USA, ACM Press (
          <year>2003</year>
          )
          <fpage>411421</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Cardoso</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sheth</surname>
            ,
            <given-names>A.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Miller</surname>
            ,
            <given-names>J.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Arnold</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kochut</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Quality of service for workows and web service processes</article-title>
          .
          <source>J. Web Sem</source>
          .
          <volume>1</volume>
          (
          <year>2004</year>
          )
          <fpage>281308</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Sacerdoti</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          :
          <article-title>The nonlinear nature of plans</article-title>
          .
          <source>In: International Joint Conference on Articial Intelligence</source>
          . (
          <year>1975</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Tate</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Generation project networks</article-title>
          .
          <source>In: International Joint Conference on Articial Intelligence</source>
          . (
          <year>1977</year>
          )
          <fpage>888</fpage>
          <lpage>893</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Erol</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hendler</surname>
            ,
            <given-names>J.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nau</surname>
            ,
            <given-names>D.S.:</given-names>
          </string-name>
          <article-title>Complexity results for htn planning</article-title>
          .
          <source>Ann. Math. Artif. Intell</source>
          .
          <volume>18</volume>
          (
          <year>1996</year>
          )
          <fpage>6993</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Sycara</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Williamson</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Decker</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Unied information and control ow in hierarchical task networks</article-title>
          .
          <source>In: Working Notes of the AAAI-96 workshop '</source>
          Theories of Action, Planning, and Control'. (
          <year>1996</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Graham</surname>
            ,
            <given-names>J.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Decker</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mersic</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Decaf - a exible multi agent system architecture</article-title>
          .
          <source>Autonomous Agents and Multi-Agent Systems</source>
          <volume>7</volume>
          (
          <year>2003</year>
          )
          <fpage>727</fpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>