<!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>SMT-based Abstract Temporal Planning?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Artur Niewiadomski</string-name>
          <email>artur.niewiadomski@uph.edu.pl</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Wojciech Penczek</string-name>
          <email>penczek@ipipan.waw.pl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>ICS, Polish Academy of Sciences</institution>
          ,
          <addr-line>Jana Kazimierza 5, 01-248 Warsaw</addr-line>
          ,
          <country country="PL">Poland</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>ICS, Siedlce University</institution>
          ,
          <addr-line>3-Maja 54, 08-110 Siedlce</addr-line>
          ,
          <country country="PL">Poland</country>
        </aff>
      </contrib-group>
      <fpage>55</fpage>
      <lpage>74</lpage>
      <abstract>
        <p>An abstract planning is the first phase of the web service composition in the Planics framework. A user query specifies the initial and the expected state of a plan in request. The paper extends Planics with a module for temporal planning, by extending the user query with an LT Lk X formula specifying temporal aspects of world transformations in a plan. Our solution comes together with an example, an implementation, and experimental results.</p>
      </abstract>
      <kwd-group>
        <kwd>Web Service Composition</kwd>
        <kwd>SMT</kwd>
        <kwd>Abstract Planning</kwd>
        <kwd>Temporal Planning</kwd>
        <kwd>LTL</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Web service composition within Service-Oriented Architecture (SOA) [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] is still
attracting a lot of interest, being a subject of many theoretical and practical
approaches. The main idea consists in dealing with independent (software)
components available via well-defined interfaces. As typically a simple web service
does not satisfy the user objective, a composition is investigated in order to
make the user fully satisfied. An automatic composition of Web services aims at
relieving the user of a manual preparation of detailed execution plans, matching
services to each other, and choosing optimal providers for all the components.
The problem of finding such a satisfactory composition is NP-hard and well
known in the literature as the Web Service Composition Problem (WSCP) [
        <xref ref-type="bibr" rid="ref1 ref2 ref21">2, 1,
21</xref>
        ]. There are many various approaches to solve WSCP [
        <xref ref-type="bibr" rid="ref14 ref16">14, 16</xref>
        ], some of them
we discuss in the next section.
      </p>
      <p>
        In this paper, we follow the approach of the system Planics [
        <xref ref-type="bibr" rid="ref8 ref9">8, 9</xref>
        ], which has
been inspired by [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. The main assumption is that all the web services in the
domain of interest as well as the objects which are processed by the services, can
be strictly classified in a hierarchy of classes, organised in an ontology. Another
key idea consists in dividing planning into several stages. The first phase, called
the abstract planning, deals with classes of services, where each class represents
a set of real-world services. This phase has been implemented in Planics using
? This work has been supported by the National Science Centre under the grant No.
      </p>
      <p>
        2011/01/B/ST6/01477.
two approaches: one based on a translation to SMT-solvers [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] and another one
exploiting genetic algorithms [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. The second phase, called concrete planning,
deals with concrete services. Thus, while the first phase produces an abstract
plan, it becomes a concrete plan in the second phase. Such an approach enables
to reduce dramatically the number of concrete services to be considered as they
are already eliminated in the abstract planning phase. This paper focuses on the
abstract planning problem, but extends it to so called temporal planning. This
extension together with the experimental results is the main contribution of the
paper. The main idea behind this approach consists in providing the user with a
possibility to specify not only the first and the expected state of a plan in request,
but also to specify temporal aspects of state transformations in a plan. To this
aim we introduce two general types of atomic properties for writing a temporal
formula, namely propositions and level constraints. The propositions are used to
describe (intermediate) states of a plan in terms of existence (or non-existence)
of objects and abstract values of object attributes. The level constraints, built
over a special set of objects, are used for influencing a service ordering within
solutions. However, in order to express such restrictions the user has to rely on
some knowledge about the planning domain. In order to get this knowledge, the
planner can be first run without temporal constraints and then these restrictions
can be added after a non-temporal planning results have been obtained.
      </p>
      <p>We propose a novel approach based on applying SMT-solvers. Contrary to
a number of other approaches, we focus not only on searching for a single plan,
but we attempt to find all significantly different plans. We start with defining
the abstract planning problem (APP, for short). Then, we present our original
approach to APP based on a compact representation of abstract plans by
multisets of service types. We introduce the language of LT Lk X for specifying the
temporal aspects of the user query. This approach is combined with a reduction
to a task for an SMT-solver. The encoding of blocking formulas allows for
pruning the search space with many sequences which use the same multiset of service
types in some plan already generated. Moreover, we give details of our
algorithms and their implementations that are followed by experimental results. To
the best of our knowledge, the above approach is novel, and as our experiments
show it is also very promising.</p>
      <p>The rest of the paper is organized as follows. Related work is discussed in
Section 2. Section 3 deals with the abstract planning problem. In Section 4 the
temporal planning is presented. An example of an abstract temporal planning is
shown in Section 5. Section 6 discusses the implementation and the
experimental results of our planning system. The last section summarizes this paper and
discusses a further work.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        A classification matrix aimed at the influence on the effort of Web service
composition is presented in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. According to [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], situation calculus [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], Petri nets [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ],
theorem proving [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], and model checking [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] among others belongs to AI
planning. A composition method closest to ours based on SMT is presented in [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ],
where the authors reduce WSCP to a reachability problem of a state-transition
system. The problem is encoded by a propositional formula and tested for
satisfiability using a SAT-solver. This approach makes use of an ontology describing
a hierarchy of types and deals with an inheritance relation. However, we consider
also the states of the objects, while [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] deals with their types only. Moreover,
among other differences, we use a multiset-based SMT encoding instead of SAT.
      </p>
      <p>
        Most of the applications of SMT in the domain of WSC is related to the
automatic verification and testing. For example, a message race detection
problem is investigated in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], the paper [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] takes advantage of symbolic testing and
execution techniques in order to check behavioural conformance of WS-BPEL
specifications, while [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] exploits SMT to verification of WS-BPEL specifications
against business rules.
      </p>
      <p>
        Recently, there have also appeared papers dealing with temporal logics in
the context of WSC. Bersani et al. in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] present a formal verification technique
for an extension of LTL that allows the users to include constraints on integer
variables in formulas. This technique is applied to the substitutability problem
for conversational services. The paper [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] deals with the problem of automatic
service discovery and composition. The authors characterize the behaviour of a
service in terms of a finite state machine, specify the user’s requirement by an
LTL formula, and provide a translation of the problem defined to SAT. However,
the paper does not specify precisely experimental results and such important
details as, e.g., the number of services under consideration. An efficient
application of the authors method is reported for plans of length up to 10 only. The
authors of [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] address the issue of verifying whether a composite Web services
design meets some desirable properties in terms of deadlock freedom, safety, and
reachability. The authors report on automatic translation procedures from the
automata-based design models to the input language of the NuSMV verification
tool. The properties to be verified can be expressed as LTL or CTL formulae.
      </p>
      <p>
        Searching for plans meeting temporal restrictions is also a topic of interest of
