Page 100 -
P. 100
2 The Language: Rationale and Fundamentals 87
2.7 Syntax
This section presents a complete abstract syntax for YAWL. A YAWL specification
is a set of YAWL nets that form a rooted graph structure. Each YAWL net is composed
of a series of tasks. All of these notions are now formalized, starting with the YAWL
specification.
Definition 12. (YAWL Specification) A YAWL specification is a tuple = (NetID,
ProcessID, TaskID, MITaskID, VarID, ParamID, TNmap, NYmap, VarName, Data-
Type, VName, DType, VarType, VNmap, VTmap, VMmap) such that:
(* global objects *)
NetID is the set of net identifiers (i.e., the top-level process together with all
subprocesses);
ProcessID 2 NetID is the process identifier (i.e., the top-level net);
TaskID is the set of task identifiers in nets;
MITaskID TaskID is the set of identifiers of multiple instance tasks;
VarID is the set of variable identifiers used in nets;
ParamID is the set of parameter identifiers used in nets;
(* decomposition *)
TNmapW TaskID NetID defines the mapping between composite tasks and
their corresponding subprocess decompositions, which are specified in the form
of a YAWL net, such that for all t, TNmap.t/ yields the NetID of the correspond-
ing YAWL-net, if it exists;
NYmapW NetID ! YAWLnet, that is, each net has a complete description of its
contents such that for all n 2 NetID, NYmap(n) is governed by Definition 13,
where the notation T n denotes the set of tasks that appear in a net n. Tasks are
not shared between nets, hence 8 m;n2NetID ŒT m \ T n ¤ ∅ ) m D n . TaskID is
S
T n ;
the set of tasks used in all nets and is defined as TaskID D n2NetID
In the directed graph defined by G D .NetID; f.x; y/ 2 NetID NetID j9 t2T x Œt 2
dom.TNmap/ ^ TNmap.t/ D y g/, there is a path from ProcessID to any node
n 2 NetID;
(* variables *)
VarName is the set of variable names used in all nets;
DataType is the set of data types;
VNameW VarID ! VarName identifies the name for a given variable;
DTypeW VarID ! DataType identifies the underlying data type for a variable;
VarTypeW VarID !fNet; Task; MIg describes the various variable scopings that
x
are supported. The notation VarID Dfv 2 VarID j VarType.v/ D xg identifies
variables of a given type;
VNmapW VarID Net ! NetID identifies the specific net to which each net variable
corresponds, such that dom.VNmap/ D VarID Net I