Coder Social home page Coder Social logo

ashish33 / tuffylite Goto Github PK

View Code? Open in Web Editor NEW

This project forked from allenai/tuffylite

1.0 1.0 0.0 2.54 MB

Tuffy is an open-source Markov Logic Network inference engine. The original code is from: http://hazy.cs.wisc.edu/hazy/tuffy/

Scala 0.27% Python 0.35% Java 81.65% GAP 1.97% C++ 14.64% C 0.30% Makefile 0.31% HTML 0.52%

tuffylite's Introduction

TuffyLite

TuffyLite is a modified version of the open source Tuffy solver for performing inference with Markov Logic Networks (MLNs). Specifically, it is an inference-only variant of Tuffy version 0.3 implementing the changes described in the following paper:

Markov Logic Networks for Natural Language Question Answering. Tushar Khot, Niranjan Balasubramanian, Eric Gribkoff, Ashish Sabharwal, Peter Clark, Oren Etzioni. StarAI-2015, 5th International Workshop on Statistical Relational AI, Amsterdam, The Netherlands, July 2015.

For more information about MLNs and the kinds of problems Tuffy is suitable for, please refer to the original Tuffy solver. The main changes to Tuffy implemented in TuffyLite are described below.

This project also includes minor modifications to the Glucose 3.0 SAT Solver to identify variables with fixed values by unit propagation, backbone detection, or equivalence detection. This information is (optionally) used by TuffyLite iteratively to simplify and often vastly reduce the size of the grounding of hard and soft constraints by exploiting structure imposed by hard constraints.

List of Modifications

The main additions to Tuffy include:

  • Iterative Unit Propagation and Backbone Detection when grounding an MLN: after grounding each hard rule, we run unit propagation (or, optionally, use backbone detection) to identify literals with fixed values, simplify the current grounding, and reduce the size of the groundings of subsequent hard and soft rules. Please see the above referenced paper for more details.

  • Re-implementation of MC-SAT/SampleSAT algorithm for sampling from a ground MRF: some parts of the code in Tuffy had diverged from the standard SampleSAT algorithm, and the reimplementation yielded improved inference quality on some problems.

  • Ability to run the code completely deterministically: random number seeds for Java and Postgres are now config options.

  • Ability to specify a time limit.

  • Bug fix when grounding existential quantifiers.

  • Several output file options, including writing the ground MRF in human-readable or WCNF file format.

  • Some other minor changes to default config options, disabling some heuristics such as "greedy throttling" which can make the underlying SampleSAT algorithm non-uniform.

On the down side, TuffyLite focuses mainly on the inference aspect, especially marginal inference, and currently does not support the following:

  • No weight learning.

  • No partitioned grounding and inference.

Contact

Please contact Erik Gribkoff or Ashish Sabharwal if you have any questions or comments.

tuffylite's People

Contributors

ashish33 avatar ericgribkoff avatar niranjanb avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.