Page 125 -
P. 125
112 M. Wynn et al.
c1 C c4 E c7
A c5 D c6 F
c2 B c3
Fig. 3.5 A YAWL net with an OR-join task E preceding another OR-join task F
not possible, the OR-join will be enabled. Consider again M D c1 C c3 in Fig. 3.5,
where an OR-join analysis for task F would be performed. This time, instead of
ignoring task E, it will be treated as an AND-join task. Because of the OR-split
behavior of task C, tokens can be present in c4 or c5 or both after firing C.The
C D E
occurrence sequence c1 C c3 ! c3 C c4 C c5 ! c3 C c4 C c6 ! c3 C c7 is
possible. As a token can be put in c7 while c3 remains marked, F is not enabled at
M . This preserves the same informal semantics as an optimistic approach, and both
approaches result in delaying the enablement of the OR-join task F.
Both optimistic and pessimistic approaches support the informal semantics by
delaying enablement when there is the possibility of more tokens arriving at the
unmarked input conditions of an OR-join. Hence, they are more closely related to
the informal semantics of OR-joins and still allow for sound semantics. This strategy
is better than ignoring these OR-joins completely during the analysis.
Clearly, any formal semantics impose some restrictions or deviate from the infor-
mal semantics to some extent. The motivation behind our semantics and the use of
the optimistic approach is to postpone execution of an OR-join for as long as possi-
ble. For this reason, the optimistic approach (XOR-join treatment) is chosen during
the analysis. The resulting OR-join semantics are well-defined in all circumstances.
However, the interpretation of this semantics can sometime lead to a deadlock in the
presence of vicious circles, as both OR-joins will wait for each other to fire first.
3.4 Operationalizing the OR-Join
The proposed OR-join semantics as defined in this chapter has been implemented in
the YAWL framework. To ensure an efficient implementation of the algorithm, we
propose two optimization techniques to speed up the OR-join analysis, which are
described in this section.
3.4.1 Algorithm
We now describe the implemented algorithm in a bit more detail. Given a YAWL net
N with one or more OR-joins, the following steps are taken to determine whether
an OR-join oj is enabled at a marking M of N.Let P i be a set of input conditions