## Code

The following software is all available under an open source license.

##### Juice.jl

A Julia package that offers researchers and practitioners efficient routines to construct, compile, learn and reason with Logic Circuits and Probabilistic Circuits. It provides a wide range of functionality that enable tractable logical and probabilistic reasoning.

Source##### Naive Conformant Learning (NaCL)

Given a logistic regression (LR) model, NaCL learns a Naive Bayes model that conforms to the LR model while maximizing the joint feature likelihood on the dataset. The learned model gives us the ability to handle missing features, while getting benefits of higher accuracy of LR models.

Source##### Dice

The Dice probabilistic programming language, a probabilistic programming language for scalable exact probabilistic inference in discrete programs.

Source##### Logistic Circuits

A new statistical classifier based on logical circuits that performs as well as deep neural networks on simple image classification tasks. Its parameter learning is convex optimization and a simple local search can induce strong structure from data.

Source##### OrbitGen

Code to experiment with generating and sampling orbits for lifted probabilistic inference in factor graphs.

Source##### Collapsed Compilation

An inference engine for graphical models and other discrete structures. It works by sampling many reasonably sized circuits and using each to perform inference.

Source##### TrimBN

An implementation of robust trimming of Bayesian Network classifiers. It searches for a smaller subset of features while maintaining the classifier behavior.

Source##### Semantic Loss

A system for enforcing logical constraints during the learning procedure of a deep neural network. Uses circuits to evaluate and differentiate the extent to which a logical constraint is being followed by neural net outputs.

Source##### OpenWorldPDB

A Postgres-based implementation of query evaluation for open-world probabilistic databases

Source##### ALICE

ALICE is an Eclipse plugin for code search that uses active learning and inductive logic programming (ILP) to identify the properties and structure of those code blocks that the user would like to retrieve.

Source##### LearnPSDD

LearnPSDD is a discrete density estimation algorithm. It learns a tractable probabilistic circuit (a PSDD) from data and achieves state-of-the-art likelihoods on many standard datasets.

Source##### Forclift

Forclift is a prototype implementation of algorithms for first-order knowledge compilation, lifted probabilistic inference (exact and approximate), and lifted parameter and structure learning. It supports various input formals, including Markov logic and weighted model counting problems.

Source##### Direct & Factored Deletion

Prototype implementation of direct and factored deletion algorithms to learn Bayesian network parameters from incomplete data under the MCAR and MAR assumptions. These algorithms are consistent, yet they only require a single pass over the data, and no inference in the Bayesian network.

Source##### PokerDemo

PokerDemo is a classroom demo (in Dutch) to teach programming, expert, and multi-agent systems to high school students . It contains a visual programming tool that lets students create a rule-based poker player. Student can compete on the server with their friends and an artificial agent. (code)

Source##### DaisyDiff

Daisy Diff is a Java library that diffs (compares) HTML files. It highlights added and removed words and annotates changes to the styling. This project was a Google Summer of Code 2007 project for DaisyCMS. A PHP version of the algorithm was developed for MediaWiki/Wikipedia in the Google Summer of Code 2008. Various content management systems use DaisyDiff for comparing HTML changes.

Source## Data

Please consider using the following datasets.

##### Density Estimation Datasets

A repository of standard datasets for discrete density estimation.

Source## Prototypes

The following are some rough prototypes.

##### CSPoker

CSPoker is a framework for developing and testing artificial poker agents. It contains the Monte-Carlo tree search players that I developed in my M.S. thesis. Parts of the CSPoker code has branched into the Pokersource and OpenTestBed projects. CSPoker was used by Sun Microsystems to demo JMX and Java FX Script during the JavaOne 2008 conference.

Source