a broad planning community. The PDDL language [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] has been also extended
with LTL-like modal operators, but for planning automata-based methods are
used instead of SMT-based symbolic ones.
3
This section introduces APP as the first stage of WSCP in the Planics
framework. First, the Planics ontology is presented. Next, we provide some basic
definitions and explain the main goals of APP.
3.1
      </p>
      <sec id="sec-2-1">
        <title>Planics Ontology</title>
        <p>
          The OWL language [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ] is used as the Planics ontology format. The concepts
are organized in an inheritance tree of classes, all derived from the base class
Thing. There are 3 children of Thing: Artifact, Stamp, and Service (Fig. 1).
        </p>
        <p>Thing</p>
        <p>Stamp
Artifact</p>
        <p>Service</p>
        <p>The branch of classes rooted at Artifact is composed of the types of the
objects, which the services operate on. Each object consists of a number of
attributes, whereas an attribute consists of a name and a type. Note that the
types of the attributes are irrelevant in the abstract planning phase as they are
not used by the planner. The values of the attributes of an object determine
its state, but in the abstract planning it is enough to know only whether an
attribute does have some value (i.e., is set), or it does not (i.e., it is null). The
Stamp class and its descendants define special-purpose objects, often useful in
constructing a user query, and in the planning process. A stamp is a specific type
aimed at a confirmation of the service execution. The specialized descendants
of the Service class can produce the stamp being an instance of any subtype
of Stamp and describing additional execution features. Note that each service
produces exactly one confirmation object. The classes derived from Artifact and
Stamp are called the object types.</p>
        <p>Each class derived from Service, called a service type, stands for a description
of a set of real-world services. It contains a formalized information about their
activities. A service type affects a set of objects and transforms them into a new
set of objects. The detailed information about this transformation is contained
in the attributes of a service type: the sets in, inout, and out, and the Boolean
formulas pre and post (pre and post, for short). These sets enumerate the objects,
which are processed by the service. The objects of the in set are read-only,
i.e., they are passed unchanged to the next world. Each object of inout can be
modified - the service can change some values of its attributes. The objects of
out are produced by the service.
Let I denote the set of all identifiers used as the type names, the objects, and the
attributes. In APP we deal with abstract values only, the types of the attributes
are irrelevant, and we identify the attributes with their names. Moreover, we
denote the set of all attributes by A, where A ⇢ I. An object type is a pair
(t, Attr), where t 2 I, and Attr ✓ A. That is, an object type consists of the type
name and a set of the attributes. By P we mean a set of all object types.
Example 1. Consider the following exemplary ontology containing in addition to
Thing also the class Artifact and Stamp. The class Artifact corresponds to the
object type (Artif act, {id}) (the only attribute is an identifier) while the class
Stamp corresponds to the object type (Stamp, {serviceClass, serviceId, level}),
introducing the attributes describing the service generating the stamp, and the
position of this service in an execution sequence we consider.</p>
        <p>We define also a transitive, irreflexive, and antisymmetric inheritance relation
Ext ✓ P ⇥ P, such that (t1, A1), (t2, A2) 2 Ext iff t1 6= t2 and A1 ✓ A2. That
is, a subtype contains all the attributes of a base type and optionally introduces
more attributes. An object o is a pair o = (id, type), where id 2 I and type 2 P.
By type(o) we denote the type of o. The set of all objects is denoted by O.
Amongst all the objects we distinguish between the artifacts (the instances of
the Artifact type) and the stamps (the instances of the Stamp type). The set of
all the stamps is denoted by ST, where ST ✓ O. Moreover, we define the function
attr : O 7 ! 2A returning the set of all attributes for each object of O.
Service types and user queries. The service types available for composition are
defined in the ontology by service type specifications. The user goal is provided
in a form of a user query specification, which is then extended by a temporal
formula. Before APP, all the specifications are reduced to sets of objects and
abstract formulas over them. An abstract formula over a set of objects O
and their attributes is a DNF formula without negations, i.e., the disjunction of
clauses, referred to as abstract clauses. Every abstract clause is the conjunction
of literals, specifying abstract values of object attributes using the functions
isSet and isN ull. In the abstract formulas used in APP, we assume that no
abstract clause contains both isSet(o.a) and isN ull(o.a), for the same o 2 O
and a 2 attr(o). For example (isSet(o.a) ^ isSet(o.b)) _ isN ull(o.a) is a correct
abstract formula. The syntax of the specifications of the user queries and of the
service types is the same and it is defined below.</p>
      </sec>
      <sec id="sec-2-2">
        <title>Definition 1. A specification is a 5-tuple (in, inout, out, pre, post), where in,</title>
        <p>inout, out are pairwise disjoint sets of objects, and pre is an abstract formula
