Monday February 25, 2013 at 16h30 in Celestijnenlaan 200A (auditorium 00.225)
ProbLog 2 – a modern PLL system: design and implementation
by Dimitar Shterionov (PhD student DTAI)
ProbLog – a Prolog-based system for probabilistic inference and learning, has began as a small extension of Prolog to deal with uncertain knowledge encoded as ground probabilistic facts. Currently ProbLog supports learning (from interpretations), non-ground (or intentional) probabilistic facts, and incorporates more efficient reasoning mechanisms based on knowledge compilation. ProbLog takes as input probabilistic logic programs and can execute two main tasks – computing the conditional probability of a query (or a set of queries) given some evidence, and learning probabilities from partial interpretations. ProbLog is a pipelined system, build around several separate modules which handle the intermediate tasks in the probabilistic inference. We present the four main steps (and therefore components) – grounding, to-CNF conversion, sd-DNNF compilation and result extraction. Grounding is the transformation of the initial probabilistic logic program to an equivalent logic program with no uninstantiated variables. To-CNF conversion is the process where the ground program is converted to a boolean formula in CNF. In the sd-DNNF compilation step the CNF is compiled into an sd-DNNF (smoothed deterministic decomposable negation normal form). The final step consists of traversing the sd-DNNF twice in order to compute the conditional probability of each of the queries. The modularity of ProbLog 2 allows (almost) effortless substitution of one subsystem with another.
Here, the new ProbLog 2 is presented – its architecture and development, and its inference algorithm as a combination of the four main tasks. Each task is executed by an independent module. This pipelined architecture makes ProbLog 2 a very flexible and easily upgradable system.