/* Copyright (C) 2006 Univ. of Massachusetts Amherst, Computer Science Dept.
This file is part of "MALLET" (MAchine Learning for LanguagE Toolkit).
http://www.cs.umass.edu/~mccallum/mallet
This software is provided under the terms of the Common Public License,
version 1.0, as published by http://www.opensource.org. For further
information, see the file `LICENSE' included with this distribution. */
package cc.mallet.grmm.util;
import java.io.*;
import java.util.List;
import java.util.Iterator;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.regex.Pattern;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import cc.mallet.grmm.types.*;
import gnu.trove.THashMap;
import bsh.Interpreter;
import bsh.EvalError;
/**
* $Id: ModelReader.java,v 1.1 2007/10/22 21:37:58 mccallum Exp $
*/
public class ModelWriter {
public static void writeModel (FactorGraph fg, Writer w)
{
try {
writeVariables (fg, w);
w.write ("\n");
writeFactors (fg, w);
} catch (Exception e) {
throw new RuntimeException (e);
}
}
private static void writeVariables (FactorGraph fg, Writer w) throws IOException
{
for (int vi = 0; vi < fg.numVariables(); vi++) {
Variable var = fg.getVariable (vi);
int nOuts = var.getNumOutcomes ();
String outStr = nOuts == Variable.CONTINUOUS ? "continuous" : Integer.toString(nOuts);
w.write("VAR " + var.getLabel() + " : " + outStr + "\n");
}
}
private static void writeFactors (FactorGraph fg, Writer w) throws IOException
{
for (int fi = 0; fi < fg.factors().size(); fi++) {
Factor f = fg.getFactor (fi);
w.write (f.prettyOutputString ());
w.write ("\n");
}
}
}