9.2 Grove Plans
A grove plan specifies a selection of classes and properties from a property set.  A property set is defined by a property set definition expressed in SGML as described in section 9.3, Property Set Definition.
For any source for the grove, the property set determines the complete grove that would be built using a grove plan that selected all the classes and properties from the property set.

NOTE 22

The complete grove contains all the information that the parser is capable of making available about the source of the grove.  For any particular application, much of this information may be irrelevant. The grove plan provides a way for an application to get a grove that contains just the information it requires.
The grove to be constructed from the grove plan shall be the same as a grove obtained by modifying the complete grove in the following manner:

•  To mark the subgrove of a node, first mark the node itself; then for each subnode property, if the property is included in the grove plan, mark the subgrove of each node in the value whose class is included in the grove plan.  The nodes to be included in the grove are determined by marking the subgrove of the grove root.  Only nodes thereby marked will be included in the constructed grove.

•  A node in the constructed grove only exhibits values for those properties that are specified to be included in the grove.

•  If a node in the complete grove exhibits a value for an intrinsic property whose semantics are that it is the name of a non-intrinsic property exhibited by the node, then if the non-intrinsic property is not included in the grove plan, the node in the constructed grove shall exhibit a null value for the intrinsic property.

•  If a node in the complete grove exhibits a value for an intrinsic property whose semantics are that it is a list of names of non-intrinsic properties exhibited by the node, then the node in the constructed grove shall exhibit a value for the intrinsic property that is obtained from the value in the complete grove by removing the names of any of the non-intrinsic properties not included in the grove plan.

•  If a node in the complete grove exhibits a value for an irefnode property that has a declared value of node, but the value of the property is not marked for inclusion in the constructed grove, then the node shall exhibit a null value for that property in the constructed grove.

•  If a node in the complete grove exhibits a value for an irefnode property that has a declared value of nodelist or nmndlist, then the value in the constructed grove is obtained by removing from the value exhibited for the property in the complete grove all nodes that are not marked for inclusion in the constructed grove.