ML-KULeuven/problog
ProbLog is a Probabilistic Logic Programming Language for logic programs with probabilities.
What it solves
ProbLog is a probabilistic logic programming toolbox designed to handle complex interactions between heterogeneous components while accounting for the inherent uncertainties found in real-world scenarios. It allows users to build programs where facts are annotated with probabilities, enabling the calculation of marginals given evidence and learning from partial interpretations.
How it works
ProbLog converts probabilistic logic programs, queries, and evidence into weighted Boolean formulas. This reduction allows the engine to use efficient algorithms from graphical models and knowledge compilation literature, specifically treating inference tasks as weighted model counting problems.
Who it’s for
It is designed for researchers and developers who need to combine logic programming (Prolog/Datalog) with probabilistic reasoning. The tool can be embedded in Python or Java and supports knowledge bases represented as CSV files, SQLite databases, or host environment functions.
Highlights
- Probabilistic Logic Programming: Combines logic rules with probabilistic facts.
- Flexible Data Integration: Supports knowledge bases from Prolog/Datalog, CSV, and SQLite.
- Efficient Inference: Uses weighted model counting to solve complex probabilistic queries.
- Multi-platform Support: Works on Windows, Linux, and Mac OSX via a Python package.
Related
- Project
- Project
- Project
- Project