In a normal rule reduction, the suggested node is "sealed". This makes it inaccessible to the @NODES selection mechanism, which looks for nodes in the parse tree, then takes their phrase of children to use in searching for rule matches. In order to make a node accessible to be "looked inside of" by the context selection algorithm, you can use the unsealed suggested element modifier.
Unsealed is not related to the singlet-base mechanism described elsewhere.
The @NODES selector starts at the root of the parse tree, then looks only within a path of unsealed nodes for appropriately labeled nodes within which to perform rule matching. So keep nodes unsealed that you want to look within. Note that the @PATH selector does not care if nodes are sealed or not.
# This rule "roughs out" a set of nodes ending in a period,
creating a _sentence node.
# This rule also makes such a _sentence node accessible to further rule
matching.
@RULES
_sentence [unsealed] <- _xWILD
[fail=( \. )] \. @@
# Say that in a subsequent pass (shown below), we want to process _np nodes
within _sentence
# nodes in order to count the nouns within noun phrases. The
@NODES _np
# specifier will only look for _np nodes within ancestors that are unsealed. If
the
# sentence rule above doesn't use unsealed, then noun phrases within those
# sentences won't be traversed.
@NODES _np
@POST
++X("nouns");
@RULES
_xNIL <- _noun @@
See Suggested Element Modifiers.