<!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 />
    <article-meta>
      <title-group>
        <article-title>An Analysis of Gibbs Sampling for Probabilistic Logic Programs</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Damiano Azzolini</string-name>
          <email>damiano.azzolini@unife.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Fabrizio Riguzzi</string-name>
          <email>fabrizio.riguzzi@unife.it</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Evelina Lamma</string-name>
          <email>evelina.lamma@unife.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dipartimento di Ingegneria</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Dipartimento di Matematica e Informatica</institution>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>University of Ferrara Via Saragat</institution>
          <addr-line>1, I-44122, Ferrara</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Markov Chain Monte Carlo (MCMC) is one of the most used families of algorithms based on sampling. They allow to sample from the posterior distribution when direct sampling from it is infeasible, due to the complexity of the distribution itself. Gibbs sampling is one of these algorithm that has been applied in many situations. In this paper we compare an implementation of Gibbs sampling for Probabilistic Logic Programs on several datasets, in order to better understand its performance. For all the experiments we compute the convergence time, execution time and population standard deviation of the samples.</p>
      </abstract>
      <kwd-group>
        <kwd>Gibbs Sampling</kwd>
        <kwd>Markov Chain Monte Carlo</kwd>
        <kwd>Probabilistic Logic Programming</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Probabilistic Logic Programming has been proved e ective in modelling several
real world situations [
        <xref ref-type="bibr" rid="ref10 ref3">3,10</xref>
        ], thanks to the possibility of representing probability
models with an expressive language such as logic programming.
      </p>
      <p>Inference in probabilistic logic programs is a computationally hard task.
There are two main types of inference. The rst type is exact inference, which is
usually based on the representation of the program in a compact form such as
decision diagrams, and it is aimed to compute exact answers. However, this type
of inference is not always easy to apply due to some limitations, among them,
the time required to get an answer. Approximate inference based on sampling
may overcome the exact inference limitations but with a cost: the accuracy of
the results depends on the number of samples. Moreover, di erent algorithms
may have di erent performance on the same dataset.</p>
      <p>Among the approximate inference algorithms, Markov Chain Monte Carlo
(MCMC) allows to e ciently sample from the posterior distribution. In this
? Copyright c 2020 for this paper by its authors. Use permitted under Creative
Commons License Attribution 4.0 International (CC BY 4.0).
paper, we focus on one of them, Gibbs sampling, and we test it on several
datasets in order to get a quantitative analysis of its performance.</p>
      <p>The paper is structured as follows: in Section 2 we introduce the basic
concepts of Probabilistic Logic Programming and in Section 3 we analyze
approximate inference and Gibbs sampling. Section 4 illustrates the results of the
experiments and Section 5 concludes the paper.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Probabilistic Logic Programming</title>
      <p>
        Here we consider Probabilistic Logic Programs (PLPs) based on the Distribution
Semantics [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] and in particular Logic Programs with Annotated Disjunctions
(LPADs) proposed in [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] All the languages based on this semantics have the
same expressive power but they di er in the representation of the choices for
di erent clauses.
      </p>
      <p>An LPAD clause has the form h1 : 1; : : : ; hn : n : b1; : : : ; bm where the
head is a set of logical atoms and the body is a set of logical literals. is are real
values in the interval [0; 1] that represent the probability that the i-th head is
chosen. Moreover, Pi i = 1. If this is not true, i.e. 0 &lt; Pi i &lt; 1 an extra null
atom is added to the head with probability 1 Pi i.</p>
      <p>A PLP program de nes a probability distribution over worlds. Recall that
a substitution is a function mapping variables to terms represented with =
fX1=t1; : : : ; Xn=tng, where Xk=tk means that all the occurrences of the variable
Xk are replaced by the term tk. A world can be obtained by choosing one atom
from the head of a grounding of a LPAD clause. The probability of a query is
then computed by considering a joint probability distribution between the query
and the worlds and by summing out the worlds.</p>
      <p>
        The previous de nition can only be applied for programs without functions
symbols, since their grounding is nite. In case of function symbols, the de nition
must be extended. See [
        <xref ref-type="bibr" rid="ref12 ref13">12,13</xref>
        ] for a complete treatment of the eld.
      </p>
      <p>Let us introduce an example of LPAD:
