The Generic Tree Module

A generic tree contains nodes. Each node has at least six items: the node's name, a question, three pointers to successors, and a model index. A tree is used to compute a model index from a sequence of tagged monophones in a context. This is done by descending the tree, starting at any node, answering the node's question, repeatedly selecting the approproate successor node according to the answer to the question until one out of two conditions is met: The node's question is empty, or the question can't be answered and there is no successor defined for that case. Every question can be answered in three different ways: "yes", "no", and "don'töknow". Each answer corresponds to one successor node. When the descending is finished, the final node's model index is returned as the result. Both, the senones tree and the topology tree use a generic tree as their subobject. The only difference is their interpretation of the resulting model index. The senones tree treats is as a senone index, the topology tree treats it as a topology index. If you want to examine a tree you can use it's trace method. There are also Tcl scripts for visualizing a tree.

The generic tree module implements two object classes: Tree and TreeNode. Tree nodes can't exist on their own, they can only be created in the context of a tree. When a Tree object is created it creates it's own embedded Questions subobject, and builds it up dynamically. Maybe that's why you were missing referrences to questions in other people's training and testing scripts.


Further information about the module: