• Stars
    star
    296
  • Rank 137,141 (Top 3 %)
  • Language
    Python
  • Created about 5 years ago
  • Updated 19 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

ProbLog is a Probabilistic Logic Programming Language for logic programs with probabilities.

ProbLog

ProbLog 2 is a Probabilistic Logic Programming toolbox. It allows 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.

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

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 2.1 works out of the box on systems with Python. It has been tested on Mac OSX, Linux and Windows.

Installation

CircleCI codecov

ProbLog supports optional components which can be installed separately. See the file INSTALL for detailed installation instructions.

Python

To install ProbLog, you can use the pip with the following command:

pip install problog

Prerequisites

ProbLog 2.1 requires Python 3.6+. (Python 2.7+ support has been dropped since ProbLog 2.1.0.36.)

Online Editor

You can try out ProbLog without installing it with our online editor.

For example, enter the following ProbLog program for calculating the probability that at least one of two coins (one of which is a bend/biased coin) is head.

% Probabilistic facts:
0.5::heads1.
0.6::heads2.

% Rules:
someHeads :- heads1.
someHeads :- heads2.

% Queries:
query(someHeads).

When you press evaluate, this will result in 0.8, because P(someHeads) = 1 - (1-P(heads1)) (1-P(heads2)) = 1 - (1-0.5) (1-0.6) = 0.8.

Get Started with ProbLog

Tutorial

To get started with ProbLog, follow the ProbLog Tutorial.

Homepage

Visit the ProbLog Homepage.

Documentation

Extensive documentation about ProbLog can be found on our ProbLog documentation on ReadTheDocs.

Papers

You can consult the following paper to get an introduction to ProbLog:

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.

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.

Many other papers and information about ProbLog can be found in our ProbLog publication list.

License

Copyright 2015 KU Leuven, DTAI Research Group

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

More Repositories

1

socceraction

Convert soccer event stream data to SPADL and value player actions using VAEP or xT
Python
567
star
2

deepproblog

DeepProbLog is an extension of ProbLog that integrates Probabilistic Logic Programming with deep learning by introducing the neural predicate.
Python
176
star
3

soccer_xg

A Python package for training and analyzing expected goals (xG) models in soccer.
Jupyter Notebook
143
star
4

cobras

Interactive clustering with super-instances
Python
46
star
5

soccermix

SoccerMix is a soft clustering technique based on mixture models that decomposes event stream data into a number of prototypical actions of a specific type, location, and direction.
Jupyter Notebook
36
star
6

SAR-PU

Beyond the Selected Completely At Random Assumption for Learning from Positive and Unlabeled Data
Jupyter Notebook
32
star
7

un-xPass

Measuring soccer player's creativity
Jupyter Notebook
28
star
8

ETSY

Synchronize soccer event and tracking data
Python
27
star
9

deepstochlog

Python
25
star
10

locomotif

LoCoMotif is a time series motif discovery method that discovers variable-length motif sets in multivariate time series using time warping
Jupyter Notebook
14
star
11

LearnSDD

Implementation of the Structure Learning Algorithm for Sentential Decision Diagrams
C
8
star
12

KBC-as-PU-Learning

Source code & appendices accompanying the AAAI2022 paper "Unifying Knowledge Base Completion with PU Learning to Mitigate the Observation Bias"
Jupyter Notebook
8
star
13

ml-project-2023-2024

Template and instructions to submit a solution for the assignment for the KU Leuven course ML Project
Python
8
star
14

incal

Learn SMT(LRA) constraints from data
Python
6
star
15

the_apples_game

Multi-Agent Learning assignment, Machine Learning Project @ KU Leuven
JavaScript
6
star
16

deepseaproblog

The official implementation of DeepSeaProbLog, a neural probabilistic logic programming language supporting discrete and continuous random variables.
Python
4
star
17

catlog

Gradient estimation of discrete probabilistic models with the CatLog-Derivative trick
Jupyter Notebook
4
star
18

ocus-explain

Efficient Explaining CSPs with Unsatisfiable Subset Optimization
Jupyter Notebook
3
star
19

PyDC

Python wrapper for Distributional Clauses
C++
3
star
20

PySDD

Python
3
star
21

tacle

Constraint learning for spreadsheets
Python
3
star
22

JSDD

Java wrapper for the sdd 2.0 c library
Java
3
star
23

HASSLE-GEN

This repository contains the code for our paper: Senne Berden, Mohit Kumar, Samuel Kolb, and Tias Guns (2022): Learning MAX-SAT Models from Examples using Genetic Algorithms and Knowledge Compilation, CP 2022
Python
3
star
24

comparative-evaluation-of-anomaly-detection-methods

Accompanying repository for the ODD workshop paper: "The Effect of Hyperparameter Tuning on the Comparative Evaluation of Anomaly Detection Methods"
Jupyter Notebook
3
star
25

hanoi

Python
2
star
26

RoViLa

Robot platform that uses vision and language as input to reason about the world.
Python
2
star
27

COUNT-CP

COUNT-CP is a constraint learner that uses a generate-and-aggregate approach to learn CP models
Python
2
star
28

ai-course-demos

Links to & implementations of demos for the course "Artificiรซle Intelligentie" at KU Leuven
CSS
2
star
29

betaproblog

Prolog
1
star
30

ml-project-2021-2022

Template and instructions to submit a solution for the assignment.
Python
1
star
31

py-dreaml

Python package of DreaML for relational mixed discrete-continuous learning and inference
Python
1
star
32

psyche

1
star
33

psipy

Python wrapper for the PSI-Solver (probabilistic symbolic inference)
D
1
star
34

GenLex

Implentation of a Semantic Parser that maps natural/instructional language to a logical expression.
Java
1
star
35

amie

Automatic Monitoring of Indoor Exercises
Jupyter Notebook
1
star
36

xmskill

Jupyter Notebook
1
star