mistake(X) : 0:1 : good player(X):
mistake(X) : 0:05 : f ocused(X):
good player(kasparov):
f ocused(kasparov):
The previous program represents a situation where X makes a mistake with
probability 0.1 if X is a good player and nothing happens with probability 0.9.
Similarly, if X is f ocused during the match, he will make a mistake with
probability 0.05 and nothing happens with probability 0.95. Moreover, we know for
sure that kasparov is a good player and he is f ocused during a match. We may
be interested, for instance, in the probability that kasparov makes a mistake,
denoted with P (mistake(kasparov)). This can be computed as: 0:1 0:05 + 0:1
(1 0:05) + (1 0:1) 0:05 = 0:145.</p>
      <p>The probability of the previous example can be computed exactly since it has
a nite grounding. Consider now the following example, representing a player
that repeatedly toss a coin.</p>
      <p>heads(N ) : 0:5; tails(N ) : 0:5:
on(0; h) : heads(0):
on(0; t) : tails(0):
on(s(N ); h) : on(N; t); heads(s(N )):
on(s(N ); t) : on(N; t); tails(s(N )):
at least once head : on( ; h):
If we want to know the probability that the player will get at least once heads
(P (at least once head)), exact inference cannot be used since the grounding of
the program is in nite. However, using approximate methods based on sampling,
we can sample the query a certain number of times and return the number of
successes over the number of samples. As the number of samples goes to in nity,
the approximated probability reaches value 0.5 (since we need to compute the
sum of a geometric series).</p>
      <p>
        In this paper, we utilize the cplint framework [
        <xref ref-type="bibr" rid="ref1 ref14">1,14</xref>
        ] that also allows the
de nition of densities using the syntax A:Density :- Body. For example,
var(X) : gaussian(X; ; 2)
states that the variable X follows a Gaussian distribution with mean and
variance 2.
      </p>
      <p>
        The computation of the probability of a query, a task called inference, can
be performed both with exact and approximate methods. Exact inference from
discrete programs (programs without continuous random variables) is a
#Pcomplete task [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] so, as the size of the problem increases, the execution time
becomes intractable. Currently there are no solutions that perform exact inference
in hybrid domains (i.e., domains characterized by both discrete and continuous
random variables) with complex relationship among the variables in acceptable
time. For all the previous reasons, approximate inference methods may be more
suitable in several situations.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Approximate Inference</title>
      <p>Approximate inference methods may be implemented as a variation of exact
inference algorithms or can be based on sampling. Here we focus on the latter.
One of the most used approximate approach is given by Monte Carlo sampling: in
a nutshell, the algorithm samples a world by sampling every ground probabilistic
fact, checks if the query is true in the world and computes the probability of the
query as the fraction of samples where the query is true. This process is repeated
for a xed number of steps or until convergence (i.e., the di erence between two
consecutive samples is less than a certain threshold).</p>
      <p>
        The cplint framework [
        <xref ref-type="bibr" rid="ref1 ref14">1,14</xref>
        ] allows both exact and approximate inference.
Monte Carlo methods are implemented in the MCINTYRE [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] module, that
performs inference by querying a transformed program where multiple heads
generates multiple clauses with the same body. Here we focus on conditional
approximate inference, i.e., computing the probability of a query when an event
(o a set of events) has been observed.
      </p>
      <p>The simplest algorithm used to perform this task is rejection sampling: it
queries the evidence in a sample program and, if the query is successful, queries
the goal. The probability is then computed and the fraction of successes over
the number of samples. Despite its simplicity, rejection sampling may su er from
the fact that, if the evidence has low probability, a lot of samples are discarded
making the algorithm very slow to converge.</p>
      <p>An alternative is represented by the Markov Chain Monte Carlo (MCMC)
methods. The main idea behind MCMC is to construct a Markov Chain that
has as equilibrium distribution the desired distribution. Then, samples can be
drawn from this Markov Chain in order to get the probability of a query. As the
number of steps increase, the approximation gets closer to the real distribution.
In the limit, MCMC can represent the real posterior distribution. A common
operation is to discard the rst samples since they do not represent the real
distribution, with an operation called burn-in. There are several algorithms in
this family but here we focus on Gibbs sampling.</p>
      <p>
        Gibbs sampling [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] considers each variable (or group of variables, in this case
the algorithm goes under the name of Blocked Gibbs sampling) and then samples
from its conditional distribution (or joint conditional distribution) keeping all
the other variables xed. Several approaches to perform MCMC inference over
probabilistic logic programs have been presented in the literature, such as [
        <xref ref-type="bibr" rid="ref2 ref4">2,4</xref>
        ].
