What Is An SGML Grove?
When the source code of a computer program is parsed, the result is called a “parse tree”. When an SGML document is parsed, the result is called a “grove”. A grove is also a parse tree, but you can think of it as a higher form of tree that — like all higher life forms — has developed some specialized cells. The SGML grove concept recognizes that there can be several kinds of relationship among the nodes of a tree, and therefore a parse results in several related distinct trees, rather than one great big one. For example, the relationship between an element and its attributes is different from the relationship between an element and its content subelements; so different that it is not helpful to think of the attributes and the subelements as siblings. When you navigate in a tree, you don’t want the “next sibling” of a sub-chapter to be an attribute of the parent chapter. Instead, the grove recognizes a privileged relationship that defines a “content tree”, consisting of the subelement