SBNet


 

SBNet is a software package that will learn the structure of dynamic Bayesian networks given a set of data.  Included in this distribution page are the following files:

Presentation

SBNet's Grammar

SBNet Linux distribution (with source code)

SBNet Windows Dev Studio .net distribution (with source code)

SBNet errata (for both Windows and Linux distributions)

For those that would like to modify the code for SBNet, I’ve written a high-level overview of the code as it exists currently.  Here is a zip file containing both a UML diagram for the classes in SBNet as well as a text document for a description on what different objects are responsible for in SBNet.

Here are some example script files that can help in understanding how to use SBNet

·        Miscellaneous examples

·        Some more example files

·        Learn BN Structure Example (also uses continuous RVs and quantizes them, thanks to Dae at the Mind)

·        Surrogate Dataset Confidence Examples

·        Simple Data Generation Example

A simple script to generate data from a DBN with 5 RVs.

·        Robustness Example

Script demonstrating how robustness testing can be performed, there is a batch file that shows how to run SBNet, but as the data is not included in the distribution, you can’t run this batch file.  However, all of the output files created when running the batch file are included.


SBNet Wiki

I have written some articles on how to use different functionalities of SBNet.  They are located on this.  This is a valuable source of information and should be consulted if you have question on how to use SBNet to get something done.

There is also a known-bugs page on this wiki that should be consulted.


SBNet understands a relatively simple grammar for creating Bayesian networks, loading data and searching for structures (among other things).  During SBNet’s development, I’ve endeavored to create a package that anyone could use.  However, in the end, it is still “research code”.  At this point in time, I’m creating this distribution primarily for members of the research groups I’ve spoken with, but anyone is free to download and use SBNet (I’m releasing it under the standard GNU license).

I’ve included a simple MS PowerPoint presentation to give the very basics of SBNet.  I’ve also included some example script files that may be helpful in determining how to use SBNet to run a task.  SBNet has a full interactive mode and to automate SBNet’s use, script files should be written and piped into SBNet.  E.g., at a prompt type,

sbnet < inputfile.txt > outputfile.txt

It’s very important that the inputfile.txt end with the “quit” command.  At this point in time, SBNet does not detect the end of the input (this will hopefully change soon) and without the quit command, SBNet will infinitely output prompts causing the outputfile to grow to huge proportions very quickly and indefinitely.

SBNet is written in ANSI C++.  The two distributions linked to on this page have all of the same source files.  One distribution is for those using Microsoft’s Development Studio .net.  This is the programming environment I prefer, but again, none of the code is written that requires windows (with a small exception of code that reads in the contents of directories—such code is not specified by the C++ specifications and therefore must be platform dependent).  The other distribution is for Linux and includes a Makefile.  See the “installing.txt” file included with the distribution.

Almost everything about how to use SBNet is detailed in the grammar.txt file, though this is a reference source and not a tutorial.  This file is included in both distributions, but is also linked to on this web page.

 

If you have questions, feel free to email me.  I cannot guarantee I will be able to respond but if I have adequate temporal resources, I will do my best to answer questions.


Return to John Burge's home page