<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>T. Eiter); markus.hecher@tuwien.ac.at (M. Hecher); rafael.kiesel@tuwien.ac.at
(R. Kiesel)</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>aspmc: An Algebraic Answer Set Counter</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Thomas Eiter</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Markus Hecher</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Rafael Kiesel</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Vienna University of Technology</institution>
          ,
          <addr-line>Favoritenstrasse 9-11, Vienna, 1040</addr-line>
          ,
          <country country="AT">Austria</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2021</year>
      </pub-date>
      <volume>000</volume>
      <fpage>0</fpage>
      <lpage>0001</lpage>
      <abstract>
        <p>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</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Probabilistic Reasoning</kwd>
        <kwd>Answer Set Programming</kwd>
        <kwd>Model Counting</kwd>
        <kwd>Treewidth</kwd>
        <kwd>Semiring</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>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.</p>
      <p>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
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.</p>
      <p>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].</p>
    </sec>
    <sec id="sec-2">
      <title>2. Algebraic Answer Set Counting</title>
      <p>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.</p>
      <p>We introduce AASC by using the following minimal instantiation Π of the smokers program,
which is a standard example from probabilistic logic programming [6].</p>
      <p>{stress()} ←
smokes() ←</p>
      <p>stress()
{influences(, )} ←
smokes() ← influences(, ), smokes()
for  = 1, 2
for  = 1, 2
for  + 1 =  mod 2
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
 (ℐ) :=
∏︁  () ·</p>
      <p>∏︁  (¬) and  () :=
∈ ∩ℐ
∈ ∖ℐ</p>
      <p>∑︁
ℐ∈(Π),∈ℐ
 (ℐ).</p>
      <p>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.</p>
      <p>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.</p>
      <p>We can assign probabilities using the measure   = ⟨Π, ,  ⟩, where</p>
      <p>(stress()) = 0.4
 (influences(, )) = 0.3
 (¬stress()) = 0.6</p>
      <p>
        = 1, 2
 (¬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(
        <xref ref-type="bibr" rid="ref1">1</xref>
        ), smokes(
        <xref ref-type="bibr" rid="ref1">1</xref>
        )} has
probability  (ℐ) = 0.4 · 0.6 · 0.72. The query  (smokes(
        <xref ref-type="bibr" rid="ref1">1</xref>
        )) 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(
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) holds.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. Evaluation Pipeline</title>
      <p>Ground
Π</p>
      <sec id="sec-3-1">
        <title>Break</title>
      </sec>
      <sec id="sec-3-2">
        <title>Cycles</title>
        <p>Π′</p>
      </sec>
      <sec id="sec-3-3">
        <title>Clark</title>
      </sec>
      <sec id="sec-3-4">
        <title>Completion</title>
        <p />
      </sec>
      <sec id="sec-3-5">
        <title>Knowledge</title>
      </sec>
      <sec id="sec-3-6">
        <title>Compilation</title>
        <p />
      </sec>
      <sec id="sec-3-7">
        <title>Evaluation</title>
        <p />
        <p>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.</p>
        <p>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.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Treewidth-Aware Cycle Breaking</title>
      <p>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.</p>
      <p>• for all  ∈ (Π) it holds that  () =  ′(),
• the treewidth of Π′ is bounded by  · cbs(DEP(Π)), where  is the treewidth of Π.</p>
      <p>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</p>
      <p>As the name suggests,  generalizes the idea of backdoors, which have already been
considered 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.</p>
      <p>
        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
(
        <xref ref-type="bibr" rid="ref1">1</xref>
        ), . . . , (cbs(DEP(Π))) of each atom  that better and better approximate the meaning of .
For this, we copy all rules
      </p>
      <p>← 1, . . . , , not 1, . . . , not 
and replace them by</p>
      <p>() ← (11), . . . , (), not 1, . . . , not ,
thus expressing the truth of ()) in terms of already known approximations of 1, . . . , .
Theorem 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</p>
      <p>
        {stress()} ←
{influences(, )} ←
for  = 1, 2
for  + 1 =  mod 2
smokes(
        <xref ref-type="bibr" rid="ref1">1</xref>
        )1 ←
