Theory and Practice of Logic Programming

Regular Papers

Well–definedness and efficient inference for probabilistic logic programming under the distribution semantics

FABRIZIO RIGUZZIa1 and TERRANCE SWIFTa2

a1 ENDIF – University of Ferrara, Via Saragat 1, I-44122 Ferrara, Italy (e-mail: fabrizio.riguzzi@unife.it)

a2 CENTRIA – Universidade Nova de Lisboa, Caparica, Portugal (e-mail: tswift@cs.suysb.edu)

Abstract

Distribution semantics is one of the most prominent approaches for the combination of logic programming and probability theory. Many languages follow this semantics, such as Independent Choice Logic, PRISM, pD, Logic Programs with Annotated Disjunctions (LPADs), and ProbLog. When a program contains functions symbols, the distribution semantics is well–defined only if the set of explanations for a query is finite and so is each explanation. Well–definedness is usually either explicitly imposed or is achieved by severely limiting the class of allowed programs. In this paper, we identify a larger class of programs for which the semantics is well–defined together with an efficient procedure for computing the probability of queries. Since Logic Programs with Annotated Disjunctions offer the most general syntax, we present our results for them, but our results are applicable to all languages under the distribution semantics. We present the algorithm “Probabilistic Inference with Tabling and Answer subsumption” (PITA) that computes the probability of queries by transforming a probabilistic program into a normal program and then applying SLG resolution with answer subsumption. PITA has been implemented in XSB and tested on six domains: two with function symbols and four without. The execution times are compared with those of ProbLog, cplint, and CVE. PITA was almost always able to solve larger problems in a shorter time, on domains with and without function symbols.

(Received November 22 2010)

(Revised April 15 2011)

(Accepted June 14 2011)

(Online publication January 25 2012)

KEYWORDS:

  • Probabilistic logic programming;
  • Tabling;
  • Answer subsumption;
  • Logic programs with annotated disjunction;
  • Program transformation