9 Groves
A grove is a set of nodes constructed according to a grove plan. Every node in the grove belongs to a named class in the grove plan.  A node is a set of property assignments, each consisting of a property name and a property value.
A grove plan defines a set of classes and, for each class, an ordered set of properties.
For each property assignment of a node, there is a unique corresponding property of the node's class whose name is the same as the name part of the property assignment.  This is referred to as the property of the property assignment.  The value part of a property assignment is referred to as a value of the property of the property assignment.  A node is said to exhibit a value v for a property p if there is a property assignment of the node whose property is p and whose value part is v.  The properties for which the node exhibits a value are referred to as the properties of the node.
The ordering of the properties of a class determines for nodes of that class the ordering of the corresponding property assignments.
Every property value has a data type.  The definition of a property declares a certain data type to be possible for values of the property.  This data type is referred to as the declared data type of the property.
In addition to simple abstract data types such as boolean or string, there are three special data types called the nodal data types, whose values are nodes or lists of nodes.  These are described in section 9.3.3, Data Type Definition.
The definition of a property may also allow that property to have a null value in certain circumstances, instead of a value having the declared data type.  This null value is the unique object of the null data type.  The null data type can never be used as a declared data type.