defined over objects from in [ inout, while post is an abstract formula defined
over objects from in [ inout [ out.</p>
        <p>A user query specification q or a service type specification s is denoted by
specx = (inx, inoutx, outx, prex, postx), where x 2 {q, s}, resp. In order to
formally define the user queries and the service types, which are interpretations
of their specifications, we need to define the notions of valuation functions and
worlds.</p>
        <p>Definition 2. Let ' = Wi=1..n ↵ i be an abstract formula. A valuation of
the attributes over ↵ i is the partial function v↵ i : So2 O{o} ⇥ attr(o) 7 !
{true, f alse}, where:
• v↵ i(o, a)= true if isSet(o.a) is a literal of ↵ i, and
• v↵ i(o, a)= f alse if isN ull(o.a) is a literal of ↵ i, and
• v↵ i(o, a) is undefined, otherwise.
We define the restriction of a valuation function v↵ i to a set of objects O ⇢ O
as v↵ i (O) = v↵ i So2 O{o}⇥ attr(o). The undefined values appear when the
interpreted abstract formula does not specify abstract values of some attributes,
which is a typical case in the WSC domain. The undefined values are used also
for representing families of total valuation functions. Next, for a partial
valuation function f , by total(f ) we denote the family of the total valuation functions
on the same domain, which are consistent with f , i.e., agree on the values
defined of f . Moreover, we define a family of the valuation functions V' over the
abstract formula ' as the union of the sets of the consistent valuation functions
over every abstract clause ↵ i, i.e., V' = Sin=1 total(v↵ i ). The restriction of the
family of functions V' to a set of objects O and their attributes is defined as
V' (O) = Sn</p>
        <p>i=1 total(v↵ i (O)).</p>
        <p>Definition 3. A world w is a pair (Ow, vw), where Ow ✓ O and vw = v(Ow)
is a total valuation function equal to some valuation function v restricted to Ow.
The size of w, denoted by |w| is equal to |Ow|.</p>
        <p>That is, a world represents a state of a set of objects, where each attribute is
either set or null. By a sub-world of w we mean a world built from a subset of
Ow and vw restricted to the objects from the chosen subset. Moreover, a pair
consisting of a set of objects and a family of total valuation functions defines a set
of worlds. That is, if V = {v1, . . . , vn} is a family of total valuation functions and
O ✓ O is a set of objects, then O, V(O) means the set { O, vi(O) | 1  i  n},
for n 2 N. Finally, the set of all worlds is denoted by W.</p>
        <p>Now, we are in a position to define a service type and a (basic) user query
as an interpretation of its specification. In the next section the user query is
extended to a temporal version.</p>
        <p>Definition 4. Let specx = (inx, inoutx, outx, prex, postx) be a user query or a
service type specification, where x 2 {q, s}, resp. An interpretation of specx is a
pair of world sets x = (Wpxre, Wpxost), where:
– Wpxre = inx [ inoutx, Vpxre , where Vpre is the family of the valuation
funcx
tions over prex,
– Wpxost = inx [ inoutx [ outx, Vpxost , where Vpost is the family of the valuation
x
functions over postx.</p>
        <p>An interpretation of a user query (service type) specification is called simply a
user query (service type, resp.).</p>
        <p>For a service type (Wpsre, Wpsost), Wpsre is called the input world set, while Wpsost
- the output world set. The set of all the service types defined in the ontology is
denoted by S. For a user query (Wpqre, Wpqost), Wpqre is called the initial world set,
while Wpqost - the expected world set, and denoted by Wiqnit and Weqxp, respectively.
Abstract Planning Overview. The main goal of APP is to find a composition
of service types satisfying a user query, which specifies some initial and some
expected worlds as well as some temporal aspects of world transformations.</p>
        <p>Intuitively, an initial world contains the objects owned by the user, whereas
an expected world consists of the objects required to be the result of the service
composition. To formalize it, we need several auxiliary concepts.</p>
        <p>Let o, o0 2 O and v and v0 be valuation functions. We say that v0(o0) is
compatible with v(o), denoted by v0(o0) obj v(o), iff the types of both objects
are the same, or the type of o0 is a subtype of type of o, i.e., type(o) = type(o0)
or (type(o0), type(o)) 2 Ext, and for all attributes of o, we have that v0 agrees
with v, i.e., 8 a2 attr(o)v0(o0, a) = v(o, a). Intuitively, an object of a richer type (o0)
is compatible with the one of the base type (o), provided that the valuations of
all common attributes are equal.</p>
        <p>Let w = (O, v), w0 = (O0, v0) be worlds. We say that the world w0 is
compatible with the world w, denoted by w0 wrlw, iff there exists a one-to-one mapping
map : O 7 ! O0 such that 8 o2 Ov0(map(o)) obj v(o). Intuitively, w0 is
compatible with w if both of them contain the same number of objects and for each
object from w there exists a compatible object in w0. The world w0 is called
subcompatible with the world w, denoted by w0 swrlw iff there exists a sub-world
of w0 compatible with w.</p>
        <p>World transformations. One of the fundamental concepts in our approach
concerns a world transformation. A world w, called a world before, can be
transformed by a service type s, having specification specs, if w is sub-compatible
with some input world of s. The result of such a transformation is a world w0,
called a world after, in which the objects of outs appear, and, as well as the
objects of inouts, they are in the states consistent with some output world of s.
The other objects of w do not change their states. In a general case, there may
exist a number of worlds possible to obtain after a transformation of a given
world by a given service type, because more than one sub-world of w can be
compatible with an input world of s. Therefore, we introduce a context function,
which provides a strict mapping between objects from the worlds before and
after, and the objects from the input and output worlds of a service type s.</p>
        <sec id="sec-2-2-1">
          <title>Definition 5. A context function ctxsO : ins [ inouts [ outs 7 ! O is an</title>
          <p>injection, which for a given service type s and a set of objects O assigns an
object from O to each object from ins, inouts, and outs.</p>
          <p>Now, we can define a world transformation.</p>
          <p>Definition 6. Let w, w0 2 W be worlds, called a world before and a world after,
respectively, and s = (Wpsre, Wpsost) be a service type. Assume that w = (O, v),
w0 = (O0, v0), where O ✓ O0 ✓ O, and v, v0 are valuation functions. Let ctxsO0
be a context function, and the sets IN , IO, OU be the ctxsO0 images of the sets
ins, inouts, and outs, respect., i.e., IN = ctxsO0 ins , IO = ctxsO0 inouts , and
OU = ctxsO0 outs . Moreover, let IN, IO ✓ (O \ O0) and OU = (O0 \ O).</p>
          <p>We say that a service type s transforms the world w into w0 in the context
ctxsO0 , denoted by w s,c!txsO0 w0, if for some vpsre 2 Vpsre and vpsost 2 Vpsost, all the
following conditions hold:
1. IN, v(IN )</p>
          <p>wrl ins, vpsre(ins) ,
2. (IO, v(IO)) wrl inouts, vpsre(inouts) ,
3. (IO, v0(IO)) wrl inouts, vpsost(inouts) ,
4. (OU, v0(OU )) wrl outs, vpsost(outs) ,
5. 8 o2 (O\IO) 8 a2 attr(o) v(o, a) = v0(o, a).</p>
          <p>Intuitively, (1) the world before contains a sub-world built over IN , which is
compatible with a sub-world of some input world of the service type s, built
over the objects from ins. (2) The world before contains a sub-world built over
IO, which is compatible with a sub-world of the input world of the service type
s, built over the objects from inouts. (3) After the transformation the state of
objects from IO is consistent with posts. (4) The objects produced during the
transformation (OU ) are in a state consistent with posts. (5) The objects from
IN and the objects not involved in the transformation do not change their states.</p>
          <p>In the standard way we extend a world transformation to a sequence of world
transformations seq. We say that a world w0 is transformed by the sequence seq
into a world wn, denoted by w0 seq wn, iff there exists a sequence of worlds
⇢ = (w0, w1, . . . , wn) such that 8 1 i n wi 1 si,c!txsOii wi = (Oi, vi) for some vi.
Then, the sequence seq = (s1, . . . , sn) is called a transformation sequence and ⇢
is called a world sequence.</p>
          <p>Having the transformation sequences defined, we introduce the concept of
user query solutions or simply solutions, in order to define a plan.
Definition 7. Let seq be a transformation sequence, q = (Wiqnit, Weqxp) be a
user query. We say that seq is a solution of q, if for w 2 Wiqnit and some world
w0 such that w seq w0, we have w0 swrlweqxp, for some weqxp 2 Weqxp. The world
sequence corresponding to seq is called a world solution. The set of all the (world)
solutions of the user query q is denoted by QS(q) (W S(q), resp.).
Intuitively, by a solution of q we mean any transformation sequence transforming
some initial world of q to a world sub-compatible to some expected world of q.
Plans. Basing on the definition of a solution to the user query q, we can now
define the concept of an (abstract) plan, by which we mean a non-empty set of
solutions of q. We define a plan as an equivalence class of the solutions, which
do not differ in the service types used. The idea is that we do not want to
distinguish between solutions composed of the same service types, which differ only in
the ordering of their occurrences or in their contexts. So we group them into the
same class. There are clearly two motivations behind that. Firstly, the user is
typically not interested in obtaining many very similar solutions. Secondly, from
the efficiency point of view, the number of equivalence classes can be
exponentially smaller than the number of the solutions. Thus, two user query solutions
are equivalent if they consist of the same number of the same service types,
regardless of the contexts.</p>
          <p>Definition 8. Let seq 2 QS(q) be a solution of some user query q. An abstract
plan is a set of all the solutions equivalent to seq, denoted by [seq]⇠ .
It is important to notice that all the solutions within an abstract plan are built
over the same multiset of service types, so a plan is denoted using a multiset
notation, e.g., the plan [2S + 4T + 3R] consists of 2 services S, 4 services T , and
3 services R.</p>
          <p>In order to give the user a possibility to specify not only the initial and
expected states of a solution, we extend the user query with an LT Lk X formula
' specifying temporal aspects of world transformations in a solution. Then, the
temporal solutions are these solutions for which the world sequences satisfy ' .
This is formally introduced in the next section.
4</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Temporal Abstract Planning</title>
      <p>In this section we extend the user query by an LT Lk X temporal formula and a
solution to a temporal solution by requiring the temporal formula to be satisfied.
The choice of linear time temporal logic is quite natural since our user query
solutions are defined as sequences of worlds. The reason for disallowing a direct
use of the operator X (by removing it from the syntax) is twofold. Firstly, we
still aim at not distinguishing sequences which differ only in the ordering of
independent service types. Secondly, if the user wants to introduce the order on
two consequtive service types he can use formulas involving level constraints. On
the other hand our language and the temporal planning method can be easily
extended with the operator X.</p>
      <p>We start with defining the set of propositional variables, the level constraints,
and then the syntax and the semantics of LT Lk X .
4.1</p>
      <sec id="sec-3-1">
        <title>Propositional variables</title>
        <p>Let o 2 O be an object, a 2 attr(o). The set of propositional variables P V =
{pEx(o), pSet(o.a), pNull(o.a) | o 2 O, a 2 attr(o)}. Intuitively, pEx(o) holds
in each world, where the object o exists, pSet(o.a) holds in each world, where
the object o exists and the attribute a is set, and pNull(o.a) holds in each world,
where the object o exists and the attribute a is null.</p>
        <p>In addition to P V we use also the set of level constraints LC over the stamps
ST, defined by the following grammar:</p>
        <p>lc ::= lexp ⇠ lexp
lexp ::= c | s.level | lexp
lexp
(1)
where s 2 ST, c 2 Z, 2 {+, , ·, /, %}, ⇠ 2 { , &lt;, =, &gt;, }, and /, % stand
for integer division and modulus, respectively.</p>
        <p>Intuitively, s.level &lt; c holds in each world, where the stamp s exists and the
value of its level is smaller than c.
4.2</p>
        <sec id="sec-3-1-1">
          <title>Syntax of LT Lk X</title>
          <p>The LT Lk X formulae are defined by the following grammar:</p>
          <p>' ::= p | ¬p | lc | ¬lc | ' ^ ' | ' _ ' | ' U&lt;k' | ' R&lt;k' .
where p 2 P V , lc 2 LC, and k 2 N.</p>
          <p>Observe that we assume that the LT Lk X formulae are given in the negation
normal form (NNF), in which the negation can be only applied to the
propositional variables and the level constraints. The temporal modalities U&lt;k and
R&lt;k are named as usual k-restricted until and release, respectively. Intuitively,
' U&lt;k means that eventually, but in less than k steps, holds and always
earlier ' holds. The formula ' R&lt;k expresses that either for the next k 1 states
holds or in less than k steps, ' holds and always earlier holds.
The derived basic temporal modalities are defined as follows: F&lt;k' d=ef trueU&lt;k'
and G&lt;k' d=ef f alseR&lt;k' .</p>
          <p>Definition 9. A model is a pair M = (⇢, V ⇢ ), where ⇢ = (w0, w1, . . . , wn) is a
world solution with wi = (Oi, vi) for 0  i  n, and V⇢ : Sin=0{wi} ⇥ ST !
N [ {1} is the function over the worlds of ⇢ valuating the expressions of the
form stamp.level, defined as follows:
– V⇢ (wi, s.level) = 1 if s 62 Oi,
– V⇢ (wi, s.level) = 0 if s 2 O0,
– V⇢ (wi, s.level) = j if s 2 Oj and s 62 Oj 1, for some 1  j  i.
The intuition behind the definition of V⇢ is as follows. If a stamp s is not an
element of a world w, then the value of s.level in w does not exist, and this is
denoted by 1 . If a stamp s is an element of the world w0, then the value of
s.level is 0 in all the worlds. If wj is the world, where s appears for the first
time, then the value of s.level is equal to j in wj as well as in all further worlds.</p>
          <p>Before defining the semantics of LT Lk X we extend the stamp.level valuation
function V⇢ from ST to the level expressions as follows:
– V⇢ (wi, c) = c,
– V⇢ (wi, lexp</p>
          <p>V⇢ (wi, lexp0),
– V⇢ (wi, lexp
lexp0) = V⇢ (wi, lexp)</p>
          <p>V⇢ (wi, lexp0) if V⇢ (wi, lexp) 6= 1 6 =
lexp0) = 1 if V⇢ (wi, lexp) = 1 or V⇢ (wi, lexp0) = 1 ,
We say that an LT Lk X formula ' is true in M = (⇢, V ⇢ ) (in symbols M |= ' )
iff w0 |= ' , where for m  n we have:
– wm |= pEx(o) iff o 2 Om.
The semantics of the propositions follows their definitions, for the level
constraints the semantics is based on the valuation function V⇢ , whereas for the
temporal operators the semantics is quite standard. Note that we interpret our
language over finite sequences as the solutions we are dealing with are finite.</p>
          <p>Now, by a temporal query we mean a query (as defined in the former section)
extended with an LT Lk X formula ' . The temporal solutions are these solutions
for which the world sequences satisfy ' . A temporal plan is an equivalence class
of the temporal solutions, defined over the same multiset of services.
5</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Example of Temporal Abstract Planning</title>
      <p>This section contains an example showing how the abstract temporal planning
can be used in practice for a given ontology and user (temporal) queries.





















</p>
      <p>Consider the ontology depicted in Fig. 2. In the Artif act branch one can see
several types of objects, like, e.g., Arbour (the main point of interest of this
example), which is a subclass of W are, P aintableArtif act, and Construction. At
the left hand side the Service branch and its subclasses are located. The service
Select (St) is able to search any W are, Selling (Sg) allows to purchase it, while
T ransport (T ) can be used to change its location. The P ainting (P ) service
is able to change colour of any P aintableArtif act, but it needs to use some
P aint. The Building (B) service can be used to obtain some Construction, but
it needs BuildingM aterials. Finally, two subclasses of Building are specialized
in production of wooden constructions using the supplied boards and nails. The
services W oodBuilding (W b) and W oodBuildingLux (W bx) are similar, but
the latter also paints the product to the chosen colour using their own paint,
however for a higher price.</p>
      <p>Assume the user wants to get a wooden arbour painted in blue. He formulates
the query as follows: in = inout = ; , pre = true, out = {Arbour a}, post =
(a.colour = blue ^ a.owner = M e ^ a.location = M yAddress). The post
formula is automatically translated to its abstract form, that is (isSet(a.colour)
^ isSet(a.owner) ^ isSet(a.location)). The shortest plans are [St + Sg] and
[St + Sg + T ]. The former satisfies the user query only if the Selling service is
located in a close proximity of the user’s address.</p>
      <p>Assume that during the next planning steps (i.e., the offer collecting and
the concrete planning) those plans turn out to have no realization acceptable
by the user. Perhaps, there are no blue arbours in nearby shops or they are
too expensive. Then, the alternative plan is to buy and transport an arbour
in any colour, as well as some blue paint, and then use the P ainting service:
[2St + 2Sg + 2T + P ], where one triple of services (St, Sg, T ) provides the arbour,
and the other a blue paint.</p>
      <p>However, it could be the case that, e.g., the transport price of such a big
object like an arbour exceeds the budget. If so, the possible solution is to buy
boards, nails, and paint, transport them to the destination address, then to
assembly the components with an appropriate building service, and paint, finally.
This scenario is covered, for example, by the following plan: [3St + 3Sg + 3T +
W b + P ], where the triples of services (St, Sg, T ) provide and transport boards,
nails, and the paint.</p>
      <p>Although, there are over eight hundred abstract plans of length from 2 to 11
satisfying the above user query, including these with multiple transportations of
the arbour, or painting it several times. In order to restrict the plans to more
specific ones, the user can refine the query demanding of specific types of
services to be present in the plan using stamps. Thus, for example, by adding the
following set of stamps to out: {Stamp t1, Stamp t2, Stamp t3} and extending
post by: Vi=1..3(ti.serviceClass instanceOf T ransport), the number of possible
abstract plans (of length from 2 to 11) can be reduced below two hundred. Then,
if instead of buying a final product the user wants to buy and transport the
components, in order to build and paint the arbour, he can add two more stamps and
conditions to the query. That is, by adding to out the set {Stamp b, Stamp p},
and by extending post by the expression (^ b.serviceClass instanceOf Building
^ t3.serviceClass instanceOf P ainting), one can reduce the number of
resulting plans to 2 only: [3St + 3Sg + 3T + W b + P ] and [3St + 3Sg + 3T + W bx + P ].</p>
      <p>However, even 2 abstract plans only can be realized in a number of different
ways, due to possible many transformation contexts, and the number of different
partial orders represented by a single abstract plan. If the user wants to further
reduce the number of possible plan realizations by interfering with an order of
services, he should specify some temporal restrictions. For example, if the user
wants to ensure that all the transports are executed before the building starts,
he can express it as a formula:</p>
      <p>' 1 = F (b.level &gt; t1.level) ^ (b.level &gt; t2.level) ^ (b.level &gt; t3.level))
Moreover, if the intention of the user is to proceed with some service directly
after another one, for example, to start building just after the third transport,
one can express such a constraint as:</p>
      <p>' 2 = F(b.level = t3.level + 1)</p>
      <p>Moreover, using a temporal query the user can prevent some services from
occurring in the plan. For example, using the following formula:
' 3 = ¬pEx(a) U pNull(a.colour),
which means that just after the arbour has been produced, its colour is not set,
the user excludes the W oodBuildingLux service (which builds and paints the
arbour).</p>
      <p>The other possibility of extending the user query by a temporal component
includes using the k-restricted versions of modal operators. For example, consider
the following formula:</p>
      <p>' 4 = F&lt;10(pEx(t1) ^ pEx(t2) ^ pEx(t3)),
which states that three transportations should be executed in the first nine steps
of the plan.
6</p>
    </sec>
    <sec id="sec-5">
      <title>Implementation, Experiments, and Conclusions</title>
      <p>In this section we sketch the implementation of the propositions and the level
constraints, and then we evaluate the efficiency of our tool using several scalable
benchmarks.
6.1</p>
      <sec id="sec-5-1">
        <title>Implementation</title>
        <p>The implementation of the propositions and the level constraints exploits our
symbolic representation of world sequences. The objects and the worlds are
represented by sets of variables, which are first allocated in the memory of an
SMT-solver, and then used to build formulas mentioned in Section 4. The
representation of an object is called a symbolic object. It consists of an integer
variable representing the type of an object, called a type variable, and a number
of Boolean variables to represent the object attributes, called the attribute
variables. In order to represent all types and identifiers as numbers, we introduce a
function num : A [ P [ S [ O 7 ! N, which with every attribute, object type,
service type, and object assigns a natural number.</p>
        <p>A symbolic world consists of a number of symbolic objects. Each symbolic
world is indexed by a natural number from 0 to n. Formally, the i-th symbolic
object from the j-th symbolic world is a tuple: oi,j = (ti,j , ai,0,j , ..., ai,maxat 1,j ),
where ti,j is the type variable, ai,x,j is the attribute variable for 0  x &lt; maxat,
where maxat is the maximal number of the attribute variables needed to
represent the object.</p>
        <p>Note that actually a symbolic world represents a set of worlds, and only
a valuation of its variables makes it a single world. The j-th symbolic world
is denoted by wj , while the number of the symbolic objects in wj - by |wj |.
Note that the set of the initial worlds of the query q (Wiqnit) is represented by a
symbolic world w0. Fig. 3 shows subsequent symbolic worlds of a transformation
sequence.</p>
        <p>One of the important features of our encoding is that for a given index of a
symbolic object i we are able to determine the step of a solution, in which the
object was produced. This is done by the function levq : N 7! N, such that for a
levq(i) =
(0 for i &lt; |w0|
b (mi|axwo0u|t) c + 1 for i
|w0|
(2)
where maxout is the maximal number of the objects produced by a single service.</p>
        <p>Another important feature of our encoding is that the objects of outq need
to be identified among the objects of the symbolic world wn (of indices greater
than |w0|). To this aim, we allocate a new symbolic world we (with e = n + 1),
containing all the objects from outq. Note that the world we is not a part of a
Final
wn
o0,n1
o1,n1
o2,n
o3,n m0,e
o4,n
m1,e
m2,e
o5,n
o6,n
ox,n</p>
        <p>
          Expected
we
o0,e
o1,e
o2,e
outq
world solution, but it provides a set of additional, helper variables. Finally, we
need a mapping between the objects from a final world wn produced during the
subsequent transformations and the objects from we. To this aim we allocate p
additional mapping variables in the symbolic world we, where p = |outq|. These
variables, denoted by m0,e, . . . , mp 1,e, are intended to store the indices of the
objects from a final world, which are compatible with the objects encoded over
we. Thus, we encode the state of the expected worlds of the query q (Weqxp),
imposed by postq, using two sets of symbolic objects. The objects of inq [ inoutq
are encoded directly over the (final) symbolic world wn. The state of the
objects from outq are encoded over we, and since their indices are not known, all
possible mappings between objects from we and wn are considered, by encoding
a disjunction of equalities between objects from we and wn. See [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] for more
details.
        </p>
        <p>The translation of the propositions defined over the objects and their
attributes of a user query q in a symbolic world wm (0  m  n) is as follows:
8&gt; true, for o 2 inq [ inoutq,
[pEx(o)]m = &lt; f alse, for o 2 outq, m = 0,</p>
        <p>&gt;: levq(mnum(o),e)  m, for o 2 outq, m &gt; 0.</p>
        <p>That is, the objects from the initial world exist in all the subsequent worlds, the
objects from the out set do not exist in the world w0, and they appear in some
subsequent world. Then, since the index of the object o is stored as the value of
corresponding mapping variable mnum(o),e, we can determine if it exists in the
world wm using the levq function.</p>
        <p>The proposition pSet(o.a) is encoded over the symbolic world wm as:
[pSet(o.a)]m = [pEx(o)]m ^
(aj,x,m, for o 2 inq [ outq,</p>
        <p>W|iw=m|w|0|1(mj,e = i ^ ai,x,m), for o 2 outq
where j = num(o) and x = num(a).</p>
        <p>It follows from our symbolic representation that the indices of objects from
an initial world are known, and we can get the value of the appropriate attribute
variable directly. However, in the case of objects from outq we have to consider
all possible mappings between objects from we and wm. Note that the encoding
of the proposition pNull(o.a) over the symbolic world wm (i.e., [pNull(o.a)]m)
is very similar. The only change is the negation of ai,x,m in the above formula.</p>
        <p>In order to encode the level constraints, we introduce a set of the special level
variables. That is, for every stamp s used in some level constraint we introduce
to the world we an additional integer variable li,e, where i = num(s), intended
to store the level value of the stamp s. The level value is assigned to li,e using
the following formula [bind(i)] := (li,e = levq(mi,e)) for i = num(s), where q
is a user query. Then, for every stamp s used in a level constraint we add the
corresponding [bind(num(s))] formula as an SMT assertion. Thus, the encoding
of the level constraints is as follows:
(3)
(4)
8&gt; c for lexp = c
&lt;
[lexp] = li,e, for lexp = s.level, i = num(s)
&gt;: [lexp0] [lexp00] for lexp = lexp0
lexp00
(5)</p>
        <p>The encoding of arithmetic operators is straightforward, since they are
supported by theories built in SMT-solvers, like, e.g., Linear Integer Arithmetic or
Bitvector theory. In what follows, [' ]nm denotes the translation of the formula '
at the state wm of the world sequence of length n + 1.</p>
        <sec id="sec-5-1-1">
          <title>Definition 10 (Translation of the LT Lk X formulae to SMT). Let ' be an</title>
          <p>LT Lk X formula, (w0, . . . , wn) be a sequence of symbolic worlds, and 0  m  n.
•• [[p¬]pnm]nm:=:=[p¬]m[p,] mfo,r fpor2pP2VP, V ,
• [lexp0 ⇠ lexp00]nm := [lexp0] ⇠ [lexp00] Vs2 st(lexp0)[pEx(s)]m</p>
          <p>Vs2 st(lexp00)[pEx(s)]m,
• [¬lc]nm := ¬[lc]nm, for lmc 2 LC,
• [' ^ ]nm := [' ]nm ^ [ ]n ,
• [' _ ]nm := [' ]nm _ [ ]nm,
• [' U&lt;k ]nm := Wim=imn(m+k,n)([ ]in ^ Vij=1m[' ]jn),
• [' R&lt;k ]nm := Vim=imn(m+k,n)[ ]in _ Wim=imn(m+k,n)([' ]in ^
Vij=m[ ]jn),
where st(lexp) returns the set of the stamps over which the expression lexp is
built.</p>
          <p>Theorem 1. The encoding of the temporal query is correct.</p>
          <p>Proof. This can be shown by induction on the length of a formula. Omitted here
because of lack of space3.
6.2</p>
        </sec>
      </sec>
      <sec id="sec-5-2">
        <title>Experimental Results</title>
        <p>
          In order to evaluate the efficiency of our approach we performed several
experiments using standard PC with 2GHz CPU and 8GB RAM, and Z3 [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]
version 4.3 as an SMT-solver. The results are summarized in Table 1. Using our
Ontology Generator (OG) we generated 15 ontologies, each of them
consisting of 150 object types and from 64 to 256 service types (the column named
n of Tab. 1). For each ontology a query has been generated in such a way
that it is satisfied by exactly 10 plans of length from 6 to 18 (the parameter
k). The queries demand at least two objects to be produced, and impose
restrictions on (abstract) values of some of their attributes. A generated query
example is as follows: in = {Rjlbp rjlbp1}, inout = {Bozwd bozwd1}, out =
{Opuf o opuf o1, Ehxjb ehxjb2}, pre = isSet(bozwd1.avg) ^ isSet(rjlbp1.ppw),
3 The full version of this paper is available at http://artur.ii.uph.edu.pl/pnse14ltl.pdf.
post = isSet(opuf o1.epv) ^ isN ull(bozwd1.dyn) ^ isSet(ehxjb2.zdv) ^
isN ull(ehxjb2.rxz) ^ isSet(bozwd1.f sl).
        </p>
        <p>First, we ran our planner for each ontology and each query instance without
a temporal query (column 1), in order to collect statistics concerning the time
needed to find the first plan (P1), all 10 plans (P10), as well as the total time
(column T) and the memory consumed (M) by the SMT-solver in order to find
all the plans and checking that no more plans of length k exist. We imposed the
time limit of 1000 seconds for the SMT-solver. Each time-out is reported in the
table by T O. It is easy to observe that during these experiments as many as 9
instances ran out of time.
The next experiments involve temporal queries using level constraints. To
this aim we extended the out set of the generated queries by the appropriate
stamp set. Moreover, the post formulas of the queries have been also extended
k
with the expression: Vib=21c(si.serviceClass instanceOf Ci), where si 2 ST, while
Ci 2 S are service types occurring in the solutions generated by OG.</p>
        <p>Our second group of experiments involved the temporal formula 2:
k
b 2 c 1
2 = F( ^ si.level &lt; si+1.level),</p>
        <p>i=1
which expresses that about a half of the stamps being effects of the solution
execution, should be produced in the given order. We do not present detailed
results, because they are in general comparable with the performance in the
former experiments. Similarly, there are 9 time-outs, but the time and the memory
consumption varies a bit - for some cases the results are slightly better, while
for others are a little worse.</p>
        <p>In the third group of the experiments we imposed stronger restrictions on
the possible service orders of the solutions using the following formula:
This formula still leaves a certain degree of freedom in a service ordering,
however its encoding as an SMT-instance is more compact, since the constant values
are introduced in place of some level variables. Thus, probably, it is also easier
to solve. The results are summarized in the column 3 in Table 1. It is easy to
observe that the time and the memory consumption is significantly lower.
Moreover, the number of time-outs dropped to 6. Thus, this is an example showing
an improvement in the planning efficiency using a temporal query.</p>
        <p>Our next experiment involves the formula 4 specifying the strict ordering
of several services in the solution using stamp-based level constraints:
The analysis of the results (given in the column 4 of Table 1) indicates a
dramatic improvement of our planner efficiency, in terms of time and memory
consumption by the SMT-solver. Moreover, in this experiments group the
planner has been able to terminate its computations in the given time limit for all
but one instances.</p>
        <p>Finally, we want to confront the planner behaviour with other kind of
temporal formulae. Using the Until modality, we demand that one of the objects
from outq has to be produced no later than in the middle of the plan. Moreover,
knowing the structure of the generated queries, we impose that after the object
appears one of its attributes should already be set. This is expressed by the
following formula:</p>
        <p>5 = ¬pEx(o) U&lt;d k2 e pSet(o.a)
where o 2 outq, a 2 attr(o), and the expression isSet(o.a) is not contradictory
with postq. The results has been summarised in column 5 of Table 1. It is easy
to observe that also this time the plans have been found faster and using less
memory than in the case when no temporal formula is involved.
7</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Conclusions</title>
      <p>In this paper we have applied the logic LT Lk X to specifying temporal queries
for temporal planning within our tool Planics. This is a quite natural extension
of our web service composition system, in which the user gets an opportunity to
specify more requirements on plans. These requirements are not only declarative
any more. The overall conclusion is that the more restrictive temporal query,
the more efficient planning, given the same ontology. Assuming that the more
restrictive temporal queries, the longer formulas expressing them, the above
conclusion shows a difference with model checking, where the complexity depends
exponentially on the length of an LT Lk X formula.</p>
      <p>Our temporal planner is the first step towards giving the user even more
freedom by defining a so-called parametric approach. We aim at having a planner
which in addition to the current capabilities, could also suggest what extensions
to the ontology or services should be made in order to get better or unrealizable
plans so far. This is going to be a subject of our next paper.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>S.</given-names>
            <surname>Ambroszkiewicz</surname>
          </string-name>
          .
          <article-title>Entish: A language for describing data processing in open distributed systems</article-title>
          . Fundam. Inform.,
          <volume>60</volume>
          (
          <issue>1-4</issue>
          ):
          <fpage>41</fpage>
          -
          <lpage>66</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>M.</given-names>
            <surname>Bell</surname>
          </string-name>
          .
          <article-title>Introduction to Service-Oriented Modeling</article-title>
          . John Wiley &amp; Sons,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>J.</given-names>
            <surname>Bentahar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Yahyaoui</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kova</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Z.</given-names>
            <surname>Maamar</surname>
          </string-name>
          .
          <article-title>Symbolic model checking composite web services using operational and control behaviors</article-title>
          .
          <source>Expert Systems with Applications</source>
          ,
          <volume>40</volume>
          (
          <issue>2</issue>
          ):
          <fpage>508</fpage>
          -
          <lpage>522</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>L.</given-names>
            <surname>Bentakouk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Poizat</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Zaidi</surname>
          </string-name>
          .
          <article-title>Checking the behavioral conformance of web services with symbolic testing and an SMT solver</article-title>
          .
          <source>In Tests and Proofs</source>
          , volume
          <volume>6706</volume>
          <source>of LNCS</source>
          , pages
          <fpage>33</fpage>
          -
          <lpage>50</lpage>
          . Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>M. M. Bersani</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <string-name>
            <surname>Cavallaro</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Frigeri</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Pradella</surname>
            , and
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Rossi</surname>
          </string-name>
          .
          <article-title>SMT-based verification of LTL specification with integer constraints and its application to runtime checking of service substitutability</article-title>
          .
          <source>In SEFM</source>
          , pages
          <fpage>244</fpage>
          -
          <lpage>254</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>V.</given-names>
            <surname>Chifu</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Salomie</surname>
          </string-name>
          , and
          <string-name>
            <given-names>E.</given-names>
            <surname>St. Chifu</surname>
          </string-name>
          .
          <article-title>Fluent calculus-based web service composition - from OWL-S to fluent calculus</article-title>
          .
          <source>In Proc. of the 4th Int. Conf. on Intelligent Computer Communication and Processing</source>
          , pages
          <fpage>161</fpage>
          -
          <lpage>168</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <string-name>
            <surname>7. L. M. de Moura</surname>
            and
            <given-names>N.</given-names>
          </string-name>
          <string-name>
            <surname>Bjørner</surname>
          </string-name>
          . Z3:
          <article-title>An efficient SMT solver</article-title>
          .
          <source>In Proc. of TACAS'08</source>
          , volume
          <volume>4963</volume>
          <source>of LNCS</source>
          , pages
          <fpage>337</fpage>
          -
          <lpage>340</lpage>
          . Springer-Verlag,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>D.</given-names>
            <surname>Doliwa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Horzelski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Jarocki</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Niewiadomski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Penczek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Półrola</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Skaruz. HarmonICS -</surname>
          </string-name>
          <article-title>a tool for composing medical services</article-title>
          .
          <source>In ZEUS</source>
          , pages
          <fpage>25</fpage>
          -
          <lpage>33</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>D.</given-names>
            <surname>Doliwa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Horzelski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Jarocki</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Niewiadomski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Penczek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Półrola</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Szreter</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Zbrzezny. PlanICS -</surname>
          </string-name>
          <article-title>a web service compositon toolset</article-title>
          .
          <source>Fundam</source>
          . Inform.,
          <volume>112</volume>
          (
          <issue>1</issue>
          ):
          <fpage>47</fpage>
          -
          <lpage>71</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>M. Elwakil</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          <string-name>
            <surname>Yang</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <string-name>
            <surname>Wang</surname>
            , and
            <given-names>Q.</given-names>
          </string-name>
          <string-name>
            <surname>Chen</surname>
          </string-name>
          .
          <article-title>Message race detection for web services by an SMT-based analysis</article-title>
          .
          <source>In Proc. of the 7th Int. Conference on Autonomic and Trusted Computing, ATC'10</source>
          , pages
          <fpage>182</fpage>
          -
          <lpage>194</lpage>
          . Springer,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>V.</given-names>
            <surname>Gehlot</surname>
          </string-name>
          and
          <string-name>
            <given-names>K.</given-names>
            <surname>Edupuganti</surname>
          </string-name>
          .
          <article-title>Use of colored Petri nets to model, analyze, and evaluate service composition and orchestration</article-title>
          .
          <source>In System Sciences</source>
          ,
          <year>2009</year>
          . HICSS '
          <volume>09</volume>
          ., pages
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          , jan.
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>A. E. Gerevini</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Haslum</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Long</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Saetti</surname>
            , and
            <given-names>Y.</given-names>
          </string-name>
          <string-name>
            <surname>Dimopoulos</surname>
          </string-name>
          .
          <article-title>Deterministic planning in the fifth international planning competition: PDDL3 and experimental evaluation of the planners</article-title>
          .
          <source>Artificial Intelligence</source>
          ,
          <volume>173</volume>
          (
          <issue>5-6</issue>
          ):
          <fpage>619</fpage>
          -
          <lpage>668</lpage>
          ,
          <year>2009</year>
          . Advances in
          <source>Automated Plan Generation.</source>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>S.</given-names>
            <surname>Hao</surname>
          </string-name>
          and
          <string-name>
            <surname>L. Zhang.</surname>
          </string-name>
          <article-title>Dynamic web services composition based on linear temporal logic</article-title>
          .
          <source>In Information Science and Management Engineering (ISME)</source>
          , 2010 International Conference of, volume
          <volume>1</volume>
          , pages
          <fpage>362</fpage>
          -
          <lpage>365</lpage>
          ,
          <year>Aug 2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>Z.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. O</given-names>
            <surname>'Brien</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Keung</surname>
          </string-name>
          , and
          <string-name>
            <given-names>X.</given-names>
            <surname>Xu</surname>
          </string-name>
          .
          <article-title>Effort-oriented classification matrix of web service composition</article-title>
          .
          <source>In Proc. of the Fifth International Conference on Internet and Web Applications and Services</source>
          , pages
          <fpage>357</fpage>
          -
          <lpage>362</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>G.</given-names>
            <surname>Monakova</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Kopp</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Leymann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Moser</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Schäfers</surname>
          </string-name>
          .
          <article-title>Verifying business rules using an SMT solver for BPEL processes</article-title>
          .
          <source>In BPSC</source>
          , pages
          <fpage>81</fpage>
          -
          <lpage>94</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16. W. Nam,
          <string-name>
            <given-names>H.</given-names>
            <surname>Kil</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Lee</surname>
          </string-name>
          .
          <article-title>Type-aware web service composition using boolean satisfiability solver</article-title>
          .
          <source>In Proc. of the CEC'08 and EEE'08</source>
          , pages
          <fpage>331</fpage>
          -
          <lpage>334</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>A.</given-names>
            <surname>Niewiadomski</surname>
          </string-name>
          and
          <string-name>
            <given-names>W.</given-names>
            <surname>Penczek</surname>
          </string-name>
          .
          <article-title>Towards SMT-based Abstract Planning in PlanICS Ontology</article-title>
          .
          <source>In Proc. of KEOD 2013 - International Conference on Knowledge Engineering and Ontology Development</source>
          , pages
          <fpage>123</fpage>
          -
          <lpage>131</lpage>
          ,
          <year>September 2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>A.</given-names>
            <surname>Niewiadomski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Penczek</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Półrola</surname>
          </string-name>
          .
          <article-title>Abstract Planning in PlanICS Ontology. An SMT-based Approach</article-title>
          .
          <source>Technical Report 1027</source>
          ,
          <string-name>
            <surname>ICS</surname>
            <given-names>PAS</given-names>
          </string-name>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <article-title>OWL 2 web ontology language document overview</article-title>
          . http://www.w3.org/TR/owl2- overwiew/,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>J. Rao</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Küngas</surname>
            , and
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Matskin</surname>
          </string-name>
          .
          <article-title>Composition of semantic web services using linear logic theorem proving</article-title>
          .
          <source>Inf. Syst.</source>
          ,
          <volume>31</volume>
          (
          <issue>4</issue>
          ):
          <fpage>340</fpage>
          -
          <lpage>360</lpage>
          ,
          <year>June 2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <given-names>J.</given-names>
            <surname>Rao</surname>
          </string-name>
          and
          <string-name>
            <given-names>X.</given-names>
            <surname>Su</surname>
          </string-name>
          .
          <article-title>A survey of automated web service composition methods</article-title>
          .
          <source>In Proc. of SWSWPC'04</source>
          , volume
          <volume>3387</volume>
          <source>of LNCS</source>
          , pages
          <fpage>43</fpage>
          -
          <lpage>54</lpage>
          . Springer,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>J. Skaruz</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Niewiadomski</surname>
            , and
            <given-names>W.</given-names>
          </string-name>
          <string-name>
            <surname>Penczek</surname>
          </string-name>
          .
          <article-title>Automated abstract planning with use of genetic algorithms</article-title>
          .
          <source>In GECCO (Companion)</source>
          , pages
          <fpage>129</fpage>
          -
          <lpage>130</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>P.</given-names>
            <surname>Traverso</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Pistore</surname>
          </string-name>
          .
          <article-title>Automated composition of semantic web services into executable processes</article-title>
          .
          <source>In The Semantic Web - ISWC</source>
          <year>2004</year>
          , volume
          <volume>3298</volume>
          <source>of LNCS</source>
          , pages
          <fpage>380</fpage>
          -
          <lpage>394</lpage>
          .
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>