smokes(
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) ←
smokes(
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) ←
stress(
        <xref ref-type="bibr" rid="ref1">1</xref>
        )
stress(
        <xref ref-type="bibr" rid="ref2">2</xref>
        )
stress(
        <xref ref-type="bibr" rid="ref1">1</xref>
        )
smokes(
        <xref ref-type="bibr" rid="ref1">1</xref>
        )1 ← influences(
        <xref ref-type="bibr" rid="ref1 ref2">2, 1</xref>
        ), ⊥
smokes(
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) ← influences(
        <xref ref-type="bibr" rid="ref1 ref2">1, 2</xref>
        ), smokes(
        <xref ref-type="bibr" rid="ref1">1</xref>
        )1
smokes(
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) ← influences(
        <xref ref-type="bibr" rid="ref1 ref2">2, 1</xref>
        ), smokes(
        <xref ref-type="bibr" rid="ref2">2</xref>
        )
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(
        <xref ref-type="bibr" rid="ref1">1</xref>
        )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].
      </p>
      <p>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.</p>
      <p>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
ifrst 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.</p>
    </sec>
    <sec id="sec-5">
      <title>5. Implementation &amp; Experiments</title>
      <p>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
computation of probabilities for atoms of Problog programs. For solvers that are not able to evaluate
probabilistic queries we compute the number of answer sets.</p>
      <p>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.</p>
      <p>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].</p>
      <p>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
