name: class LexicalTree : public DiGraph<SearchNode>>

synopsis:
g++ [flags ...] file ... -l /isip/tools/lib/$ISIP_BINARY/lib_search.a

#include <LexicalTree.h>

LexicalTree();
LexicalTree(const LexicalTree& copy_tree);

static boolean expandLexicalTree(DiGraph<LexicalNode>& word_graph_a, 
			       const Vector<DiGraph<LexicalNode> >& pron_vec_a,
			       long level_a);

static boolean expandLexicalTree(GVLexicalNode*& root_node_a, 
			    const Vector<DiGraph<LexicalNode> >& pron_vec_a,
			    long level_a);

quick start:
#include <LexicalTree.h>

// a test file
//
String model_fn;
Sof model_sof;

// testing expand lexical tree
//
SearchLevel word_level_3;
SearchLevel phone_level_3;
model_fn.assign(L"$ISIP_DEVEL/doc/examples/data/models/lex_02_lm_model.sof");
model_sof.open(model_fn, File::READ_ONLY, File::TEXT);

// load word level -- level 0
//
word_level_3.loadSymbols(model_sof,0);
word_level_3.loadSubGraphs(model_sof,0);
word_level_3.setLevelIndex(0);

// load the phone level -- level 1
//
phone_level_3.loadSymbols(model_sof,1);
phone_level_3.loadSubGraphs(model_sof,1);
phone_level_3.setLevelIndex(1);

// close the file
//
model_sof.close();

// expand the top level graph to a lexical tree
//
LexicalTree::expandLexicalTree(word_level_3.getSubGraph((long)0),
				 phone_level_3.getSubGraphs(),
				 0);
description:

LexicalTree class is designed to transform a graph-based search space to a tree-based search space. When expanding a lexical tree at level i, the symbols of level i will be expanded to their corresponding sub-graphs at level i+1 and the common prefix of these symbols will be shared, resulting in a tree-structured search.

dependencies:

public constants:

error codes:

protected data:

required public methods:

class-specific public methods:

private methods:

notes: