=Paper=
{{Paper
|id=Vol-2970/aspocpinvited2
|storemode=property
|title=A Speech about Generative Datalog and Non-measurable Sets
|pdfUrl=https://ceur-ws.org/Vol-2970/aspocpinvited2.pdf
|volume=Vol-2970
|authors=Mario Alviano,Arnel Zamayla
|dblpUrl=https://dblp.org/rec/conf/iclp/AlvianoZ21
}}
==A Speech about Generative Datalog and Non-measurable Sets==
A speech about Generative Datalog and Non-measurable Sets Mario Alviano, Arnel Zamayla Department of Mathematics and Computer Science University of Calabria Rende (CS), IT 87036 Abstract Generative Datalog is the first component of PPDL (short for Probabilistic-Programming Datalog), a recently proposed probabilistic programming language. Specifically, generative Datalog provides constructs to refer to parameterized probability distribution, and is used for the specification of stochastic processes. Possible outcomes of such a stochastic process are possibly filtered according to logical constraints, which constitute the second component of PPDL. This speech is about generative Datalog, and hints on the possibility to represent non-measurable sets by combining generative Datalog constructs with addition over real numbers and a single, atomic, ground constraint. Keywords Datalog, probabilistic reasoning, non-measurable sets, stable model semantics 1. Introduction Many probabilistic programming languages extend a deterministic programming language with primitive constructs for expressing random choices [1, 2]. Generative Datalog [3, 4] is not an exception and extends Datalog with ∆-terms, primitive constructs for representing parametrized probability distributions. Semantically, generative Datalog programs are mapped to existential Datalog programs, so to represent the uncertainty of ∆-terms. In such existential Datalog programs the outcome of ∆-terms is encoded by means of auxiliary predicates, so that only ground ∆-terms that are involved in the computation of inferred facts are eventually represented in models. Hence, the evaluation of a generative Datalog program is seen as a probabilistic process, and as such the semantics of generative Datalog can be formalized in terms of probability spaces, whose existence is claimed by Theorem 3.8 in [4]. On the other hand, PPDL (short for Probabilistic-Programming Datalog) [3, 4] adds logical constraints to generative Datalog, and assumes that the set of filtered possible outcomes is a measurable set (see Definition 5.3 in [4]). While in the finite case measurability of such a set is clear, the general case is non-trivial. In fact, non-measuable sets can be represented by combining generative Datalog constructs with addition over real numbers and a single, atomic, ASPOCP 2021: 14th Workshop on Answer Set Programming and Other Computing Paradigms, September 20–27, 2021, Porto, Portugal " mario.alviano@unical.it (M. Alviano); zamayla@mat.unical.it (A. Zamayla) ~ https://alviano.net/ (M. Alviano) 0000-0002-2052-2063 (M. Alviano); 0000-0002-6822-0574 (A. Zamayla) © 2021 Copyright for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0). CEUR Workshop Proceedings http://ceur-ws.org ISSN 1613-0073 CEUR Workshop Proceedings (CEUR-WS.org) ground constraint. (Details on the construction are given in the invited speech.) This fact has implications on any extension of generative Datalog with constructs that allow for expressing constraints, among them default negation under stable model semantics [5]: if real addition is supported by the language, there exists no probability space for models of the general case. Many other probabilistic logic languages exists in the literature. Some of them attach proba- bilities to database facts [6, 7, 8, 9, 10], or to rules [11, 12, 13, 14] and other provides constructs similar to ∆-terms [15, 16, 17, 18, 19, 20]. A comparison between these languages is out of the scope of this speech, and the reader is referred to [4] for details. 2. Probability Spaces and Parametrized Probability Distribution A probability space is a triple (Ω, ℱ, 𝑃 ) satisfying the following conditions: • Ω is the sample space, a nonempty set comprising all possible outcomes (of the modeled probabilistic process). • ℱ ⊆ 2Ω is the event space, a collection of all the events to consider, where an event is a set of possible outcomes. ℱ must be a 𝜎-algebra, ie. – ℱ contains the sample space: Ω ∈ ℱ; – ℱ is closed under complement: if 𝐸 ∈ ℱ, then (Ω ∖ 𝐸) ∈ ℱ; – ℱ is closed under countable unions: if 𝐸𝑖 ∈ ℱ for 𝑖 ∈ N, then (︀⋃︀ )︀ 𝑖∈N 𝐴𝑖 ∈ ℱ. • 𝑃 : ℱ → [0, 1] is the probability measure, a function on events such that – 𝑃 is ⋃︀countably ∑︀ additive: if 𝐸𝑖 ∈ ℱ (for all 𝑖 ∈ N) are pairwise disjoint sets, then 𝑃 ( 𝑖∈N 𝐸𝑖 ) = 𝑖∈N 𝑃 (𝐸𝑖 ). – the measure of the sample space is equal to one: 𝑃 (Ω) = 1. Example 1. Throwing a (6-faces) die is a classical example of probabilistic process. In this case, the sample space Ω is {1, 2, 3, 4, 5, 6} (or [1..6] for a more compact notation), ie. the possible outcome of the probabilistic process is one of the six faces of the die. The event space ℱ can be the powerset of Ω, hence comprising elementary events such as {1} (the die lands on 1) and complex events such as {1, 3, 5} (the die lands on an odd number) — note that the event space can also be smaller, if there is no need to consider all the events. As for the probability measure 𝑃 , assuming that the die is unbiased, it just divides the cardinality of the event by 6, ie. 𝑃 : 𝐸 ↦→ |𝐸| 6 . So, 𝑃 ({1}) = 6 and 𝑃 ({1, 3, 5}) = 6 = 2 . 1 3 1 ■ When Ω is countable, and all elementary events (ie. singletons) belongs to ℱ, the simpler notion ∑︀of discrete probability distribution can be employed, ie. a function 𝑃 : Ω → [0, 1] such that 𝑜∈Ω 𝑃 (𝑜) = 1. Let 𝒫Ω denote the set of all discrete probability distributions over Ω. A parametrized probability distribution over Ω is a function 𝛿 : R𝑘 → 𝒫Ω , that is, 𝛿(p) is a discrete probability distribution over Ω for every parameter instantiation p ∈ R𝑘 . Example 2 (Continuing Example 1). The constant function 𝑃 = {𝑖 ↦→ 16 | 𝑖 ∈ [1..6]} is a discrete probability distribution characterizing the throw of an unbiased die. Biased dice can be represented by the parametrized probability distribution Die : R6 → 𝒫[0..6] satisfying the following conditions: • if 𝑝𝑖 ∈ [0, 1] for all 𝑖 ∈ [1..6] and 6𝑖=1 𝑝𝑖 = 1, then Die(𝑝1 , . . . , 𝑝6 )(0) = 0 and ∑︀ Die(𝑝1 , . . . , 𝑝6 )(𝑖) = 𝑝𝑖 for all 𝑗 ∈ [1..6]; • otherwise, Die(𝑝1 , . . . , 𝑝6 )(0) = 1 and Die(𝑝1 , . . . , 𝑝6 )(𝑖) = 0 for all 𝑗 ∈ [1..6]. Note that outcome 0 is associated with incorrect instantiations of the parameters. ■ 3. Syntax and Semantics of Generative Datalog A ∆-term is an expression of the form 𝛿(P; S), where 𝛿 : R𝑘 → 𝒫Ω is a parametrized probability distribution over some Ω, each element in P and S is a constant or a variable, and |P| = 𝑘. Elements in S contribute to a signature to distinguish different runs of the probabilistic process associated with 𝛿(p), for any grounding p of P. Intuitively, each of those runs returns a possible outcome from Ω, according to the probability distribution 𝛿(p). Example 3 (Continuing Example 2). Each throw of a (possibly biased) die may result in a different outcome, which can be represented by the ∆-term Die(𝑝1 , . . . , 𝑝6 ; id ), where id is an identifier for a specific throw of the die — eg. Die( 16 , . . . , 61 ; 1) and Die( 16 , . . . , 61 ; 2) to represent two throws of an unbiased die. Note that two ∆-terms with different values for the parameters 𝑝1 , . . . , 𝑝6 are necessarily associated with different throws, as they must either refer to different dice or to a die that is altered between the two throws — eg. Die( 61 , . . . , 16 ; 1) and Die( 61 + 𝜖, 16 − 𝜖, 16 , 16 , 16 , 61 ; 1), for some 𝜖 ∈]0, 61 ], must refer to different throws. ■ Generative Datalog programs are Datalog programs whose head atoms possibly contains ∆-terms — to simplify the presentation, at most one ∆-term per rule. Their semantics is defined via an existential Datalog program obtained by replacing every rule 𝐻(X) ← 𝐵(X) containing a ∆-term 𝛿(P; S) with the following rules: ∃𝑌 Result 𝛿 (P, S, 𝑌 ) ← 𝐵(X) (1) 𝐻(X′ ) ← 𝐵(X), Result 𝛿 (P, S, 𝑌 ) (2) where Result 𝛿 is a fresh predicate name, 𝑌 a fresh variable, and X′ is obtained from X by replacing 𝛿(P; S) with 𝑌 . Intuitively, rule (1) and predicate Result 𝛿 materialize the function describing the actual outcomes of the probabilistic processes associated with 𝛿 and involved in the computation of inferred facts. Such outcomes are then propagated in the correct place by rule (2). Let Π∃ denote the existential Datalog program associated with a generative Datalog program Π. Example 4 (Continuing Example 3). The following generative Datalog program Π encodes the repeated throw of an unbiased die until it lands on an even number: Odd (1). Odd (3). Odd (5). Iteration(1). (3) (︂ (︂ )︂)︂ 1 Seen 𝐼, Die ;𝐼 ← Iteration(𝐼) (4) 6 Iteration(𝐼 + 1) ← Seen(𝐼, 𝑋), Odd (𝑋). (5) Program Π∃ is obtained from Π by replacing rule (4) with the following rules: (︂ )︂ Die 1 ∃𝑌 Result , 𝐼, 𝑌 ← Iteration(𝐼) 6 (︂ )︂ Die 1 Seen(𝐼, 𝑌 ) ← Iteration(𝐼), Result , 𝐼, 𝑌 . 6 Note that Π and Π∃ use integer addition (rule 5), which could be also expressed by ∆-terms (see Example 8). ■ The probability space associated with a generative Datalog program Π is the triple (ΩΠ , ℱΠ , 𝑃Π ), defined next. A possible outcome of a generative Datalog program Π is a minimal model 𝐼 of Π∃ such that 𝛿(p)(𝑦) > 0 for every Result 𝛿 (p, s, 𝑦) ∈ 𝐼. Let ΩΠ be the sample space associated with Π, ie. the set of possible outcomes of Π. Example 5 (Continuing Example 4). Among the minimal models of Π∃ there are those extending 𝐼1 = {Odd (1), Odd (3), Odd (5), Iteration(1)} as follows: • 𝐼2 = 𝐼1 ∪ {Result Die ( 16 , 1, 2), Seen(1, 2)}; • 𝐼3 = 𝐼1 ∪ {Result Die ( 16 , 1, 3), Seen(1, 3), Iteration(2), Result Die ( 61 , 2, 6), Seen(2, 6)}; • 𝐼4 = 𝐼1 ∪ {Result Die ( 16 , 𝑖, 3), Seen(𝑖, 3), Iteration(𝑖 + 1) | 𝑖 ≥ 1}. Note that model 𝐼4 comprises infinitely many facts. ■ A derivation wrt. a generative Datalog program Π is a finite sequence 𝐼 = [𝑓1 , . . . , 𝑓𝑛 ] of facts such that 𝑓𝑖 is derived by some unsatisfied rule of Π∃ ∪ {𝑓1 , . . . , 𝑓𝑖−1 }, for all 𝑖 ∈ [1..𝑛]. Let ℐΠ denote the set of derivations wrt. Π, and let Ω⊇𝐼 Π denote the set of possible outcomes of Π extending 𝐼, ie. {𝐽 ∈ ΩΠ | 𝐽 ⊇ 𝐼}. The event space associated with Π, denoted ℱΠ , is the 𝜎-algebra generated from {Ω⊇𝐼 Π | 𝐼 ∈ ℐΠ } (ie. its closure under complement and countable unions). Example 6 (Continuing Example 5). Recall minimal models 𝐼2 , 𝐼3 , 𝐼4 from Example 5. Let 𝐼1′ ⊇𝐼 ′ be the derivation [Odd (1), Odd (3), Odd (5), Iteration(1)]. Hence, ΩΠ 1 is the entire sample ⊇𝐼 ′ space ΩΠ . For 𝐼2′ = 𝐼1′ ∪ [Result Die ( 16 , 1, 2), Seen(1, 2)], we have that ΩΠ 2 = {𝐼2 }. On the ⊇𝐼 ′ other hand, for 𝐼3′ = 𝐼1′ ∪ [Result Die ( 61 , 1, 3), Seen(1, 3)], we have that ΩΠ 3 contains infinitely many possible outcomes, among them 𝐼3 and 𝐼4 . Note that all finite elementary events belongs to the event space ℱΠ (eg. {𝐼2 }), while infinite possible outcomes only occur in complex events (eg. {𝐼4 } ∈ / ℱΠ ). ■ The probability measure associated with a generative Datalog program Π, denoted 𝑃Π , is such that the probability of the set of possible outcomes of Π extending a derivation 𝐼 is the product of the probabilities of the ∆-terms represented in 𝐼, ie. 𝑃Π (Ω⊇𝐼 ∏︁ Π ) = 𝛿(p)(𝑦). Result 𝛿 (p,s,𝑦)∈𝐼 ⊇𝐼 ′ Example 7 (Continuing Example 6). 𝑃Π (ΩΠ 1 ) = 1 because 𝐼1′ contains no Result Die instance, ⊇𝐼 ′ ⊇𝐼 ′ while 𝑃Π (ΩΠ 2 ) = 𝑃Π (ΩΠ 3 ) = 16 because Result Die ( 16 , 1, 2) ∈ 𝐼2′ and Result Die ( 16 , 1, 3) ∈ 𝐼3′ are the only Result Die instances in 𝐼2′ and 𝐼3′ , and Die( 61 )(2) = Die( 16 )(3) = 16 . ■ 4. Arithmetic and Non-measurable Sets Example 4 concludes by suggesting that addition over integers can be expressed by ∆-terms without the need for an ad-hoc construct. The next example better clarify the idea. Example 8. Integer addition can be represented by the ∆-term Add : R2 → 𝒫Z∪{⊥} such that: • if 𝑖, 𝑗 ∈ Z, then Add(𝑖, 𝑗)(𝑖 + 𝑗) = 1 and Add(𝑖, 𝑗)(𝑘) = 0 for all 𝑘 ̸= 𝑖 + 𝑗; • otherwise, Add(𝑖, 𝑗)(⊥) = 1 and Add(𝑖, 𝑗)(𝑘) = 0 for all 𝑘 ̸= ⊥. Accordingly, rule (5) in Example 4 can be rewritten as Iteration(Add(𝐼, 1)) ← Seen(𝐼, 𝑋), Odd (𝑋). Similarly, ∆-terms can encode addition over rational numbers or any other countable set. ■ Essentially, Add(𝑖, 𝑗) in the example above is a Kronecker delta (the discrete anolog of the Dirac delta function) assigning 1 to 𝑖 + 𝑗, and 0 to all other numbers, for all integers 𝑖, 𝑗. The same idea can be adapted to represent any function over any countable set (eg. integer multiplication and addition over rational numbers), but also any relation over uncountable sets (eg. greater than or less than). On the other hand, real addition cannot be encoded in this way because ∆-terms by definition are associated with parametrized probability distributions over a countable sample space. (Such a restriction is overcome in [21], where parametrized probability distribution over uncountable sample spaces are supported.) Support for real addition in the language has implications on the existence of probability spaces for filtered models of generative Datalog programs, as hinted in the reminder of this section. A non-measurable set is a set which cannot be assigned a meaningful “volume”. In Zermelo- Fraenkel set theory, the axiom of choice entails that non-measurable subsets of R exist. Classical examples are Vitali sets, defined next. Definition 1. A Vitali set 𝑉 is a subset of [0, 1] such that, for each real number 𝑟, there is exactly one number 𝑣 ∈ 𝑉 such that 𝑣 − 𝑟 is a rational number. We now hint on how to associate a Vitali set 𝑉 with filtered-out possible outcomes of a generative Datalog program with real addition. Each possible outcome of such a program represents a different real number 𝑥 in the unit interval [0, 1], together with √ all rational numbers being a truncation of the binary representation of 𝑥 — eg. if 𝑥 = 2 ( ≃ 0.1011012 ), its 2 truncations are 0.12 , 0.1012 , 0.10112 , 0.1011012 , and so on. Intuitively, 𝑥 and its truncations are produced by repeatedly appending to “0.” a binary digit chosen at random; digits are appended by using real addition, and generated by a ∆-term selecting 0 or 2−𝑛 with probability 0.5, for any integer parameter 𝑛. It remains to filter-out possible outcomes containing members of the Vitali set 𝑉 . For this purpose, the membership relation for 𝑉 can be represented by a ∆-term employing a Kronecker delta. So, we can detect if the real number 𝑥 in a possible outcome belongs to 𝑉 , but we should avoid to recognize as a member of 𝑉 any of its truncations. This is achieved by taking a Vitali set 𝑉 containing the rational number 1, and therefore such that 𝑉 ∖ {1} is a set of irrational numbers (by Definition 1). Summing up, the probability measure of the filtered-out possible outcomes would be the Lebesgue measure of the Vitali set 𝑉 , which is known to be a non-measurable set. Details on the construction are given in the invited speech. Acknowledgments This speech is about some ongoing research with Matthias Lanzinger, Michael Morak, and Andreas Pieris. This work was partially supported by the projects PON-MISE MAP4ID (CUP B21B19000650008) and PON-MISE S2BDW (CUP B28I17000250008), by the LAIA lab (part of the SILA labs) and by GNCS-INdAM. References [1] N. D. Goodman, The principles and practice of probabilistic programming, in: R. Giacobazzi, R. Cousot (Eds.), The 40th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL ’13, Rome, Italy - January 23 - 25, 2013, ACM, 2013, pp. 399– 402. URL: https://doi.org/10.1145/2429069.2429117. doi:10.1145/2429069.2429117. [2] C. Jones, G. D. Plotkin, A probabilistic powerdomain of evaluations, in: Proceedings of the Fourth Annual Symposium on Logic in Computer Science (LICS ’89), Pacific Grove, California, USA, June 5-8, 1989, IEEE Computer Society, 1989, pp. 186–195. URL: https: //doi.org/10.1109/LICS.1989.39173. doi:10.1109/LICS.1989.39173. [3] V. Bárány, B. ten Cate, B. Kimelfeld, D. Olteanu, Z. Vagena, Declarative probabilistic programming with datalog, in: W. Martens, T. Zeume (Eds.), 19th International Conference on Database Theory, ICDT 2016, Bordeaux, France, March 15-18, 2016, volume 48 of LIPIcs, Schloss Dagstuhl - Leibniz-Zentrum für Informatik, 2016, pp. 7:1–7:19. URL: https: //doi.org/10.4230/LIPIcs.ICDT.2016.7. doi:10.4230/LIPIcs.ICDT.2016.7. [4] V. Bárány, B. ten Cate, B. Kimelfeld, D. Olteanu, Z. Vagena, Declarative probabilistic programming with datalog, ACM Trans. Database Syst. 42 (2017) 22:1–22:35. URL: https: //doi.org/10.1145/3132700. doi:10.1145/3132700. [5] M. Gelfond, V. Lifschitz, Classical negation in logic programs and disjunctive databases, New Gener. Comput. 9 (1991) 365–386. URL: https://doi.org/10.1007/BF03037169. doi:10. 1007/BF03037169. [6] T. Sato, Y. Kameya, PRISM: A language for symbolic-statistical modeling, in: Proceedings of the Fifteenth International Joint Conference on Artificial Intelligence, IJCAI 97, Nagoya, Japan, August 23-29, 1997, 2 Volumes, Morgan Kaufmann, 1997, pp. 1330–1339. URL: http://ijcai.org/Proceedings/97-2/Papers/078.pdf. [7] D. Suciu, D. Olteanu, C. Ré, C. Koch, Probabilistic Databases, Synthesis Lectures on Data Management, Morgan & Claypool Publishers, 2011. URL: https://doi.org/10.2200/ S00362ED1V01Y201105DTM016. doi:10.2200/S00362ED1V01Y201105DTM016. [8] B. Kimelfeld, P. Senellart, Probabilistic XML: models and complexity, in: Z. Ma, L. Yan (Eds.), Advances in Probabilistic Databases for Uncertain Information Management, volume 304 of Studies in Fuzziness and Soft Computing, Springer, 2013, pp. 39–66. URL: https: //doi.org/10.1007/978-3-642-37509-5_3. doi:10.1007/978-3-642-37509-5\_3. [9] T. Vieira, M. Francis-Landau, N. W. Filardo, F. Khorasani, J. Eisner, Dyna: toward a self- optimizing declarative language for machine learning applications, in: T. Shpeisman, J. Gottschlich (Eds.), Proceedings of the 1st ACM SIGPLAN International Workshop on Machine Learning and Programming Languages, MAPL@PLDI 2017, Barcelona, Spain, June 18, 2017, ACM, 2017, pp. 8–17. URL: https://doi.org/10.1145/3088525.3088562. doi:10. 1145/3088525.3088562. [10] F. G. Cozman, D. D. Mauá, The joy of probabilistic answer set programming: Semantics, complexity, expressivity, inference, Int. J. Approx. Reason. 125 (2020) 218–239. URL: https://doi.org/10.1016/j.ijar.2020.07.004. doi:10.1016/j.ijar.2020.07.004. [11] P. M. Domingos, D. Lowd, Markov Logic: An Interface Layer for Artificial Intelli- gence, Synthesis Lectures on Artificial Intelligence and Machine Learning, Morgan & Claypool Publishers, 2009. URL: https://doi.org/10.2200/S00206ED1V01Y200907AIM007. doi:10.2200/S00206ED1V01Y200907AIM007. [12] F. Niu, C. Ré, A. Doan, J. W. Shavlik, Tuffy: Scaling up statistical inference in markov logic networks using an RDBMS, Proc. VLDB Endow. 4 (2011) 373–384. URL: http://www.vldb. org/pvldb/vol4/p373-niu.pdf. doi:10.14778/1978665.1978669. [13] F. Niu, C. Zhang, C. Ré, J. W. Shavlik, Deepdive: Web-scale knowledge-base construction using statistical learning and inference, in: M. Brambilla, S. Ceri, T. Furche, G. Gottlob (Eds.), Proceedings of the Second International Workshop on Searching and Integrating New Web Data Sources, Istanbul, Turkey, August 31, 2012, volume 884 of CEUR Workshop Proceedings, CEUR-WS.org, 2012, pp. 25–28. URL: http://ceur-ws.org/Vol-884/VLDS2012_p25_Niu.pdf. [14] J. Lee, S. Talsania, Y. Wang, Computing LPMLN using ASP and MLN solvers, Theory Pract. Log. Program. 17 (2017) 942–960. URL: https://doi.org/10.1017/S1471068417000400. doi:10.1017/S1471068417000400. [15] V. S. Costa, D. Page, J. Cussens, Clp(BN ): Constraint logic programming for probabilistic knowledge, in: L. D. Raedt, P. Frasconi, K. Kersting, S. Muggleton (Eds.), Probabilistic Induc- tive Logic Programming - Theory and Applications, volume 4911 of Lecture Notes in Com- puter Science, Springer, 2008, pp. 156–188. URL: https://doi.org/10.1007/978-3-540-78652-8_ 6. doi:10.1007/978-3-540-78652-8\_6. [16] D. Poole, The independent choice logic and beyond, in: L. D. Raedt, P. Frasconi, K. Kersting, S. Muggleton (Eds.), Probabilistic Inductive Logic Programming - Theory and Applications, volume 4911 of Lecture Notes in Computer Science, Springer, 2008, pp. 222–243. URL: https://doi.org/10.1007/978-3-540-78652-8_8. doi:10.1007/978-3-540-78652-8\_8. [17] C. Baral, M. Gelfond, J. N. Rushton, Probabilistic reasoning with answer sets, Theory Pract. Log. Program. 9 (2009) 57–144. URL: https://doi.org/10.1017/S1471068408003645. doi:10.1017/S1471068408003645. [18] J. Vennekens, M. Denecker, M. Bruynooghe, Cp-logic: A language of causal probabilistic events and its relation to logic programming, Theory Pract. Log. Program. 9 (2009) 245–308. URL: https://doi.org/10.1017/S1471068409003767. doi:10.1017/S1471068409003767. [19] B. Gutmann, I. Thon, A. Kimmig, M. Bruynooghe, L. D. Raedt, The magic of logical inference in probabilistic programming, Theory Pract. Log. Program. 11 (2011) 663–680. URL: https://doi.org/10.1017/S1471068411000238. doi:10.1017/S1471068411000238. [20] D. Nitti, T. D. Laet, L. D. Raedt, Probabilistic logic programming for hybrid relational domains, Mach. Learn. 103 (2016) 407–449. URL: https://doi.org/10.1007/s10994-016-5558-8. doi:10.1007/s10994-016-5558-8. [21] M. Grohe, B. L. Kaminski, J. Katoen, P. Lindner, Generative datalog with continuous distributions, in: D. Suciu, Y. Tao, Z. Wei (Eds.), Proceedings of the 39th ACM SIGMOD- SIGACT-SIGAI Symposium on Principles of Database Systems, PODS 2020, Portland, OR, USA, June 14-19, 2020, ACM, 2020, pp. 347–360. URL: https://doi.org/10.1145/3375395. 3387659. doi:10.1145/3375395.3387659.