5.4.6 Yield and Acyclicity

The yield of a node is the set of nodes reachable through the transitive closure of complement and modifier edges, i.e. by traversing 0 or more dependency edges. We distinguish between yield and strict yield and introduce the corresponding variables \Feature{yield}(w) and \Feature{yieldS}(w). The strict yield of w is the set of all descendents of w that can be reached by traversing 1 or more dependency edges. The yield of w is obtained by adding w to its strict yield. In order to enforce acyclicity, we must require that w does not occur in its strict yield. Therefore it suffices to define the yield of w as being partitioned by \{w\} and its strict yield:

\Feature{yield}(w)=\{w\}\uplus\Feature{yieldS}(w)

It remains to define the strict yield. For this purpose, we introduce a new member of the family of selection constraints: the selection union constraint:

S={\UNION}\TUP{S_1,\ldots,S_n}[\textit{SI}]

where all of S,S_i,\textit{SI} are finite set variables. Its declarative semantics are:

S=\bigcup\limits_{i\in\textit{SI}}S_i

i.e. from the sequence \TUP{S_1,\ldots,S_n}, the sets occurring at all positions indicated by \textit{SI} are selected and their union is returned. See also Section 6.9.4 for further discussion of the selection union constraint.

The strict yield of w is simply the union of the yields of its daughters:

\Feature{yieldS}(w)={\UNION}\TUP{\Feature{yield}(w_1),\ldots,\Feature{yield}(w_n)}[\Feature{daughters}(w)]

The use of the selection union constraint improves and simplifies the formulation in [Duc99a].


Denys Duchier
Version 1.2.0 (20010221)