a logical specification compatible to an ontology O
such that LS contains the concrete domain B of boo-
leans as well as a sort ⊥
undef
, with ⊥⊥
undef
C
for all C =⊥.
A Service Description Net is a tuple SDN =
def
(LS,X,N ,d,W,G,act) where
• LS =(S, ≤, Ω,E,Π) is a logical specification
as defined in Def. 4,
• X is a set of LS-variables,
•N=(P, T, F ) is a Petri net,
• d : P → S is a place typing,
• W : F → X is an arc inscription such that for
p ∈ P and f ∈ F we have W (f) ∈ (X
s
\
Bound(act(t))) with d(p) ≤ s if f =(p, t) and
W (f ) ∈ X
s
with s ≤ d(p) if f =(t, p),
• G : T → T
Σ,Bool
(X) assigns an enabling con-
dition to each transition, and
• act : T → Act(X) assigns a regular and consis-
tent set of assignments and updates to each tran-
sition as defined in Def. 4.
A Service Description Net together with an initial
state Q
0
=(m
0
, I
0
LS
) consisting of an initial mar-
king m
0
: P → T
Σ
such that for m
0
(p) ∈ T
Σ,s
we
have s ≤ d(p) for all p ∈ P and an initial interpreta-
tion I
0
LS
=(S
I
0
, Ω
I
0
, Π
I
0
) of LS =(S, ≤, Ω,E,Π)
is called a Service Description Net system. ♦
To guarantee the executability of Service Descrip-
tion Nets, we require that a variable used on an output
arc of a transition is either also used on an input arc
or defined through an assignment, thus reducing the
search space for possible bindings.
Definition 6 (State, Marking, Enabling and Firing).
A marking m of a Service Description Net SDN is
a mapping m : P → T
Σ
such that m(p) ∈ T
Σ,s
with s ≤ d(p) for p ∈ P .Astate Q =(m, I
LS
)
is a marking together with an interpretation I
LS
=
(S
I
, Ω
I
, Π
I
) of LS.
A transition t is enabled under a variable assi-
gnment α : X → A iff the evaluation of the activation
condition ¯α(G(t)) = true and for all places p ∈ P
we have m(p) ≥ ¯α(W (p, t)) and α assigns a value to
each free variable in act(t).
The firing of a transition under a variable binding
α is denoted as state transition Q
t,α
−−→ Q
which
is again split into m
t,α
−−→ m
and I
LS
t,α
−−→I
LS
.
m
is defined for each place p ∈ P as m
(p)=
m(p) − α(W (p, t)) + α(W (t, p)). The interpreta-
tion I
LS
=(S
I
, Ω
I
, Π
I
) is defined as in Defini-
tion 4 by successively applying the predicate upda-
tes (update t
.π = t
) ∈ act(t) resulting in a sequence
Π
I
=Π
0
I
,...,Π
n
I
=Π
I
with Π
i+1
I
=(Π
i
I
\{π
i
I
}) ∪
{(π
i
I
\{(¯α(t),x)}) ∪{(¯α(t), ¯α(t
))}} for some value
x. ♦
For convenience reasons we introduce two abbre-
viating notions for Service Description Net inscripti-
ons:
5. update t
.π = v
⇒ t
, which is equivalent to the
assignment assign v
= t
.π together with the predi-
cate update update t
.π = t
, and
6. t
.π within a term expression, which is equivalent
to assign v
= t
.π and the usage of v
instead.
The second abbreviation allows us to write e.g.
assign v =
book.author.name instead of
assign v1 =
book.author and assign v = v1.name
Additionally we require a repository containing a sub-
set of A where assignments of the form (assign v =
new s) can retrieve an a ∈ A
s
that has not been pre-
viously used in the net. Practically this is done by a
pool, from which an element is taken. For most prac-
tical scenarios we have a finite set of items, so that we
can determine an upper bound as the size of the pool.
Furthermore it is often convenient in practice to
have not only binary relations but relations of arbi-
trary arity. Here, we will only consider functional re-
lations and call them predicates as well. For an n-ary
predicate π we additionally introduce
assign (v
1
,...,v
j
) = π(t
1
,...,t
i
), (i + j = n)
which replaces the value of v
1
,...,v
i
by appropriate
values such that (t
1
,...,t
i
,v
1
,v
j
) ∈ π
LS
.
Through this, we can express database queries or
external queries that assign values to more than one
variable. In Figure 4.1 such an assignment operation
would be priceLookup. For these assignments the
definition of the logical specification has to be modi-
fied, to allow n-ary predicates.
There are some specialties about the net definition
above. We allow only one concept instance on each
place. Having more than one concept instance on a
single place results in picking one instance nonde-
terministicly, if more than one instance satisfies the
guards of a transition. Nondeterminism, however, is
rarely intended and only complicates planning. Addi-
tionally by restricting the number of tokens on a place
to one, the underlying net becomes safe and will be
easier to analyze. This restricts the expressiveness of
the net on the one hand, but makes planning and ana-
lyzing easier on the other hand. Although the change
of roles (i.e. binary relations) could also be modeled
by Transform nets as defined above, we omitted them,
since we did not introduce flexible assignments. The-
refore, in Figure 4.1 only attributes have been mode-
led.
5 EXAMPLE REVISITED
Let us return to the SD Net in Figure 4.1 again. We
will now explain the first steps the net might take. We
have the following ontology and the following initial
DYNAMIC SERVICE COMPOSITION: A PETRI-NET BASED APPROACH
163