* The output stream to write to.
* @param network
* The network to write.
*/
public static void writeBIF(OutputStream os, BayesianNetwork network) {
WriteXML xml = new WriteXML(os);
xml.beginDocument();
xml.addAttribute("VERSION", "0.3");
xml.beginTag("BIF");
xml.beginTag("NETWORK");
xml.addProperty("NAME", "Bayes Network, Generated by Encog");
// write variables
for (BayesianEvent event : network.getEvents()) {
xml.addAttribute("TYPE", "nature");
xml.beginTag("VARIABLE");
xml.addProperty("NAME", event.getLabel());
for (BayesianChoice str : event.getChoices()) {
xml.addProperty("OUTCOME", str.getLabel());
}
xml.endTag();
}
// write relations
for (BayesianEvent event : network.getEvents()) {
xml.beginTag("DEFINITION");
xml.addProperty("FOR", event.getLabel());
for (BayesianEvent parentEvent : event.getParents()) {
xml.addProperty("GIVEN", parentEvent.getLabel());
}
xml.addAttribute("TABLE", generateTable(event));
xml.endTag();
}
xml.endTag();
xml.endTag();
xml.endDocument();
}