Here we consider the implementation proposed in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] which is based on a dynamic
list of samples that is iteratively modi ed using prolog assert and retract. For
clarity, the main part of the algorithm is repeated here in Alg. 1. Brie y, a
list of random choices is maintained in memory using Prolog asserts. Function
SampleCycle keeps querying the evidence until the value true is obtained. Then,
a number (block) of random choices are removed from the list using function
RemoveSamples . Finally, the query is called and, if it is successful, the counter
of the successes is incremented by one. The probability of the query is computed
as the number of successes over the number of samples.
      </p>
    </sec>
    <sec id="sec-4">
      <title>Experiments</title>
      <p>
        To deeply analyze the performance of Gibbs sampling for PLPs, we tested the
algorithm on eight di erent datasets. For each experiment, we plotted three
graphs: one to track the performance in terms of number of samples required to
convergence, one to track the execution time and one to track the population
standard deviation of the samples. For all the experiments the code is available
online at the indicated URLs. All the experiments were conducted on a cluster3
with Intel R Xeon R E5-2630v3 running at 2.40 GHz. The results are averages of
10 runs. Execution times are computed using the SWI-Prolog built-in predicate
statistics/2 with the keyword walltime. The probability of the evidence is
computed using the cplint predicate mc sample/3 with 106 samples. The
predicate samples the query a certain number of times and returns the probability
of success. The number of discarded samples can be set with the option mix/1
while the block size with block/1. Here we set mix to 100 and block variable
between 1 and 5. The experiments are described below:
{ Arithm4: the program represents a random arithmetic function. The goal
is to compute the conditional probability of the value of the function given
that a couple of input output was observed. A characteristic of this program
is that it has an in nite number of explanations. The probability of evidence
is 0.05. Fig. 1 shows that with a relatively small number of samples, the
probability computed with Gibbs sampling with block set to 1 oscillates
between 0.1 and 0.25, as also con rmed by the large variation in the standard
deviation (Fig. 9 Left). For the other values, the oscillation is smaller but
still present.
{ Diabetes5: the program models the probability of insurgence of diabetes
given that some genetic factors are observed. This is an example of
probabilistic constraint logic program [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], i.e., a logic program that also contains
constraints. In detail, the diabetes predisposition of a person in uences the
probability of diabetes mellitus type 2. The level of the glucose is modelled
with two normal distribution with di erent mean and variance, related to
the fact that a person has diabetes or not. The level of hemoglobin linked to
sugar depends linearly from the level of glucose plus some noise. We observe
that the hemoglobin is greater than a certain threshold (evidence probability
0.1417) and we want to know the probability of diabetes type 2 a priori and
given the evidence. Fig. 2 shows that smaller sizes of blocks drive to lower
accuracy in the probability computation and greater standard deviation (Fig. 9
Right). Block set to 5 makes the variation of the standard deviation almost
negligible but at the cost of larger execution time. It is interesting to observe
that block set to 3 and 5 seems to underestimate the probability.
3 http://www:fe:infn:it/coka/doku:php?id=start
      </p>
      <sec id="sec-4-1">
        <title>4 http://cplint:eu/e/arithm:pl</title>
      </sec>
      <sec id="sec-4-2">
        <title>5 http://cplint:eu/e/diabetes:swinb</title>
        <p>
          { Graph6: in the following experiment we want to test the accuracy of Gibbs
sampling on a Barabasi Albert preferential attachment model. Given a graph
with initially connected nodes, new nodes are added to the graph. The
probability that these new nodes are connected to other nodes is
proportional to the number of edges that the already existent nodes have. We
generated the graph with the python library networkx7 using the function
barabasi albert graph(40,10). For all the edges we set a probability of
0.1. We compute the probability that two nodes are connected given that a
portion of the path has already been observed (probability of the evidence
0.42). The probability of this query can also be computed using exact
inference algorithms. However, when the size of the graph increases, exact
inference may be too expensive in terms of execution time. Fig. 3 shows
that, as for the previous experiments, smaller values of blocks leads to very
di erent probability values. In particular, with block set to 1, there is a gap
of 0.2 between some values. Execution times for all the ve block settings
are equivalent. Standard deviation of the samples (Fig. 10 Left) decreases
as the block number increases. With block set to 3, 4 and 5, the computed
values are almost the same.
{ Hidden Markov Model8 (HMM). The program represents a model of DNA
sequences using an HMM [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. In detail, the model has three states (q1, q2
and end) and four output symbols, (a, c, g, and t), that represents the four
nucleotides. We want to compute the probability of the sequence [a,c] given
that the letter a has been emitted in state q1. The evidence has probability
0.25. Fig. 4 shows that, even with a relatively small number of samples,
all the ve block values performs well and the probability presents small
uctuations. However, when the value of block is set to one, the algorithm
seems to take more time to stabilize, as described also by the standard
deviation plot (Fig. 10 Right). It is interesting to note that the execution
time for blocked Gibbs with value of block set to 4 and 5 are very similar.
{ Latent Dirichlet Allocation (LDA)9 for natural language processing. LDA is
commonly used in text analysis with the goal to identify the topic of a text
by analyzing the words in it. In the following example, we consider the rst
10 words of the document and we set the number of topics to 2. We compute
the probability that the document associates the rst topic to the rst word,
observing the type of the rst word (the probability of the evidence is 0.10).
This is a hybrid program, since it contains both discrete and continuous
variables. Fig. 5 shows that the values of probability for all ve settings
of block do not stabilize even after 104 samples, as also illustrated by the
standard deviation plot (Fig. 11 Left).
{ NBalls10. This program models an urn that contains n balls, where n is a
random variable. Each ball is characterized by color, material and size, with
        </p>
      </sec>
      <sec id="sec-4-3">
        <title>6 http://cplint:eu/e/barabasiGraph:pl</title>
      </sec>
      <sec id="sec-4-4">
        <title>7 https://networkx:github:io/documentation/networkx-1:9:1/index:html</title>
      </sec>
      <sec id="sec-4-5">
        <title>8 http://cplint:eu/e/hmm:pl</title>
      </sec>
      <sec id="sec-4-6">
        <title>9 http://cplint:eu/e/lda:swinb 10 http://cplint:eu/e/nballs:pl</title>
        <p>
          known distributions. We want to know the probability that the rst drawn
ball is made of wood given that its color is black. The probability of the
evidence is 0.38. Fig. 6 shows that the probability completely stabilizes after
104 samples only for large values of block. Block set to 1 and 3 seems to
be the values with more instability. However, the standard deviation of the
samples decreases for all the block values, as the number of samples increase
(Fig.11 Right). Execution times are comparable.
{ Pre x parser11. This program models a pre x parser for probabilistic context
free grammars [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]. The program computes the probability that a certain
string is a pre x of a string generated by the grammar. In the code we
consider a grammar composed by two words a and b and we observe that the
rst emitted letter is a (probability 0.5). We want to compute the probability
that the emitted string is [a,b,a]. The conditional probability has a small
value (Fig. 7, Fig.12 Left) but all the ve values of block seems to perform
well. However, the execution time is the greatest among all the experiments.
{ Stochastic Logic Program12: the program de nes a probability distribution
over sentences. A feature of this program is that there is no stochastic
memoization, i.e., repeated choices are independent. Moreover, rules with the same
head have probabilities that sum up to one, and are mutually exclusive. In
the experiment, we want to know the probability that three particular word
are sampled given that the rst one has been observed (probability 0.006).
Fig. 8 shows that after a few thousands samples the probability starts to
stabilize for all the ve block values. As expected, the standard deviation
reduces as the number of samples increases (Fig. 12 Right). The execution
time for block set to 3 is, by far, the greatest of all ve.
0:3
y
t
il
iab0:2
b
o
r
P
0:1
11 http://cplint:eu/e/pre x:pl
12 http://cplint:eu/e/slp pdcg:pl
0:45
y
t
lii
ab0:40
b
o
r
P
0:35
0:60
0:55
y
t
ili 0:50
b
a
b
o
r
P0:45
0:40
1:6
1:5
y
t
iil
ab1:4
b
o
r
P
1:3
1:2
10 2
Fig. 4. Results for the HMM experiment.
0:2
0:4
        </p>
        <p>0:8
0:6</p>
        <sec id="sec-4-6-1">
          <title>Samples</title>
          <p>1
104
0:6</p>
        </sec>
        <sec id="sec-4-6-2">
          <title>Samples</title>
          <p>0:8
0:2
0:4
0:8
0:6</p>
        </sec>
        <sec id="sec-4-6-3">
          <title>Samples</title>
          <p>1
104
0:6</p>
        </sec>
        <sec id="sec-4-6-4">
          <title>Samples</title>
          <p>1
104
Fig. 7. Results for pre x parser experiment.
105
104
6
)
s
(m4
e
m
i
T
n
o
i
tu 2
c
e
x
E
0
4
)
s
( 3
m
e
m
i
T
n 2
o
it
u
c
e
x 1
E
0
2:00
)
s
(m1:50
e
m
i
T
n 1:00
o
it
u
c
e
x 0:50
E
0:00
0:2
0:4
0:6</p>
          <p>0:8</p>
        </sec>
        <sec id="sec-4-6-5">
          <title>Samples</title>
          <p>1
104
0:6
Samples
1
104
0:2
0:4
0:8
0:6</p>
        </sec>
        <sec id="sec-4-6-6">
          <title>Samples</title>
          <p>1
104
0:6
Samples
1
104
0:2
0:4
0:6
0:8</p>
        </sec>
        <sec id="sec-4-6-7">
          <title>Samples</title>
          <p>1
104
Fig. 10. Standard Deviation for graph (left) and HMM (right) experiments.
106</p>
          <p>0:6
Samples</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Conclusions</title>
      <p>
        In this paper we tested Gibbs sampling for probabilistic logic programs on eight
di erent datasets. For each dataset we tracked execution time, computed
probability and standard deviation of the samples. We used the cplint framework
and the code for all the experiments can be analyzed trough a web interface
accessible at cplint:eu. Empirical results shows that, when the value of block
increases, the probability and the standard deviation seems to stabilize with a
smaller number of samples. However, the execution time increases as well with
an increment of the block value. As a future work, we plan to apply approximate
reasoning also to abduction [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Alberti</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cota</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Riguzzi</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zese</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          :
          <article-title>Probabilistic logical inference on the web</article-title>
          . In: Adorni,
          <string-name>
            <given-names>G.</given-names>
            ,
            <surname>Cagnoni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Gori</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Maratea</surname>
          </string-name>
          , M. (eds.)
          <source>AI*IA 2016. LNCS</source>
          , vol.
          <volume>10037</volume>
          , pp.
          <volume>351</volume>
          {
          <fpage>363</fpage>
          . Springer International Publishing (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Angelopoulos</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cussens</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>Distributional logic programming for bayesian knowledge representation</article-title>
          .
          <source>Int. J. Approx. Reasoning 80(C)</source>
          ,
          <volume>52</volume>
          {66 (Jan
          <year>2017</year>
          ), https://doi:org/10:1016/j:ijar:
          <year>2016</year>
          :
          <volume>08</volume>
          :
          <fpage>004</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Azzolini</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Riguzzi</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lamma</surname>
          </string-name>
          , E.:
          <article-title>Studying transaction fees in the bitcoin blockchain with probabilistic logic programming</article-title>
          .
          <source>Information</source>
          <volume>10</volume>
          (
          <issue>11</issue>
          ),
          <volume>335</volume>
          (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Azzolini</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Riguzzi</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lamma</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Masotti</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>A comparison of MCMC sampling for probabilistic logic programming</article-title>
          . In: Alviano,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Greco</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            ,
            <surname>Scarcello</surname>
          </string-name>
          ,
          <string-name>
            <surname>F</surname>
          </string-name>
          . (eds.)
          <source>Proceedings of the 18th Conference of the Italian Association for Articial Intelligence (AI*IA2019)</source>
          ,
          <source>Rende, Italy 19-22 November 2019. Lecture Notes in Computer Science</source>
          , Springer, Heidelberg, Germany (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Christiansen</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gallagher</surname>
            ,
            <given-names>J.P.</given-names>
          </string-name>
          :
          <article-title>Non-discriminating arguments and their uses</article-title>
          .
          <source>In: Logic Programming</source>
          , 25th International Conference, ICLP 2009, Pasadena, CA, USA, July
          <volume>14</volume>
          -
          <issue>17</issue>
          ,
          <year>2009</year>
          .
          <source>Proceedings. Lecture Notes in Computer Science</source>
          , vol.
          <volume>5649</volume>
          , pp.
          <volume>55</volume>
          {
          <fpage>69</fpage>
          . Springer (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Gavanelli</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lamma</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Riguzzi</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bellodi</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zese</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cota</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          :
          <article-title>An abductive framework for datalog ontologies</article-title>
          . In: Vos,
          <string-name>
            <given-names>M.D.</given-names>
            ,
            <surname>Eiter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            ,
            <surname>Lierler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            ,
            <surname>Toni</surname>
          </string-name>
          ,
          <string-name>
            <surname>F</surname>
          </string-name>
          . (eds.)
          <source>Technical Communications of the 31st International Conference on Logic Programming (ICLP</source>
          <year>2015</year>
          ).
          <article-title>CEUR-WS</article-title>
          , vol.
          <volume>1433</volume>
          .
          <string-name>
            <surname>CEUR-WS.org</surname>
          </string-name>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Geman</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Geman</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Stochastic relaxation, gibbs distributions, and the bayesian restoration of images</article-title>
          .
          <source>In: Readings in computer vision</source>
          , pp.
          <volume>564</volume>
          {
          <fpage>584</fpage>
          .
          <string-name>
            <surname>Elsevier</surname>
          </string-name>
          (
          <year>1987</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Koller</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Friedman</surname>
          </string-name>
          , N.:
          <article-title>Probabilistic Graphical Models: Principles and Techniques. Adaptive computation and machine learning</article-title>
          , MIT Press, Cambridge, MA (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Michels</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hommersom</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lucas</surname>
            ,
            <given-names>P.J.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Velikova</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>A new probabilistic constraint logic programming language based on a generalised distribution semantics</article-title>
          .
          <source>Artif. Intell</source>
          .
          <volume>228</volume>
          ,
          <issue>1</issue>
          {
          <fpage>44</fpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>Nguembang</given-names>
            <surname>Fadja</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Riguzzi</surname>
          </string-name>
          ,
          <string-name>
            <surname>F.</surname>
          </string-name>
          :
          <article-title>Probabilistic logic programming in action</article-title>
          . In: Holzinger,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Goebel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Ferri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Palade</surname>
          </string-name>
          , V. (eds.)
          <source>Towards Integrative Machine Learning and Knowledge Extraction, LNCS</source>
          , vol.
          <volume>10344</volume>
          . Springer (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Riguzzi</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <string-name>
            <surname>MCINTYRE</surname>
          </string-name>
          :
          <article-title>A Monte Carlo system for probabilistic logic programming</article-title>
          .
          <source>Fund. Inform</source>
          .
          <volume>124</volume>
          (
          <issue>4</issue>
          ),
          <volume>521</volume>
          {
          <fpage>541</fpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Riguzzi</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>The distribution semantics for normal programs with function symbols</article-title>
          .
          <source>Int. J. Approx. Reason</source>
          .
          <volume>77</volume>
          ,
          <issue>1</issue>
          {
          <fpage>19</fpage>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Riguzzi</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Foundations of Probabilistic Logic Programming</article-title>
          . River Publishers, Gistrup,Denmark (
          <year>2018</year>
          ), http://www:riverpublishers:com/ book details:
          <source>php?book id=660</source>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Riguzzi</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bellodi</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lamma</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zese</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cota</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          :
          <article-title>Probabilistic logic programming on the web</article-title>
          .
          <source>Softw</source>
          .-Pract. Exper.
          <volume>46</volume>
          (
          <issue>10</issue>
          ),
          <volume>1381</volume>
          {
          <volume>1396</volume>
          (10
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Sato</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>A statistical learning method for logic programs with distribution semantics</article-title>
          . In: Sterling,
          <string-name>
            <surname>L. (ed.) ICLP</surname>
          </string-name>
          <year>1995</year>
          . pp.
          <volume>715</volume>
          {
          <fpage>729</fpage>
          . MIT Press (
          <year>1995</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Sato</surname>
          </string-name>
          , T., Meyer, P.:
          <article-title>Tabling for in nite probability computation</article-title>
          . In: Dovier,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Costa</surname>
          </string-name>
          , V.S. (eds.)
          <source>ICLP TC</source>
          <year>2012</year>
          .
          <article-title>LIPIcs</article-title>
          , vol.
          <volume>17</volume>
          , pp.
          <volume>348</volume>
          {
          <fpage>358</fpage>
          .
          <string-name>
            <surname>Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik</surname>
          </string-name>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Vennekens</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Verbaeten</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bruynooghe</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Logic programs with annotated disjunctions</article-title>
          . In: Demoen,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Lifschitz</surname>
          </string-name>
          , V. (eds.)
          <article-title>ICLP 2004</article-title>
          .
          <article-title>LNCS</article-title>
          , vol.
          <volume>3131</volume>
          , pp.
          <volume>431</volume>
          {
          <fpage>445</fpage>
          . Springer (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>