UTCS ML Group MLN Learning Code Repository

The code posted on this page builds on the Alchemy system.
Quick links: TAMAR | BUSL | SR2LR | Data Sets


TAMAR (see paper) is a system for transfer learning using MLNs by performing mapping and revision of previously learned MLNs.


An alpha version of the code is available for download [.tar.gz]*. The code duplicates and modifies an older version of Alchemy.

Instructions for Running

After unpacking, modify the makefile so that the BASEDIR variable points to the correct location. Run make depend and make transfered-learnstruct.
Suppose you would like to transfer acad.mln, a source MLN, learned in the UW-CSE domain, to the IMDB domain. You could issue the following command:

transfered-learnstruct -sourceMLN acad.mln -outMappingMLN imdb-mappingOnly.1.1 -o imdb-revision.1.1 -targetPredicate imdb-predicates.mln -t imdb.1.db -minWt 0.1 -maxVars 5 -penalty 0.01 -percentageVotes 0.1

Some of the options in this command are from the original Alchemy source. The remaining are: * Thanks to Jesse Davis for identifying and fixing a memory problem.


BUSL (see paper) is an algorithm for bottom-up learning of MLNs.


Version 24-Oct-2007 is available for download [.tar.gz].

Instructions for Running

  1. Download and install Alchemy. These instructions refer to incorporating BUSL into the version of Alchemy as of Oct. 22, 2007.
  2. Download the BUSL code, unpack it, and copy all source files (excluding the makefile) to the src/learnstruct folder of the Alchemy source.
  3. Copy the makefile to the src folder of Alchemy and edit the BASEDIR variable so it points to the correct place.
  4. Type make depend; make busl
BUSL uses many of the options used by structure learning in Alchemy, and just like in Alchemy, if you run the executable with no parameters, you will get a list of the available arguments.

Learned Sources from Experiments in Paper

The models learned by BUSL for the experments presented in the paper can be downloaded from here. There is a directory for each dataset. Each file name has the extension .x.y where x and y are numbers. x is the id of the training example reserved for testing, and y is the number of training examples, excluding the test one, that were provided to the learner.


SR2LR is an algorithm for transferring across relational domains when target domain data is very limited.
The sources used in our experiments are available for download from here.

Data Sets

We have tested the above algorithms on three datasets:

Contact:Lilyana Mihalkova
Last modified: Sun Apr 5 21:11:50 CDT 2009