aspmc: An Algebraic Answer Set Counter Thomas Eiter1 , Markus Hecher1 and Rafael Kiesel1 1 Vienna University of Technology, Favoritenstrasse 9-11, Vienna, 1040, Austria Abstract We report about aspmc, which is the working prototype implementation of recent advances in Algebraic Answer Set Counting (AASC). AASC refers to counting the answer sets of a normal answer set program with weights over a semiring. This includes many problems that have recently received growing attention, among them probabilistic reasoning, parameter learning, and most probable explanation inference for answer set programs. aspmc employs a treewidth-aware cycle-breaking to reduce AASC to Algebraic Model Counting (AMC) over a propositional formula with only a slightly increased treewidth. This allows us to lift the performance bounds for AMC in terms of treewidth to AASC. The experimental evaluation of aspmc reveals that these bounds are not only of theoretical interest but also allow us to improve upon the efficiency of other exact counters on standard benchmarks. 1 Keywords Probabilistic Reasoning, Answer Set Programming, Model Counting, Treewidth, Semiring 1. Introduction Recently, there has been a rising interest in reasoning problems for Answer Set Programming (ASP) that go beyond the classical consistency problem. For example, LPMLN [2], P-log [3], PrASP [4], PASP [5] and Problog [6] allow for probabilistic reasoning. Weight Constraints and more generally the asprin framework [7] consider preferential reasoning over answer sets. Finally, algebraic Prolog [8] and Weighted LARS [9] capture and generalize both of these ideas in Algebraic Answer Set Counting (AASC), i.e. weighted answer set counting over semirings. While there are many frameworks allowing such specifications, the corresponding choice of solvers is limited: the clingo solver [10] performs answer set counting by enumeration, which becomes infeasible for millions of answer sets. The dynASP2.5 solver [11] focuses on programs of low treewidth. The Problog solver [12] reduces the problem to Algebraic Model Counting (AMC) [13], for which efficient solvers exist [14, 15, 16]. Other solutions exist for approximate probabilistic queries [17] or most probable answer set inference [18], which are outside of our scope as we aim for exact weighted answer set counting. While Problog does not accept arbitrary ASP programs as input, we still consider its strategy to be the most promising approach. The basic idea, described in detail in [19], is the following. First one breaks the cyclic dependencies in the input program, obtaining a tight program, where 1 This is a technical summary of the longer version accepted at KR 2021 [1]. PLP 2021 " thomas.eiter@tuwien.ac.at (T. Eiter); markus.hecher@tuwien.ac.at (M. Hecher); rafael.kiesel@tuwien.ac.at (R. Kiesel)  0000-0001-6003-6345 (T. Eiter); 0000-0003-0131-6771 (M. Hecher); 0000-0002-8866-3452 (R. Kiesel) ยฉ 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) the answer sets are the models of its Clark completion [20]. The Clark completion can then be compiled it into an equivalent d-DNNF/SDD representation, where AMC is possible in linear time [13]. This approach allows for practically relevant instances to be solved [21]. However, the way cycles in the programโ€™s positive dependency graph are broken can have a negative effect on the treewidth. Cycle breaking is well studied in the ASP community. Among others, Hecherโ€™s [22] translation from ASP to SAT guarantees that the treewidth of the SAT instance is ๐’ช(๐‘˜ log(๐‘™)), where ๐‘˜ is the original treewidth and ๐‘™ is the minimum of ๐‘˜ and the size of the largest strongly connected component of the dependency graph of the program. Unfortunately, this translation does not preserve models bijectively. In contrast, cycle breaking used in Problog [23, 21] and others [24] preserve models without strong treewidth bounds. We address this and provide the following: โ€ข We show that every program of treewidth ๐‘˜ can be translated into an acyclic program with treewidth at most ๐‘˜ ยท cbs(DEP(ฮ )), where cbs(DEP(ฮ )), is the component-boosted backdoor size of the dependency graph of ฮ ; notably, cbs(.) is a novel parameter on directed graphs combining backdoor sets and decomposability to measure the cyclicity. โ€ข We provide a prototype implementation aspmc that performs AASC by exploiting the constructive proof of the above result. Our experimental results show that when a program has many answer sets, aspmc outperforms Problog, clingo and lp2sat [24]. 2. Algebraic Answer Set Counting We assume familiarity with the basics of Answer Set Programming (ASP) [25] and use ๐’œ(ฮ ) and ๐’œ๐’ฎ(ฮ ) for the atoms and answer sets of a program ฮ , respectively. We introduce AASC by using the following minimal instantiation ฮ ๐‘ ๐‘š of the smokers program, which is a standard example from probabilistic logic programming [6]. {stress(๐‘ฅ)} โ† for ๐‘ฅ = 1, 2 smokes(๐‘ฅ) โ† stress(๐‘ฅ) for ๐‘ฅ = 1, 2 {influences(๐‘ฆ, ๐‘ฅ)} โ† for ๐‘ฅ + 1 = ๐‘ฆ mod 2 smokes(๐‘ฅ) โ† influences(๐‘ฆ, ๐‘ฅ), smokes(๐‘ฆ) for ๐‘ฅ + 1 = ๐‘ฆ mod 2 This encodes that for person 1 and 2 it is randomly determined whether they are stressed. If they are, they smoke. Furthermore, if one influences the other, which is again random, and smokes, then they also smoke. In order to introduce probabilities, we use algebraic measures. Definition 1 (Measure). A (factorized algebraic) measure ๐œ‡ = โŸจฮ , ๐‘“, ๐น โŸฉ consists of an answer set program ฮ , a weight function ๐‘“ and a set of extensional atoms ๐น โІ ๐’œ(ฮ ). The weight ๐œ‡(โ„) of an answer set โ„ and the weight ๐œ‡(๐‘Ž) of ๐‘Ž โˆˆ ๐’œ(ฮ ) are defined respectively as โˆ๏ธ โˆ๏ธ โˆ‘๏ธ ๐œ‡(โ„) := ๐‘“ (๐‘Ž) ยท ๐‘“ (ยฌ๐‘Ž) and ๐œ‡(๐‘Ž) := ๐œ‡(โ„). ๐‘Žโˆˆ๐น โˆฉโ„ ๐‘Žโˆˆ๐น โˆ–โ„ โ„โˆˆ๐’œ๐’ฎ(ฮ ),๐‘Žโˆˆโ„ Measures โ€œmeasureโ€ values associated with answer set. AASC is then to evaluate ๐œ‡(๐‘Ž), i.e., to sum up the weights of all answer sets that satisfy ๐‘Ž. We do not focus on any particular application of AASC. Usually, measures are not necessarily factorized and allow complex terms of sums and products to define the weight of an answer set. Furthermore, they are defined not only for weights over the reals but over any semiring. We stick to the restricted definition above for simplicity. We can assign probabilities using the measure ๐œ‡๐‘ ๐‘š = โŸจฮ ๐‘ ๐‘š , ๐‘“, ๐น โŸฉ, where ๐‘“ (stress(๐‘–)) = 0.4 ๐‘“ (ยฌstress(๐‘–)) = 0.6 ๐‘– = 1, 2 ๐‘“ (influences(๐‘–, ๐‘—)) = 0.3 ๐‘“ (ยฌinfluences(๐‘–, ๐‘—)) = 0.7 ๐‘– + 1 โ‰ก ๐‘— mod 2 This means that the probability of a person being stressed is 0.4 and the probability that a person influences their friend is 0.3. Therefore, the answer set โ„ = {stress(1), smokes(1)} has probability ๐œ‡๐‘ ๐‘š (โ„) = 0.4 ยท 0.6 ยท 0.72 . The query ๐œ‡(smokes(1)) corresponds to the probability that person 1 smokes. To evaluate it we need to perform AASC, i.e., sum up the probabilities of all answer sets s.t. smokes(1) holds. 3. Evaluation Pipeline ๐œ‡ ฮ  Break ฮ โ€ฒ ๐œ‘ ๐ถ ๐‘ Clark Knowledge Ground Evaluation Cycles Completion Compilation Figure 1: Evaluation pipeline from an algebraic measure ๐œ‡ to the result ๐œ‡(๐‘Ž) = ๐‘ of the query. Currently, the most promising strategy to perform AASC is the one used by Problog [19]. Here, the general idea is to compile the program ฮ  into an equivalent tractable circuit representation ๐ถ, like SDD [26] or sd-DNNF [27]. When this succeeds, AASC is possible in linear time in the size of the circuit ๐ถ. However, while there are so called knowledge compilers that perform this task, they can only work on propositional formulas. The whole pipeline that we and (similarly) Problog use is therefore as in Figure 1. Given an algebraic measure ๐œ‡, we first ground the logical part of the measure, obtaining a ground program ฮ . Next, ฮ  is translated into an equivalent program ฮ โ€ฒ , which is acyclic, i.e., which does not contain rules with cyclic positive dependencies. For such programs it is known [20] that the Clark completion of ฮ โ€ฒ results in a propositional formula ๐œ‘, whose models correspond one-to-one to the answer sets of ฮ โ€ฒ . Thus, by compiling ๐œ‘ into a tractable circuit representation ๐ถ, using a tool like c2d [28], we can obtain the probability ๐‘ as the final result. 4. Treewidth-Aware Cycle Breaking Our contribution in [1] focused on the second step in this pipeline, by introducing an algorithm that breaks cycles in a treewidth-aware fashion. Finding an equivalent and acyclic program ฮ โ€ฒ of low treewidth can be beneficial since there are performance guarantees for knowledge compilation based on treewidth [26]. This motivates our main result for cycle-breaking: Theorem 2. For any measure ๐œ‡ = โŸจฮ , ๐‘“, ๐น โŸฉ, there exists a measure ๐œ‡โ€ฒ = โŸจฮ โ€ฒ , ๐‘“, ๐น โŸฉ with an acyclic program ฮ โ€ฒ s.t. โ€ข for all ๐‘Ž โˆˆ ๐’œ(ฮ ) it holds that ๐œ‡(๐‘Ž) = ๐œ‡โ€ฒ (๐‘Ž), โ€ข the treewidth of ฮ โ€ฒ is bounded by ๐‘˜ ยท cbs(DEP(ฮ )), where ๐‘˜ is the treewidth of ฮ . Here, cbs(DEP(ฮ )) is a novel parameter, called component-boosted backdoor size, which intuitively measures the cyclicity of the dependency graph of ฮ . It is defined as follows: Definition 3. Let ๐บ be a digraph. Then, the component-boosted backdoor size cbs(๐บ) is โ€ข 1, if ๐บ is acyclic (which includes ๐‘‰ (๐บ) = โˆ…) โ€ข 2, if ๐บ is a polytree, i.e. the undirected version of ๐บ is connected and acyclic โ€ข max{cbs(๐ถ) | ๐ถ โˆˆ SCC(๐บ)}, if ๐บ is cyclic but not strongly connected โ€ข min{cbs(๐บ โˆ– ๐‘†) ยท (|๐‘†| + 1) | ๐‘† โІ ๐‘‰ (๐บ)} otherwise As the name suggests, ๐‘๐‘๐‘  generalizes the idea of backdoors, which have already been con- sidered in the context of ASP [29]. In our context, a backdoor for a digraph ๐บ is a vertex set ๐‘†, such that ๐บ โˆ– ๐‘† is a polytree, polyforest or dag. The backdoor size of ๐บ is the minimum size of a backdoor for ๐บ plus 1. Note that our parameter additionally considers that ๐บ โˆ– ๐‘† may consist of separate SCCs that can be handled recursively and is therefore bounded by backdoor size. The proof of Theorem 2 is constructive, in the sense that it allows the formulation of an algorithm that computes ฮ โ€ฒ . Broadly speaking, the idea is to gradually introduce copies ๐‘Ž(1) , . . . , ๐‘Ž(cbs(DEP(ฮ ))) of each atom ๐‘Ž that better and better approximate the meaning of ๐‘Ž. For this, we copy all rules ๐‘Ž โ† ๐‘1 , . . . , ๐‘๐‘› , not ๐‘1 , . . . , not ๐‘๐‘š and replace them by (๐‘— ) ๐‘Ž(๐‘–) โ† ๐‘1 1 , . . . , ๐‘(๐‘— ๐‘›) ๐‘› , not ๐‘1 , . . . , not ๐‘๐‘š , thus expressing the truth of ๐‘Ž(๐‘–)) in terms of already known approximations of ๐‘1 , . . . , ๐‘๐‘› . Theo- rem 2 guarantees that, if we consider the atoms in the correct order, a fixed point can be reached after considering each atom at most cbs(DEP(ฮ )) times. We cannot go into details here due to lack of space but refer interested readers to the full paper [1]. Nevertheless, we can apply Theorem 2 to our running example and obtain ฮ โ€ฒ๐‘ ๐‘š as {stress(๐‘ฅ)} โ† for ๐‘ฅ = 1, 2 {influences(๐‘ฆ, ๐‘ฅ)} โ† for ๐‘ฅ + 1 = ๐‘ฆ mod 2 smokes(1)1 โ† stress(1) smokes(1)1 โ† influences(2, 1), โŠฅ smokes(2) โ† stress(2) smokes(2) โ† influences(1, 2), smokes(1)1 smokes(1) โ† stress(1) smokes(1) โ† influences(2, 1), smokes(2) Observe, that ฮ โ€ฒ๐‘ ๐‘š has the same answer sets with respect to the original atoms and is acyclic. Also the treewidth of ฮ โ€ฒ๐‘ ๐‘š has increased by at most 1, since only the atom smokes(1)1 was added. Comparison to other Cycle-Breaking Algorithms There exists a wide variety of algorithms for cycle-breaking in the ASP literature [24, 23, 22, 30]. However, since most ideas were originally intended for ASP, where it suffices to find one answer set, some of these algorithms do not preserve the original models bijectively [22, 30]. The remaining two ideas preserve answer sets bijectively. As such, Janhunenโ€™s [24] was considered for the implementation of Problog (cf. [31]) and Mantadeliโ€™s and Janssenโ€™s [23] is even still part of the standard Problog implementation. While the original papers did not consider the effects that these translations have on treewidth, the strategy to bound treewidth used in [1, 22] can be applied to these translation as well. This results in treewidth upper-bounds of ๐‘˜ log2 (๐ถmax ) and ๐‘˜๐‘, respectively, where ๐ถmax is the size of the largest strongly connected component of the dependency graph of ฮ  and ๐‘ is the largest number of simple (directed) cycles that any atom is contained in. One can show that ๐‘๐‘๐‘ (.) is always bounded by ๐‘ and possible exponentially smaller, since on a clique of size ๐‘›, we have ๐‘ โ‰ฅ 2๐‘›โˆ’1 , whereas ๐‘๐‘๐‘ (.) of a clique of size ๐‘› is ๐‘›. Therefore, Theorem 2 provides strictly better treewidth bounds in general. Observe, however, that for the first translation, the factor grows logarithmically in ๐ถmax . It follows that for a clique of size ๐‘› the upper-bound ๐‘˜ log2 (๐‘›) of the first translation is exponentially lower than ๐‘˜๐‘›, which is our bound. On the other hand for a polytree ๐‘‡ with ๐‘› vertices ๐‘๐‘๐‘ (๐‘‡ ) = 2, whereas log2 (๐‘›) is not constant. 5. Implementation & Experiments We implemented a system that adheres to the evaluation procedure above, resulting in the prototypical solver aspmc1 . aspmc is written in Python3 and allows for Problog programs ฮ  as input in order to compute the answers to probabilistic (resp. algebraic) queries in ฮ . Benchmark Setting. In order to evaluate the performance of aspmc, we compare the com- putation of probabilities for atoms of Problog programs. For solvers that are not able to evaluate probabilistic queries we compute the number of answer sets. Compared Solvers. In our experiments, we mainly compare against Problog 2.1.0.42 with the arguments โ€œ-k sddโ€, clingo 5.4.0, where we used arguments โ€œ-q -n 0โ€ in order to count answer sets, as well as lp2sat+c2d, where instances are translated [32] to CNFs by lp2normal 2.18 in combination with lp2atomic 1.17 and lp2sat 1.24 with answer sets being counted with c2d version 2.2 [28]. Our system is aspmc+c2d, which breaks the cycles and performs AASC on a tractable circuit representation of the constructed CNF, obtained via c2d 2.2. Benchmark Instances. The instances we used are the benchmarks from [33] and were kindly provided to us by the authors via personal communication. They adhere to typical benchmark domains consisting of 490 instances of the standard smokerโ€™s example, 50 instances of the geneโ€™s problem [34] and 63 web knowledge base instances [35]. Benchmark Platform. All our solvers ran on a cluster consisting of 12 nodes. Each node of the cluster is equipped with two Intel Xeon E5-2650 CPUs, where each of these 12 physical 1 available at github.com/raki123/aspmc (open source). 1800 aspmc+c2d 1600 problog lp2sat+c2d* 1400 clingo* 1200 wall clock time [s] 1000 800 solver โˆ‘๏ธ€ tw ranges configuration 0-3 4-6 >6 unique time[h] 600 aspmc+c2d 299 184 113 2 116 133.44 400 Problog 182 168 12 2 0 187.41 200 lp2sat+c2d* 174 167 3 4 2 194.42 clingo* 56 56 0 0 0 248.92 0 0 50 100 150 200 250 300 number of instances Figure 2: Cactus plot of the different solver configurations (left); x-axis shows the number of solved instances and the y-axis depicts runtimes sorted for each configuration individually in ascending order. Detailed results (right): โ€œฮฃโ€ is the number of solved instances in total; โ€œtw rangesโ€ shows the number of solved instances grouped by treewidth upper bounds; โ€œuniqueโ€ refers to the number of instances solved only by that configuration. Finally, โ€œtime[h]โ€ is the total runtime over all instances in hours, including timeouts. Configurations marked with โ€œ*โ€ refer to counting solutions. cores runs at 2.2 GHz clock speed and has access to 256 GB shared RAM. Results are gathered on Ubuntu 16.04.1 powered on kernel 4.4.0-139 with hyperthreading disabled and Python 3.7.6. Experimental Results & Discussion. In our evaluation, we mainly compare total wall clock time and number of solved instances. Concerning benchmark limits, we consider a timeout of 1800 seconds and an 8 GB RAM limit per instance and solver. Figure 2 (left) shows a plot over all instances, which indicates that aspmc+c2d solves more instances faster than any of the other configurations that we benchmarked. The detailed results in Figure 2 (right) indicate that cycle breaking works well for probabilistic reasoning. Other experiments [1] showed that clingo is extremely fast at enumerating solutions. Thus, on instances with not that many solutions, clingo is faster than any of the compilation-based approaches we considered. On the other hand, when there are more solutions, considering each of them once as in enumeration, is outperformed by the compilation-based approaches lp2sat+c2d, aspmc+c2d and Problog that solve significantly more instances in this case. 6. Conclusion and Future Work For any program ฮ , there is an equivalent acyclic program, whose treewidth is at most cbs(DEP(ฮ )) times bigger, where cbs(.) is a novel parameter that measures the cyclicity of directed graphs. The bound on the treewidth provides us with worst case guarantees for the knowledge compilation step in AASC. Our experimental evaluation of the prototype implementation aspmc shows that this idea does not only provide interesting theoretical results but provides a significant speedup on standard Problog benchmarks compared to other solvers. Acknowledgements The work is supported by Austrian Science Fund (FWF), Grants Y698, P32830 and W1255-N23, the Vienna Science and Technology Fund, Grant WWTF ICT19-065. References [1] T. Eiter, M. Hecher, R. Kiesel, Treewidth-aware cycle-breaking for algebraic answer set counting, in: 18th International Conference on Principles of Knowledge Representation and Reasoning, 2021. To Appear. Preliminary version available at https://drive.google.com/ file/d/1XvVCxNqssJKj18TghztkOUVDAsne5R_m/view?usp=sharing. [2] J. Lee, Z. Yang, LPMLN, weak constraints, and P-log, in: Thirty-First AAAI Conference on Artificial Intelligence, 2017. [3] C. Baral, M. Gelfond, N. Rushton, Probabilistic reasoning with answer sets, Theory and Practice of Logic Programming 9 (2009) 57โ€“144. [4] M. Nickles, A. Mileo, Web stream reasoning using probabilistic answer set programming, in: International Conference on Web Reasoning and Rule Systems, Springer, 2014, pp. 197โ€“205. [5] F. G. Cozman, D. D. Mauรก, The joy of probabilistic answer set programming: Semantics, complexity, expressivity, inference, International Journal of Approximate Reasoning 125 (2020) 218โ€“239. [6] L. De Raedt, A. Kimmig, H. Toivonen, Problog: A probabilistic prolog and its application in link discovery., in: IJCAI, volume 7, Hyderabad, 2007, pp. 2462โ€“2467. [7] G. Brewka, J. Delgrande, J. Romero, T. Schaub, asprin: Customizing answer set preferences without a headache, in: Twenty-Ninth AAAI Conference on Artificial Intelligence, 2015. [8] A. Kimmig, G. Van den Broeck, L. De Raedt, An algebraic prolog for reasoning about possible worlds, in: Twenty-Fifth AAAI Conference on Artificial Intelligence, 2011. [9] T. Eiter, R. Kiesel, Weighted LARS for quantitative stream reasoning, in: Proc. ECAIโ€™20, 2020. [10] M. Gebser, R. Kaminski, B. Kaufmann, T. Schaub, Clingo= ASP+ control: Preliminary report, arXiv preprint arXiv:1405.3694 (2014). [11] J. K. Fichte, M. Hecher, M. Morak, S. Woltran, Dynasp2. 5: Dynamic programming on tree decompositions in action, in: International Symposium on Parameterized and Exact Computation (IPEC), volume 89 of LIPIcs, Schloss Dagstuhl - Leibniz-Zentrum fรผr Informatik, 2017, pp. 17:1โ€“17:13. [12] D. R. G. KU Leuven, Problog, https://github.com/ML-KULeuven/problog, 2021. [13] A. Kimmig, G. Van den Broeck, L. De Raedt, Algebraic model counting, Journal of Applied Logic 22 (2017) 46โ€“62. [14] U. Oztok, A. Darwiche, A top-down compiler for sentential decision diagrams, in: Twenty- Fourth International Joint Conference on Artificial Intelligence, 2015. [15] T. Sang, P. Beame, H. A. Kautz, Performing bayesian inference by weighted model counting, in: AAAI, volume 5, 2005, pp. 475โ€“481. [16] M. Thurley, sharpSATโ€“counting models with advanced component caching and implicit BCP, in: International Conference on Theory and Applications of Satisfiability Testing, Springer, 2006, pp. 424โ€“429. [17] D. Tuckey, A. Russo, K. Broda, Pasocs: A parallel approximate solver for probabilistic logic programs under the credal semantics, arXiv preprint arXiv:2105.10908 (2021). [18] M. Nickles, diff-satโ€“a software for sampling and probabilistic reasoning for sat and answer set programming, arXiv preprint arXiv:2101.00589 (2021). [19] D. Fierens, G. Van den Broeck, J. Renkens, D. Shterionov, B. Gutmann, I. Thon, G. Janssens, L. De Raedt, Inference and learning in probabilistic logic programs using weighted boolean formulas, Theory and Practice of Logic Programming 15 (2015) 358โ€“401. [20] F. Fages, Consistency of Clarkโ€™s completion and existence of stable models, Journal of Methods of logic in computer science 1 (1994) 51โ€“60. [21] J. Vlasselaer, G. Van den Broeck, A. Kimmig, W. Meert, L. De Raedt, Tp-compilation for inference in probabilistic logic programs, International Journal of Approximate Reasoning 78 (2016) 15โ€“32. [22] M. Hecher, Treewidth-aware Reductions of Normal ASP to SAT - Is Normal ASP Harder than SAT after All?, in: Proceedings of the 17th International Conference on Principles of Knowledge Representation and Reasoning, 2020, pp. 485โ€“495. URL: https://doi.org/10. 24963/kr.2020/49. doi:10.24963/kr.2020/49. [23] T. Mantadelis, G. Janssens, Dedicated tabling for a probabilistic setting, in: Technical Communications of the 26th International Conference on Logic Programming, Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik, 2010. [24] T. Janhunen, Representing normal programs with clauses, in: ECAI, volume 16, Citeseer, 2004, p. 358. [25] T. Eiter, G. Ianni, T. Krennwallner, Answer set programming: A primer, in: Reasoning Web International Summer School, Springer, 2009, pp. 40โ€“110. [26] A. Darwiche, Sdd: A new canonical representation of propositional knowledge bases, in: Twenty-Second International Joint Conference on Artificial Intelligence, 2011. [27] A. Darwiche, P. Marquis, A knowledge compilation map, Journal of Artificial Intelligence Research 17 (2002) 229โ€“264. [28] A. Darwiche, New advances in compiling CNF into decomposable negation normal form, in: ECAI, IOS Press, 2004, pp. 328โ€“332. [29] J. K. Fichte, S. Szeider, Backdoors to tractable answer set programming, Artif. Intell. 220 (2015) 64โ€“103. URL: https://doi.org/10.1016/j.artint.2014.12.001. doi:10.1016/j. artint.2014.12.001. [30] F. Lin, J. Zhao, On tight logic programs and yet another translation from normal logic programs to propositional logic, in: International Joint Conference on Artificial Intelligence, 2003. [31] D. Fierens, G. Van den Broeck, I. Thon, B. Gutmann, L. D. Raedt, Inference in probabilistic logic programs using weighted cnfโ€™s, in: Proceedings of the Twenty-Seventh Conference on Uncertainty in Artificial Intelligence, 2011, pp. 211โ€“220. [32] J. Bomanson, lp2normal - A normalization tool for extended logic programs, in: LPNMR, volume 10377 of Lecture Notes in Computer Science, Springer, 2017, pp. 222โ€“228. [33] E. Tsamoura, V. Gutiรฉrrez-Basulto, A. Kimmig, Beyond the Grounding Bottleneck: Datalog Techniques for Inference in Probabilistic Logic Programs, in: Conference on Artificial Intelligence (AAAI), AAAI Press, 2020, pp. 10284โ€“10291. URL: https://aaai.org/ojs/index. php/AAAI/article/view/6591. [34] O. Ourfali, T. Shlomi, T. Ideker, E. Ruppin, R. Sharan, Spine: a framework for signaling- regulatory pathway inference from cause-effect experiments, Bioinformatics 23 (2007) i359โ€“i366. [35] J. Davis, P. Domingos, Deep transfer via second-order markov logic, in: Proceedings of the 26th annual international conference on machine learning, 2009, pp. 217โ€“224.