Probabilistic Logic Programming extends Logic Programming by enabling the representation of uncertain information by means of probability theory. Probabilistic Logic Programming is at the intersection of two wider research fields: the integration of logic and probability and Probabilistic Programming. Logic enables the representation of complex relations among entities while probability theory is useful for model uncertainty over attributes and relations. Combining the two is a very active field of study. Probabilistic Programming extends programming languages with probabilistic primitives that can be used to write complex probabilistic models. Algorithms for the inference and learning tasks are then provided automatically by the system. Probabilistic Logic programming is at the same time a logic language, with its knowledge representation capabilities, and a Turing complete language, with its computation capabilities, thus providing the best of both worlds. Since its birth, the field of Probabilistic Logic Programming has seen a steady increase of activity, with many proposals for languages and algorithms for inference and learning. Foundations of Probabilistic Logic Programming aims at providing an overview of the field with a special emphasis on languages under the Distribution Semantics, one of the most influential approaches. The book presents the main ideas for semantics, inference, and learning and highlights connections between the methods. Many examples of the book include a link to a page of the web application http://cplint.eu where the code can be run online Contents......Page 3 Foreword......Page 8 Preface......Page 10 Figures......Page 12 Tables......Page 16 Examples......Page 17 Definitions......Page 21 Theorems......Page 23 Abbreviations......Page 25 Symbols......Page 26 Orders, Lattices, Ordinals......Page 28 Mappings & Fixpoints......Page 30 Logic Programming......Page 31 Semantics for Normal Logic Programs......Page 40 Probability Theory......Page 50 Probabilistic Graphical Models......Page 59 Languages with the Distribution Semantics......Page 68 The Distribution Semantics for Programs without Function Symbols......Page 72 Examples of Programs......Page 77 Equivalence of Expressive Power......Page 83 Translation to Bayesian Networks......Page 85 Generality of Distribution Semantics......Page 89 Extensions of Distribution Semantics......Page 91 CP-Logic......Page 93 Semantics for Non-sound Programs......Page 98 KBMC Probabilistic Logic Programming Languages......Page 103 Other Semantics for PLP......Page 107 Other Semantics for Probabilistic Logics......Page 111 Semantics with Function Symbols......Page 117 The Distribution Semantics for Programs with Function Symbols......Page 118 Infinite Covering Set of Explanations......Page 123 Comparison with Sato & Kameya Definition......Page 136 Hybrid ProbLog......Page 140 Distributional Clauses......Page 143 Extended PRISM......Page 149 cplint Hybrid Programs......Page 151 Probabilistic CLP......Page 155 Exact Inference......Page 170 PRISM......Page 171 Knowledge Compilation......Page 175 ProbLog1......Page 176 cplint......Page 180 SLGAD......Page 182 PITA......Page 183 ProbLog2......Page 188 Compilation......Page 201 Modeling Assumptions in PITA......Page 203 Inference for Queries with infinite Number of Explanations......Page 211 Inference for Hybrid Programs......Page 212 Preliminaries on Lifted Inference......Page 220 LP......Page 227 Lifted Inference with Aggregation Parfactors......Page 230 Weighted First-Order Model Counting......Page 232 Comparison of the Approaches......Page 235 ProbLog1......Page 237 MCINTYRE......Page 242 Approximate Inference for Queries with infinite Number of Explanations......Page 245 Conditional Approximate Inference......Page 246 Approximate Inference by Sampling for Hybrid Programs......Page 247 Approximate Inference with Bounded Error for Hybrid Programs......Page 250 k-Optimal......Page 253 Explanation-based Approximate Weighted Model Counting......Page 255 Approximate Inference with Tp-Compilation......Page 257 DISTR & EXP Tasks......Page 258 Possibilistic Logic Programming......Page 263 Decision-Theoretic ProbLog......Page 265 Algebraic ProbLog......Page 274 PRISM Parameter Learning......Page 283 LLPAD & ALLPAD Parameter Learning......Page 289 LeProbLog......Page 291 EMBLEM......Page 294 ProbLog2 Parameter Learning......Page 304 Parameter Learning for Hybrid Programs......Page 306 Inductive Logic Programming......Page 307 LLPAD & ALLPAD Structure Learning......Page 311 ProbLog Theory Compression......Page 313 ProbFOIL & ProbFOIL+......Page 314 SLIPCOVER......Page 320 Examples of Datasets......Page 328 cplint Commands......Page 329 Natural Language Processing......Page 333 Drawing Binary Decision Diagrams......Page 337 Gaussian Processes......Page 338 Dirichlet Processes......Page 342 Bayesian Estimation......Page 350 Kalman Filter......Page 351 Stochastic Logic Programs......Page 354 Tile Map Generation......Page 356 Markov Logic Networks......Page 358 Truel......Page 359 Coupon Collector Problem......Page 363 1D Random Walk......Page 365 Latent Dirichlet Allocation......Page 366 Indian GPA Problem......Page 370 Bongard Problems......Page 372 Conclusions......Page 375 Refs......Page 377 Index......Page 399 Provides an overview of the field of Probabilistic Logic Programming, with a special emphasis on languages under the Distribution Semantics. The book presents the main ideas for semantics, inference and learning and highlights connections between the methods. The integration of logic and probability combines the capability of the first to represent complex relations among entities with the capability of the latter to model uncertainty over attributes and relations. Logic programming provides a Turing complete language based on logic and thus represent an excellent candidate for the integration. Since its birth, the field of Probabilistic Logic Programming has seen a steady increase of activity, with many proposals for languages and algorithms for inference and learning. One of most successful approaches to Probabilistic Logic Programming is the Distribution Semantics, where a probabilistic logic program defines a probability distribution over normal logic programs and the probability of a ground query is then obtained from the joint distribution of the query and the programs. Foundations of Probabilistic Logic Programming aims at providing an overview of the field of Probabilistic Logic Programming, with a special emphasis on languages under the Distribution Semantics. The book presents the main ideas for semantics, inference and learning and highlights connections between the methods. Many examples of the book include a link to a page of the web application http://cplint.eu where the code can be run online