
This is the 

    Toolbox for Probabilistic Cognition in Technical Systems (ProbCog)
    ------------------------------------------------------------------


Dominik Jain <jain@cs.tum.edu>
Intelligent Autonomous Systems Group
Technische Universitt Mnchen


*** What is it? ***

A statistical relational learning toolbox for

* Bayesian logic networks (BLNs): learning and inference
* Markov logic networks (MLNs): learning and inference

and, as by-products:

* Bayesian networks: learning and inference
* First-Order logic: representation, propositionalization, stochastic SAT sampling, etc.


*** Compatibility ***

This software suite works out-of-the-box on Linux/AMD64, Linux/i386 
and Windows/32bit. 

For other environments, you will need to obtain an appropriate binary package 
of the Standard Widget Toolkit library (http://www.eclipse.org/swt/) and the 
jSMILE library (http://genie.sis.pitt.edu/) and modify the application files
created during installation (see below) to use them.


*** Prerequisites *** 

* Java 5 runtime environment (or newer)

* Python 2.5 (or newer) with Tkinter installed
  Note: On Windows, Tkinter is usually shipped with Python.
        On Linux, you may need to install a package (e.g. "python-tk" on Debian)


*** Installation ***

Run the make_apps.py script in the directory this text file is located in.
By default, it will create application files for both Windows and Linux/AMD64.
If you are using Linux/i386, add "linux_i386" as a parameter, i.e. enter
	python make_apps.py linux_i386

The script creates a number of shell scripts for Linux and batch files for Windows
in the ./apps directory. 

For convenience, you may want to add the ./apps directory to your PATH variable
or copy the files created therein to an appropriate directory.

If you intend to make use of scripting, add the ./python directory to your PYTHONPATH 
and JYTHONPATH variables.


*** Getting Started ***

There are example models in the ./examples/ directory.

Simply run the "blnquery" or "mlnquery" applications in one of the subdirectories
to try out some inference tasks.

In the ./examples/meals/ directory, you can also try out learning.
To train a BLN or MLN model run "blnlearn" or "mlnlearn". 
There is an example training database called "train.blogdb", which
was generated from the scripted stochastic process in "gen.py" (a Python/Jython script). 
You can use the application "genDB" to generate such a database from the generator script.


*** Further Reading ***

Visit the ProbCog wiki for tutorials and additional documentation:
http://ias.in.tum.de/probcog-wiki/

For more information about BLNs, read BayesianLogicNetworks.pdf.

For more information on the usage of the Python MLN tools, read python/readme.html.


*** Contributors ***

Dominik Jain
Stefan Waldherr
Ralf Wernicke
Gregor Wylezich
Moritz Tenorth


*** Acknowledgements ***

This project builds upon third-party software including
* Bayesian network tools in Java (http://bnj.sourceforge.net)
* The SMILE library for inference in Bayesian networks (http://genie.sis.pitt.edu/)
* The WEKA machine learning library (http://www.cs.waikato.ac.nz/ml/weka/)
* ... to be continued