1available at github.com/raki123/aspmc (open source).
1800
1600
1400
]s1200
[
e
itm1000
k
c
lco 800
llaw 600
400
200
0 0
aspmc+c2d
problog
lp2sat+c2d*
clingo*
50
100
numb1e5r0of instances200
250
300
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 &amp; 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.</p>
      <p>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.</p>
      <p>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.</p>
    </sec>
    <sec id="sec-6">
      <title>6. Conclusion and Future Work</title>
      <p>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.</p>
    </sec>
    <sec id="sec-7">
      <title>Acknowledgements</title>
      <p>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.
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</p>
      <p>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</p>
      <p>Web International Summer School, Springer, 2009, pp. 40–110.
[26] A. Darwiche, Sdd: A new canonical representation of propositional knowledge bases, in:</p>
      <p>Twenty-Second International Joint Conference on Artificial Intelligence, 2011.
[27] A. Darwiche, P. Marquis, A knowledge compilation map, Journal of Artificial Intelligence</p>
      <p>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
signalingregulatory 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.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>T.</given-names>
            <surname>Eiter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Hecher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kiesel</surname>
          </string-name>
          ,
          <article-title>Treewidth-aware cycle-breaking for algebraic answer set counting</article-title>
          ,
          <source>in: 18th International Conference on Principles of Knowledge Representation and Reasoning</source>
          ,
          <year>2021</year>
          . To Appear. Preliminary version available at https://drive.google.com/ ifle/d/1XvVCxNqssJKj18TghztkOUVDAsne5R_m/view?usp=sharing.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>J.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <surname>Z.</surname>
          </string-name>
          <article-title>Yang, LPMLN, weak constraints, and P-log</article-title>
          ,
          <source>in: Thirty-First AAAI Conference on Artificial Intelligence</source>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>C.</given-names>
            <surname>Baral</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gelfond</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Rushton</surname>
          </string-name>
          ,
          <article-title>Probabilistic reasoning with answer sets</article-title>
          ,
          <source>Theory and Practice of Logic Programming</source>
          <volume>9</volume>
          (
          <year>2009</year>
          )
          <fpage>57</fpage>
          -
          <lpage>144</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M.</given-names>
            <surname>Nickles</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Mileo</surname>
          </string-name>
          ,
          <article-title>Web stream reasoning using probabilistic answer set programming</article-title>
          ,
          <source>in: International Conference on Web Reasoning and Rule Systems</source>
          , Springer,
          <year>2014</year>
          , pp.
          <fpage>197</fpage>
          -
          <lpage>205</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>F. G.</given-names>
            <surname>Cozman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. D.</given-names>
            <surname>Mauá</surname>
          </string-name>
          ,
          <article-title>The joy of probabilistic answer set programming: Semantics, complexity</article-title>
          , expressivity, inference,
          <source>International Journal of Approximate Reasoning</source>
          <volume>125</volume>
          (
          <year>2020</year>
          )
          <fpage>218</fpage>
          -
          <lpage>239</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>L.</given-names>
            <surname>De Raedt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kimmig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Toivonen</surname>
          </string-name>
          ,
          <article-title>Problog: A probabilistic prolog and its application in link discovery</article-title>
          .,
          <source>in: IJCAI</source>
          , volume
          <volume>7</volume>
          ,
          <string-name>
            <surname>Hyderabad</surname>
          </string-name>
          ,
          <year>2007</year>
          , pp.
          <fpage>2462</fpage>
          -
          <lpage>2467</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>G.</given-names>
            <surname>Brewka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Delgrande</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Romero</surname>
          </string-name>
          , T. Schaub,
          <article-title>asprin: Customizing answer set preferences without a headache</article-title>
          ,
          <source>in: Twenty-Ninth AAAI Conference on Artificial Intelligence</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>A.</given-names>
            <surname>Kimmig</surname>
          </string-name>
          , G. Van den Broeck, L. De Raedt,
          <article-title>An algebraic prolog for reasoning about possible worlds</article-title>
          ,
          <source>in: Twenty-Fifth AAAI Conference on Artificial Intelligence</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>T.</given-names>
            <surname>Eiter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kiesel</surname>
          </string-name>
          ,
          <article-title>Weighted LARS for quantitative stream reasoning</article-title>
          ,
          <source>in: Proc. ECAI'20</source>
          ,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>M.</given-names>
            <surname>Gebser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kaminski</surname>
          </string-name>
          , B. Kaufmann, T. Schaub, Clingo= ASP+ control:
          <source>Preliminary report, arXiv preprint arXiv:1405.3694</source>
          (
          <year>2014</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>J. K.</given-names>
            <surname>Fichte</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Hecher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Morak</surname>
          </string-name>
          , S. Woltran,
          <year>Dynasp2</year>
          .
          <article-title>5: Dynamic programming on tree decompositions in action</article-title>
          ,
          <source>in: International Symposium on Parameterized and Exact Computation (IPEC)</source>
          , volume
          <volume>89</volume>
          of LIPIcs,
          <source>Schloss Dagstuhl - Leibniz-Zentrum für Informatik</source>
          ,
          <year>2017</year>
          , pp.
          <volume>17</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>17</lpage>
          :
          <fpage>13</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>D. R. G.</given-names>
            <surname>KU Leuven</surname>
          </string-name>
          , Problog, https://github.com/ML-KULeuven/problog,
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>A.</given-names>
            <surname>Kimmig</surname>
          </string-name>
          , G. Van den Broeck, L. De Raedt,
          <article-title>Algebraic model counting</article-title>
          ,
          <source>Journal of Applied Logic</source>
          <volume>22</volume>
          (
          <year>2017</year>
          )
          <fpage>46</fpage>
          -
          <lpage>62</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>U.</given-names>
            <surname>Oztok</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Darwiche</surname>
          </string-name>
          ,
          <article-title>A top-down compiler for sentential decision diagrams</article-title>
          , in: TwentyFourth
          <source>International Joint Conference on Artificial Intelligence</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>T.</given-names>
            <surname>Sang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Beame</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H. A.</given-names>
            <surname>Kautz</surname>
          </string-name>
          ,
          <article-title>Performing bayesian inference by weighted model counting</article-title>
          ,
          <source>in: AAAI</source>
          , volume
          <volume>5</volume>
          ,
          <year>2005</year>
          , pp.
          <fpage>475</fpage>
          -
          <lpage>481</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>M.</given-names>
            <surname>Thurley</surname>
          </string-name>
          ,
          <article-title>sharpSAT-counting models with advanced component caching and implicit</article-title>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>