Bayesian Logic (BLOG) Code and Documentation
Getting and building the code
The BLOG code is stored in a Subversion repository at /afs/csail/group/lis/REPOS/cogarch. This repository is accessible to anyone in the lis AFS group. You can get a copy of the code by running:
svn checkout /afs/csail/group/lis/REPOS/cogarch cogarch
This will create a directory called "cogarch" and put all the code in it. After doing the checkout, you can build the code by going into the new cogarch directory and executing:
ant
If there are errors, please let Brian (or Marti) know.
What's there
The cogarch directory contains a lot of stuff. Here's a quick guide to what's there:
blog-- main BLOG code, likelihood weighting and MCMC inferenceve-- code for propositional variable elimination (originally by Michael Haimes)fove-- code for first-order variable elimination with counting formulaspomdp-- code for partially observable Markov decision processes (POMDPs) in general (independent of main BLOG code)pomdpSolver-- Java implementation of heuristic search value iteration for POMDPs (originally by Zuoyu Tao)xblog-- code for extended version of BLOG that represents POMDPscommon-- utility code that's used everywhererunblogandrunxblog-- scripts for running BLOG and XBLOG programsexamples-- example BLOG modelsdomains-- example XBLOG models
The repository also contains some third-party code: CUP and JLex for parser and lexer generation; a basic Java matrix package called Jama; a scientific computing package from CERN called colt.jar (used for sparse matrices in pomdpSolver); and Rodrigo de Salvo Braz's original FOVE implementation (braz), which we downloaded for comparison.
Documentation
The documentation for BLOG is fairly sparse at the moment. We have:
- A syntax reference excerpted from Chapter 4 of Brian's dissertation.
- A brief usage guide that talks about using the
runblogscript and specifying evidence and queries. - An XBLOG specification that explains how XBLOG differs from regular BLOG.
Probably the best way to get started is to skim through the syntax reference, and then try writing your own model files, using the models in the examples directory as starting points.