1. A computer-implemented method, comprising: storing a hierarchical object in computer memory, the hierarchical object having a first plurality of nodes arranged in a hierarchy, the first plurality of nodes having exactly one root node, and wherein every node of the first plurality of nodes other than the root node has exactly one parent node that is one of the first plurality of nodes; storing a corpus of elements in computer memory; for each of a second plurality of nodes of the first plurality of nodes: (a) determining an element of the corpus of elements that the node is an instance of, (b) based on the element that the node is an instance of, determining one or more rules that apply to the node, (c) performing an evaluation of the node against at least one of the one or more rules that apply to the node, (d) based on results of the evaluation of the node, determining whether the node is valid or invalid, and (e) if the node is invalid, determining if the invalidity of the node causes the hierarchical object to also be invalid; wherein at least one particular node of the second plurality of nodes is invalid; wherein the at least one particular node that is invalid does not cause the hierarchical object to also be invalid.