001 package calhoun.analysis.crf;
002
003 import calhoun.util.DenseBooleanMatrix2D;
004
005 /** overall itnerface for an entire model. The model contains the hidden state defintions and transitions as well as all of the features.
006 */
007 public interface ModelManager extends FeatureManagerEdge, FeatureManagerNode, FeatureManagerEdgeExplicitLength, FeatureManagerNodeExplicitLength {
008
009 /** the number of hidden states.
010 * @return the number of hidden states
011 */
012 public int getNumStates();
013
014 /** looks up the human readable name of a hidden state given it's index.
015 * @return string name of the state with this index.
016 */
017 public String getStateName(int state);
018
019 /** looks up a hidden state's index given it's human readable name.
020 * @return index of the state with this name.
021 */
022 public int getStateIndex(String name);
023
024 /** returns a boolean matrix where each <code>(row, column)</code> entry contains true if the
025 * model has a legal transition between state <code>row</code> and state <code>column</code>.
026 * A ModelManager may safely return null if all transitions are legal.
027 * @return a boolean matrix containing the legal transitions.
028 */
029 public DenseBooleanMatrix2D getLegalTransitions();
030 }