Linguist interface are used by the decoder to create the
search graph. The search graph is a directed graph formed by
SearchState and SearchStateArc objects.
Some implementations of the Linguist may build the search
graph based upon a Grammar, which represents a graph of
words and probabilities. This package provides a number of different
implementations of Grammar