Skip to content


cplint is a suite of programs for reasoning with ProbLog/LPADs/CP-logic programs. It contains modules for both inference and learning.

Intended user base

The system is meant to be used by anyone interested in probabilistic reasoning with logic programming.

Current functionalities

It can perform various forms of inference:
  1. Exact with PITA
  2. MAP/MPE
  3. Causal inference
  4. Approximate with Monte Carlo: rejection sampling, Metropolis-Hastings, Gibbs, likelihood weighting, also on programs with continuous random variables

It can also perform learning:

  1. parameter learning with EMBLEM
  2. structure learning with SLIPCOVER, LIFTCOVER, PHIL, PASCAL

Future functionalities

We plan to add varitional inference and learning of programs with continuous random variables.

Potential impact of the technology

The technology has an impact on all the problems that require reasoning on uncertainty in relational domains. It is thus especially useful in learning from real world multirelational databases.

Versions available

Three versions are available: for SWI-Prolog, for XSB and for Yap Prolog. They differ slightly in the features offered.
The SWI-Prolog version is distributed as a pack. The XSB and Yap versions are distributed in the source tree.
You can find the manual at: html, pdf
You can try it online the SWI-Prolog version at