Project Tuffy


Tuffy 0.3 (released May 1, 2011)

The major update is that MRF partitioning is implemented and enabled by default.

  • MRF partitioning: By default, each component in the MRF is processed separately.
  • Key constraints: Added support for the "!" syntax as in Alchemy.
  • Parameterized weights: The weight of a rule can be a variable in the rule.
  • Logging: Now you can use the '-dribble' option to record console output to a file.
  • Better code: Refactored the Java code to allow for easier integration with external code.
  • Deprecation: The options '-store' and '-algo' are deprecated as RDBMS-based search is simply impractical.
  • Bugfix: Fixed reliability issues of the implementation of boolean expressions.
  • Bugfix: Fixed the hard-coded '-breakHardClauses' (Alchemy's term) policy in WalkSAT. Now by default WalkSAT is allowed to break hard clauses at each step. You can use the option '-dontBreak' to revert this policy. According to our experience with WalkSAT, it's advisable to try converting hard clauses to high-weight soft clauses when things don't work well.

Tuffy 0.2 (released Jan 8, 2011)

This release incorporates many new essential/useful features:

  • Marginal inference: Runs MC-SAT to infer marginal probabilities.
  • Weight learning: A basic implementation of discriminative weight learning.
  • Soft evidence: Allows input evidence to be probabilistic.
  • Datalog: Besides MLN rules, you can now write deterministic rules evaluated in the Datalog way.
  • Predicate scoping: By default the ground atoms of a predicate are generated from the cross product of all predicate arguments, which is often unnecessary and sometimes explosive. This feature allows you to explicitly scope the set of ground atoms for each predicate.
  • Boolean expressions: In addtion to regular literals, now you can also write boolean expressions using built-in arithemetics or string operations.
  • Doing away with BDB: The dependency on Berkeley DB has been removed.

Tuffy 0.1 (released June 4, 2010)

This is the initial release of Tuffy. Main features include:

  • Fast grounding: By formulating MLN grounding as SQL queries and leveraging the horse power of PostgreSQL, Tuffy achieves orders of magnitude speedup in grounding compared to Alchemy.
  • MAP inference: Performs MAP inference using the WalkSAT algorithm.
  • Larger than RAM: Uses PostgreSQL and Berkeley DB to scale to data sizes larger than RAM.