Probabilistic logic programs are logic programs in which some of the facts are annotated with probabilities.

ProbLog is a tool that allows you to intuitively build programs that do not only encode **complex interactions** between a large sets of **heterogenous components** but also the inherent **uncertainties** that are present in real-life situations.

The engine tackles several tasks such as computing the marginals given evidence and learning from (partial) interpretations. ProbLog is a suite of efficient algorithms for various inference tasks. It is based on a conversion of the program and the queries and evidence to a weighted Boolean formula. This allows us to reduce the inference tasks to well-studied tasks such as weighted model counting, which can be solved using state-of-the-art methods known from the graphical model and knowledge compilation literature.

ProbLog is a Python package and can be embedded in Python or Java. Its knowledge base can be represented as Prolog/Datalog facts, CSV-files, SQLite database tables, through functions implemented in the host environment or combinations hereof.

ProbLog makes it easy to express complex, probabilistic models.

```
0.3::stress(X) :- person(X).
0.2::influences(X,Y) :- person(X), person(Y).
smokes(X) :- stress(X).
smokes(X) :- friend(X,Y), influences(Y,X), smokes(Y).
0.4::asthma(X) :- smokes(X).
person(angelika).
person(joris).
person(jonas).
person(dimitar).
friend(joris,jonas).
friend(joris,angelika).
friend(joris,dimitar).
friend(angelika,jonas).
```

Get to know the language using our interactive tutorial, check out our publications or try the above example directly in our online editor.

For an introduction, please consult the following papers

*Inference and learning in probabilistic logic programs using weighted Boolean formulas*, Daan Fierens, Guy Van den Broeck, Joris Renkens, Dimitar Shterionov, Bernd Gutmann, Ingo Thon, Gerda Janssens, and Luc De Raedt. Theory and Practice of Logic Programming, 2015. PDF

*ProbLog: A probabilistic Prolog and its application in link discovery*, L. De Raedt, A. Kimmig, and H. Toivonen, Proceedings of the 20th International Joint Conference on Artificial Intelligence (IJCAI-07), Hyderabad, India, pages 2462-2467, 2007. PDF

ProbLog2 is our second generation engine to reason with the ProbLog language. The current engine builds on logic programming, knowledge compilation, the distribution semantics and probabilistic, graphical models. It allows you to:

**Compute marginal probabilities**of any number of ground atoms in the presence of evidence.**Learn the parameters**of the ProbLog program from partial interpretations.**Sample**from a ProbLog program.- Solve
**decision theoretic**problems

ProbLog2 binaries and source are available for download. The only requirement is Python 2.7 or 3. ProbLog2 is licensed under the Apache Public License 2.0.

ProbLog2 is available from the following sources:

- Repository: https://bitbucket.org/problog/problog
- PyPI index:
`pip install problog`

- As a direct download

Extended documentation is available on ReadTheDocs.

ProbLog2 can optionally make use of: SDDs, c2d and DSHARP. The previous version of ProbLog (ProbLog1) is available as part of YAP Prolog or can be downloaded from the old Problog1 webpages.

There is also an experimental variant of ProbLog that supports continuous variables: Distributional Clauses.

Mailing list

There is a general ProbLog mailing list which you can use for all your ProbLog1 and ProbLog2 questions or bug reports. You can also consult the mailing list archive to see if your question has been asked before.

ProbLog2 was developed in the DTAI group of KULeuven, by the following people (in alphabetical order).

- Luc De Raedt (PI)
- Anton Dries
- Daan Fierens
- Bernd Gutmann
- Gerda Janssens
- Angelika Kimmig
- Wannes Meert
- Joris Renkens
- Dimitar Shterionov
- Ingo Thon
- Guy Van den Broeck
- Jonas Vlasselaer

Other people who contributed to ProbLog1 and 2 (in alphabetical order):

- Bart Demoen
- Manfred Jaeger
- Kristian Kersting
- Theofrastos Mantadelis
- Bogdan Moldovan
- Kate Revoredo
- Ricardo Rocha
- Vitor Santos Costa
- Hannu Toivonen
- Joost Vennekens

Our colleagues from the probabilistic programming community.

- Tutorial on Probabilistic Programming at IJCAI 2015
- Tutorial on Probabilistic Programming at ECAI 2014
- Tutorial on Probabilistic Programming at KI 2014
- Dagstuhl Seminar on Challenges and Trends in Probabilistic Programming 2015
- PLP 2016
- PLP 2015
- PLP 2014
- StaRAI 2016
- StaRAI 2015
- StaRAI 2014
- StaRAI 2013
- StaRAI 2012
- SRL 2012
- NIPS 2012 Workshop on Probabilistic Programming
- StaRAI 2010
- SRL 2009
- NIPS 2008 Workshop on Probabilistic Programming
- Dagstuhl on Probabilistic, Logical and Relational Learning 2007
- SRL 2006
- Dagstuhl Seminar on Probabilistic, Logical and Relational Learning, Towards a Synthesis 2005
- SRL 2004
- SRL 2003
- SRL 2000