=Paper=
{{Paper
|id=Vol-451/paper-11
|storemode=property
|title=The SLGAD Procedure for Inference on Logic Programs with Annotated Disjunctions
|pdfUrl=https://ceur-ws.org/Vol-451/paper15riguzzi.pdf
|volume=Vol-451
|dblpUrl=https://dblp.org/rec/conf/rcra/Riguzzi08
}}
==The SLGAD Procedure for Inference on Logic Programs with Annotated Disjunctions==
The SLGAD Procedure for Inference on Logic
Programs with Annotated Disjunctions
Fabrizio Riguzzi
ENDIF, Università di Ferrara, Via Saragat, 1, 44100 Ferrara, Italy.
fabrizio.riguzzi@unife.it
No Institute Given
Abstract
Logic Programs with Annotated Disjunctions (LPADs) allow to ex-
press probabilistic information in logic programming. The semantics
of an LPAD is given in terms of well founded models of the normal
logic programs obtained by selecting one disjunct from each ground
LPAD clause. The paper presents SLGAD resolution that computes
the (conditional) probability of a ground query from an LPAD and
is based on SLG resolution for normal logic programs. The perfor-
mances of SLGAD are evaluated on classical benchmarks for normal
logic programs under the well founded semantics, namely the stalemate
game and the ancestor relation. SLGAD is compared with Cilog2 and
SLDNFAD, an algorithm based on SLDNF, on the programs that are
modularly acyclic. The results show that SLGAD deals correctly with
cyclic programs and, even if it is more expensive than SLDNFAD on
problems where SLDNFAD succeeds, is faster than Cilog2 when the
query is true in an exponential number of instances.
Topics: Probabilistic Logic Programming, Well Founded Semantics,
Logic Programs with Annotated Disjunctions, SLG resolution.
1 Introduction
The combination of logic and probability is a long standing problem in
philosophy and artificial intelligence, dating back to [2]. Recently, the work
on this topic has thrived leading to the proposal of novel languages that
combine relational and statistical aspects, such as Independent Choice Logic,
ProbLog, Stochastic Logic Programs, Bayesian Logic Programs, PRISM and
CLP(BN ). Each of these languages has a different semantics that makes it
suitable for different domains: the identification of the best setting for each
language is currently under study.
When we are reasoning about actions and effects and we have causal
independence among different causes for the same effect, Logic Programs
with Annotated Disjunctions (LPADs) [15] seem particularly suitable. They
extend logic programs by allowing program clauses to be disjunctive and
by annotating each atom in the head with a probability. A clause can be
causally interpreted in the following way: the truth of the body causes the
Proceedings of the 15th International RCRA workshop (RCRA 2008):
Experimental Evaluation of Algorithms for Solving Problems with Combinatorial Explosion
Udine, Italy, 12–13 December 2008
truth of one of the atoms in the head non-deterministically chosen on the
basis of the annotations. The semantics of LPADs is given in terms of the
well founded model [13] of the normal logic programs obtained by selecting
one head for each disjunctive clause.
In order to compute the (conditional) probability of queries, various
options are possible. [14] showed that ground acyclic LPADs can be con-
verted to Bayesian networks. However, the conversion requires the complete
grounding of the LPAD, thus making the technique impractical.
[14] also showed that acyclic LPADs can be converted to Independent
Choice Logic (ICL) programs. Thus inference can be performed by using
the Cilog2 system [9]. An algorithm for performing inference directly with
LPADs was proposed in [10]. The algorithm, that will be called SLDNFAD
in the following, is an extension of SLDNF derivation and uses Binary Deci-
sion Diagrams, similarly to what is presented in [8] for the ProbLog language.
Both Cilog2 and SLDNFAD are complete and correct for programs for which
the Clark’s completion semantics [7] and the well founded semantics coin-
cide, as for acyclic [1] and modularly acyclic programs [12].
In this paper we present the SLGAD top-down procedure for performing
inference with possibly (modularly) cyclic LPADs. SLGAD is based on the
SLG procedure [4] for normal logic programs and extends it in a minimal
way.
SLGAD is evaluated on classical benchmarks for well founded semantics
inference algorithms, namely the stalemate game and the ancestor relation.
In both cases, various extensional databases are considered, encoding linear,
cyclic or tree-shaped relations. SLGAD is compared with Cilog2 and SLD-
NFAD on the modularly acyclic programs. The results show that SLGAD is
able to deal with cycles and, while being more expensive than SLDNFAD on
problems where SLDNFAD succeeds, is faster than Cilog2 when the query
is true in an exponential number of instances.
The paper is organized as follows. In Section 2 we present the syntax
and semantics of LPADs together with some properties of normal programs
and of LPADs. Section 3 provides the definition of the SLGAD procedure,
Section 4 presents the experiments and, finally, Section 5 concludes and
presents directions for future work.
2 Preliminaries
A Logic Program with Annotated Disjunctions [15] T consists of a finite set
of formulas of the form
(H1 : α1 ) ∨ (H2 : α2 ) ∨ . . . ∨ (Hn : αn ) : −B1 , B2 , . . . Bm
called annotated disjunctive clauses. In such a clause the Hi are logical
atoms, the Bi are logical literals and the αi are real numbers in the interval
2
!
[0, 1] such that ni=1 αi ! 1. The head of LPAD clauses implicitly contains
an extra atom null that!does not appear in the body of any clause and
whose annotation is 1 − ni=1 αi .
the form above, we define head(C) as {(Hi : αi )|1 !
For a clause C of !
i ! n} ∪ {(null : 1 − ni=1 αi )}, body(C) as {Bi |1 ! i ! m}, Hi (C) as Hi
and αi (C) as αi . For example, the formula
C = itching(X, strong) : 0.3 ∨ itching(X, moderate) : 0.5 : −measles(X).
is an annotated disjunctive clause in which
head(C) = {(itching(X, strong) : 0.3), (itching(X, moderate) : 0.5),
(null, 0.2)},
body(C) = {measles(X)}
Moreover, H1 (C) = itching(X, strong), α1 (C) = 0.3 and so on.
Let HB (T ) be the Herbrand base of T and let IT be the set of all the
possible Herbrand interpretations of P (i.e., subsets of HB (T )). If T contains
function symbols, then HB (T ) is infinite, otherwise it is finite.
In order to define the semantics of a non-ground LPAD T , we must
generate the grounding T ! of T . Each ground annotated disjunctive clause
represents a probabilistic choice among the ground non-disjunctive clauses
obtained by selecting only one head. The intuitive interpretation of a ground
clause is that the body represents an event that, when it happens (i.e. it
becomes true), causes an atom in the head (an effect) to happen (i.e. to
become true). If the atom selected is null, this is equivalent to having no
effect.
The semantics of an LPAD, given in [15], requires the grounding to be
finite, so the program must not contain function symbols.
By choosing a head atom for each ground clause of an LPAD we get a
normal logic program called an instance of the LPAD. A probability dis-
tribution is defined over the space of instances by assuming independence
among the choices made for each clause.
A choice κ is a set of triples (C, θ, i) where C ∈ T , θ is a substitution
that grounds C and i ∈ {1, . . . , |head(C)|}. (C, θ, i) means that, for ground
clause Cθ, the head Hi θ was chosen. A choice κ is consistent if (C, θ, i) ∈
κ, (C, θ, j) ∈ κ ⇒ i = j, i.e. only one head is selected for a ground clause.
For different groundings of the same clause, different heads can be chosen: it
is possible for a consistent choice κ to be such that (C, θ, i) ∈ κ, (C, θ! , j) ∈ κ
with θ &= θ! and i &= j¿
A consistent choice is a selection σ if for each clause Cθ in the grounding
of T there is a triple (C, θ, i) in σ. We denote the set of all selections of a
program T by ST . Note that, since the program T does not contain function
symbols, the grounding of T is finite and so is σ.
3
A consistent choice κ identifies a normal logic program Tκ = {(Hi (C) :
−body(C))θ|(C, θ, i) ∈ κ} that is called a sub-instance of T . If σ is a selec-
tion, Tσ is called an instance. For a consistent choice κ, let U (κ) be the set
of instances that are supersets of Tκ , i.e., the set of instances Tσ with σ a
selection such that σ ⊇ κ.
We now assign a probability to a consistent choice κ. The probability Pκ
of a consistent choice κ is"the product of the probabilities of the individual
choices made, i.e. Pκ = (C,θ,i)∈κ αi (C). The probability of instance Tσ is
Pσ . Note that if T contains function symbols, σ would be infinite and so
Pσ would always be 0, being an infinite product of numbers all smaller than
one.
The semantics of the instances of an LPAD is given by the well founded
semantics (WFS) [13]. Given a normal program T , we call W F M (T ) its well
founded partial model. For each instance Tσ , we require that the W F M (Tσ )
is two-valued, since we want to model uncertainty solely by means of disjunc-
tions. An LPAD T is called sound iff, for each selection σ in ST , W F M (Tσ )
is two-valued. In the following we consider only sound programs.
The probability of an interpretation I ∈ IT according to T is given by
the sum of the probabilities of the instances that have I as the well founded
model, i.e. #
PT (I) = Pσ .
σ∈ST ,W F M (Tσ )=I
The probability of a formula χ according to T is given by the sum of the
probabilities of interpretations in which the formula is true, i.e.
#
PT (χ) = P (I).
I∈IT ,I|=χ
Equivalently, the probability of a formula χ is given by the sum of the
probabilities of the instances in which the formula is true according to the
WFS: #
PT (χ) = Pσ
Tσ |=W F S χ
Note that this semantics is well defined because, since the instances are finite,
the probabilities Pσ are not all 0. A semantics for LPADs with function
symbols must take a different approach and is subject of future work.
Example 1. Consider the dependency of a person’s itching from him having
allergy or measles:
C1 = itching(X, strong) : 0.3 ∨ itching(X, moderate) : 0.5 : −measles(X).
C2 = itching(X, strong) : 0.2 ∨ itching(X, moderate) : 0.6 : −allergy(X).
C3 = allergy(david).
C4 = measles(david).
This program models the fact that itching can be caused by allergy or measles.
4
Measles causes strong itching with probability 0.3, moderate itching with
probability 0.5 and no itching with probability 1 − 0.3 − 0.5 = 0.2; allergy
causes strong itching with probability 0.2, moderate itching with probability
0.6 and no itching with probability 1 − 0.2 − 0.6 = 0.2.
For example, itching(david, strong) is true in 5 of the 9 instances of the
program and its probability is
0.3 · 0.2 + 0.3 · 0.6 + 0.3 · 0.2 + 0.5 · 0.2 + 0.2 · 0.2 = 0.44
Example 2. Consider a probabilistic game in which a position is winning
with a certain probability if there is a move to another position that is losing
for the opponent. This game can be represented by
win(X, white) : 0.8 : − move(X, Y ), ¬win(Y, black).
win(X, black) : 0.8 : − move(X, Y ), ¬win(Y, white).
plus facts for the move predicate.
If move represents an acyclic relation1 , then the program is sound. Oth-
erwise, there are instances that do not have a total well founded model,
namely those where the win head is selected for all the ground clauses whose
instance of the move(X, Y ) atom is in the cycle.
An LPAD is (modularly) acyclic [12] if all of its instances are (modularly)
acyclic.
An LPAD is range restricted if all the variables appearing in the head of
clauses also appear in the body.
3 SLGAD Resolution Algorithm
In this section we present Linear resolution with Selection function for Gen-
eral logic programs with Annotated Disjunctions (SLGAD) that extends SLG
resolution [6, 4] for dealing with LPADs.
In the following we give a brief sketch of the implementation of SLG
resolution as presented in [4]. SLG builds a search forest for a subgoal (i.e.
a (partially instantiated) atom) by performing depth first search. Besides a
stack S of subgoals, SLG keeps a table T in which it stores, for each subgoal
A considered in the computation, the set of answers (i.e. instantiations of
the subgoal) already computed Anss, the set of resolvents that wait for new
answers for A, separated into a set P oss that has A selected and a set N egs
that has ¬A selected, and a boolean flag Comp that indicates whether A
has been completely evaluated. After every resolution step for a subgoal A,
1
A binary relation R is acyclic if the graph containing an edge from node a to node b
if R(a, b) holds is acyclic
5
SLG tests whether all possible answers for A have been computed: if so, it
sets Comp to true. When it encounters a case of a possible loop through
negation, it “delays” the selected literal ¬A by inserting it into a dedicated
data structure of the resolvent. Delayed literals are then removed if they
turn out to be true.
SLG uses X-clauses to represent resolvents with delayed literals.
Definition 3.1 (X-Clause). An X-clause X is a clause of the form A: −D|B
where A is an atom, D is a sequence of ground negative literals and (possibly
unground) atoms and B is a sequence of literals. Literals in D are called
delayed literals. If B is empty, an X-clause is called an X-answer clause.
An ordinary program clause is seen as a X-clause with an empty set of
delayed literals.
SLG is based on the operation of SLG resolution and SLG factoring on
X-clauses. In particular, SLG resolution is performed between an X-clause
A : −|A and a program clause or between an X-clause and an X-answer.
In SLGAD, X-clauses are replaced by XD-clauses.
Definition 3.2 (XD-Clause). An XD-clause G is a quadruple (X, C, θ, i)
where X is an X-clause, C is a clause of T , θ is a substitution for (some
of ) the variables of C and i ∈ {1, . . . , |head(C)|}. Let X be A : −D|B: if B
is empty, the XD-clause is called an XD-answer clause.
In SLGAD, SLG resolution between an X-clause A : −|A and a program
clause is replaced by SLGAD goal resolution and SLG resolution between
an X-clause and an X-answer is replaced by SLGAD answer resolution.
Definition 3.3 (SLGAD Goal Resolution). Let A be a subgoal and let C
be a clause of T such that A is unifiable with an atom Hi in the head of C.
Let C ! be a variant of C with variables renamed so that A and C ! have no
variables in common. We call the XD-clause
((A : −|body(C ! ))θ, C ! , θ, i)
the SLGAD goal resolvent of A with C on head Hi , where θ is the most
general unifier of A and Hi! . C ! is kept in the resolvent because we must be
able to recover the ground program clause to which the XD-clause refers.
Definition 3.4 (SLGAD Answer Resolution). Let G be an XD-clause
(A : −D|L1 , . . . , Ln , C, θ, i)
where n > 0 and Lj be the selected atom. Let F be an XD-answer clause with
an empty set of delayed literals, and let F ! , of the form (A! : −|, E ! , θ! , i! ),
be a variant of F with variables renamed so that G and F ! have no variables
in common. If Lj and A! are unifiable then we call the XD-clause
((A : −D|L1 , . . . , Lj−1 , Lj+1 , . . . , Ln )δ, C, θδ, i)
6
Figure 1: Procedure SLGAD
1 function SLGAD(A,T )
2 begin
3 Initialize Count, T , S, DFN, PosMin and NegMin as in SLG;
4 κ := ∅;
5 let ψ be the set of all the values for κ after an execution of
6 SLG SUBGOAL(A,PosMin,NegMin) such that T contains
7 A as !an answer;
8 return κ∈ψ Pκ
9 end
the SLGAD answer resolvent of G with F , where δ is the most general unifier
of A! and Lj .
SLG factoring is replaced by SLGAD factoring.
Definition 3.5 (SLGAD Factoring). Let G be an XD-clause
(A : −D|L1 , . . . , Ln , C, θ, i)
where n > 0 and Lj be the selected atom. Let F be an XD-answer clause,
and let F ! , of the form (A! : −D! |, E ! , θ! , i! ), be a variant of F with variables
renamed so that G and F ! have no variable in common. If D! is not empty
and Lj and A! are unifiable then the SLGAD factor of G with F is
((A : −D, Lj |L1 , . . . , Lj−1 , Lj+1 , . . . , Ln )δ, C, θδ, i)
where δ is the most general unifier of A! and Lj .
SLGAD goal resolution, SLGAD answer resolution and SLGAD factoring
are equivalent to their SLG counterparts on the underlying X-clauses.
The SLGAD algorithm is defined with a procedural pseudo-code that
contains a non-deterministic choice point. The main function of the algo-
rithm is shown in Figure 1. It takes as input a ground atom A and a program
T and it keeps four global variables. The first three are shared with SLG:
the table T , the stack of subgoals S and the counter Count. The fourth
variable is specific of SLGAD and is used to record all the clauses used in
the SLGAD derivation together with the heads selected: it is a choice κ,
i.e., a set of triples (C, θ, i) where C is a clause of T , θ is a substitution
that grounds C and i is the index of an atom in the head of C. We assume
that the global variables are copied in different branches of the search tree
generated by the choice points, so that a modification in a branch does not
influence the other branches. The search tree is explored depth first.
The SLGAD algorithm modifies in a minimal way SLG: it is composed of
the same procedures as SLG [4], plus procedure ADD CLAUSE. We refer to
7
Figure 2: Procedures SLG SUBGOAL
1 procedure SLG SUBGOAL(A,PosMin,NegMin)
2 begin
3 for each SLGAD goal resolvent G of A with some clause C ∈ T
4 on the head Hi do begin
5 SLG NEWCLAUSE(A, G,PosMin,NegMin);
6 end;
7 SLG COMPLETE(A,PosMin,NegMin,κ);
8 end;
[4] for a detailed description of the individual SLG procedures, here we report
only the differences, that are indicated in italics in the figures. Procedure
SLG SUBGOAL (see Figure 2) differs from that of SLG because in line 3
each SLGAD goal resolvent is considered rather than each SLG resolvent.
Procedure SLG NEWCLAUSE performs resolution on the selected positive
or negative literal in the body of the clause or adds an answer if the body is
empty. SLG NEWCLAUSE is the same as in SLG with X-clauses replaced
by XD-clauses. The main difference is in procedure SLG ANSWER (see
Figure 3) where a call to ADD CLAUSE is added in line 4.
If the answer G is not subsumed by an answer already present in the
table, ADD CLAUSE is called (see Figure 4) that modifies κ and returns a
Boolean value to SLG ANSWER in the variable Derivable. If G = (X, C, θ, i)2 ,
ADD CLAUSE may add a new triple (C, θ, j) to the current κ set. If the pro-
gram is range restricted, Cθ is ground. ADD CLAUSE first checks whether
the clause Cθ already appears in the current choice with a head index differ-
ent from i: if so, it fails the derivation. Otherwise, it non-deterministically
selects a head index j from {1, . . . , |head(C)|}: if j = i this means that
the subgoal in the head is derivable in the sub-instance represented by κ,
so it sets Derivable to true. If j &= i, then Derivable is set to false. In
backtracking, all elements of {1, . . . , |head(C)|} are selected.
Since every clause relevant to a subgoal is eventually reduced to an XD-
-answer, it is sufficient to update κ only in SLG ANSWER by means of
ADD CLAUSE. The cases where j &= i are necessary because we must con-
sider also the possibility that the subgoal A is derived not using head i of
clause Cθ. It may be that A could be derived in a possibility j &= i us-
ing other clauses and/or that the possibility j is used to derive a subgoal
necessary for this second derivation branch: if we do not consider these
possibilities we could miss some explanations for A.
2
C is the clause of the program from which the XD-clause G was obtained by SL-
GAD goal resolution, i is the index of the head used in the goal resolution and θ is the
composition of the substitutions of all the derivations and factorings performed on G
8
Figure 3: Procedure SLG ANSWER
1 procedure SLG ANSWER(A, G,PosMin,NegMin)
2 begin
3 if G is not subsumed by any answer in Anss(A) in T then
3 begin
4 ADD CLAUSE(G,Derivable);
5 if Derivable then begin
6 insert G into Anss(A);
7 if G has no delayed literals then begin;
8 reset N egs(A) to empty;
9 let L be the list of all pairs (B, H ! ), where
10 (B, H) ∈ P oss(A) and
11 H is the SLGAD answer resolvent of H with G;
12 for each (B, H ! ) in L do begin
13 SLG NEWCLAUSE(B,H’,PosMin,NegMin);
14 end;
15 end else begin /* G has a non empty delay */
16 if no other answer in Anss(A) has the same head
17 as G does then
18 begin
19 let L be the list of all pairs (B, H ! ), where
20 (B, H) ∈ P oss(A)
21 and H is the SLGAD factor of H with G;
22 for each (B, H ! ) in L do begin
23 SLG NEWCLAUSE(B, H ! ,PosMin,NegMin);
24 end;
25 end;
26 end;
27 end;
28 end;
29 end;
9
Figure 4: Procedure ADD CLAUSE
1 procedure ADD CLAUSE(G,Derivable)
2 begin
3 let G be (X, C, θ, i);
4 if ∃k : (C, θ, k) ∈ κ, k &= i then begin
5 fail;
6 end else begin
7 choose an index j from {1, . . . , |head(C)|} (choice point);
8 if i = j then begin
9 Derivable:= true;
10 end else begin
11 Derivable:= false;
12 end
13 κ := κ ∪ {(C, θ, j)};
14 end
15 end
SLG ANSWER then behaves differently depending on the value of Deriv-
able: if it is true, a new answer has been found so the rest of the code of
the SLG ANSWER procedure of SLG is performed with X-clauses replaced
by XD-clauses, otherwise it exits without modifying the global variables.
Procedure SLG POSITIVE, that performs resolution on a positive lit-
eral, modifies the one of SLG by replacing SLG resolution with SLGAD an-
swer resolution and SLG factoring with SLGAD factoring. The other SLG
procedure are modified simply by replacing X-clauses with XD-clauses.
If the conditional probability of a ground atom A given another ground
atom E must be computed, rather then computing PT (A ∧ E) and PT (E)
separately, an optimization can be done: we first identify the choices for
all successful derivations for E and then we look for the choices for the
successful derivations of A starting from a choice of E.
SLGAD is sound and complete with respect to the LPAD semantics and
the proof is based on the theorem of partial correctness of SLG [6, 5]: SLG
is sound and complete given an arbitrary but fixed computation rule when
it does not flounder. The proof of soundness and completeness can be found
in [11].
4 Experiments
We tested SLGAD on some synthetic problems similar to those that were
used as benchmarks for SLG [4, 3]: win, ranc and lanc. win is an imple-
mentation of the stalemate game and contains the clause
10
win(X):0.8 :- move(X,Y),\+ win(Y).
ranc and lanc model the ancestor relation with right and left recursion
respectively:
rancestor(X,Y):0.8 :- move(X,Y).
rancestor(X,Y):0.8 :- move(X,Z),rancestor(Z,Y).
lancestor(X,Y):0.8 :- move(X,Y).
lancestor(X,Y):0.8 :- lancestor(Z,Y),move(X,Z).
Various definitions of move are considered: a linear and acyclic relation,
containing the tuples (1, 2), . . . , (N − 1, N ), a linear and cyclic relation,
containing the tuples (1, 2), . . . , (N − 1, N ), (N, 1), and a tree relation, that
represents a complete binary tree of height N , containing 2N − 2 tuples. For
win, all the move relations are used, while for ranc and lanc only the linear
ones.
SLDAG was compared with Cilog2 and SLDNFAD. Cilog2 [9] computes
probabilities by identifying consistent choices on which the query is true
then it makes them mutually incompatible with an iterative algorithm.
SLDNFAD [10] extends SLDNF in order to store choices and computes the
probability with an algorithm based on Binary Decision Diagrams.
For SLGAD and SLDNFAD we used the implementations in Yap Prolog3
available in the cplint suite4 . SLGAD code is based on the SLG system5 .
For Cilog2 we ported the code available on the web6 to Yap. All the exper-
iments were performed on Linux machines with an Intel Core 2 Duo E6550
(2,333 MHz) processor and 4 GB of RAM.
The execution times for the query win(1) to the win program are shown
in Figures 5(a), 5(b) and 6 as a function of N for linear, cyclic and tree move
respectively.
The execution times for the query ancestor(1,N) to the ranc program
are shown in Figures 7(a) and 7(b) as a function of N for linear and cyclic
move respectively.
The execution times for the query ancestor(1,N) to the lanc program
are shown in Figures 8(a) and 8(b) as a function of N for linear and cyclic
move respectively.
win has an exponential number of instances where the query is true and
the graphs show the combinatorial explosion. On win with tree move the
graph in Figure 6 shows the execution times only up to N = 4 because for
N = 4 SLGAD did not terminate after one day.
On the ancestor dataset, the proof tree has only one successful branch
with a number of nodes proportional to N . However, the execution time
3
http://www.ncc.up.pt/∼vsc/Yap/
4
http://www.ing.unife.it/software/cplint/, also included in the CVS version of
Yap
5
http://engr.smu.edu/∼wchen/slg.html
6
http://www.cs.ubc.ca/spider/poole/aibook/code/cilog/CILog2.html
11
70
SLGAD SLGAD
600 Cilog2 60
SLDNFAD
500
50
Time (s)
Time (s)
400 40
300 30
200 20
100 10
0 0
5 10 15 20 25 30 5 10 15 20 25
N N
(a) Linear move. (b) Cyclic move.
Figure 5: Execution times for win with linear and cyclic move.
3
SLGAD
Cilog2
2.5 SLDNFAD
2
Time (s)
1.5
1
0.5
0
1 2 3 4
N
Figure 6: Execution times for win with tree move
SLGAD SLGAD
Cilog2 7000
4000 SLDNFAD
6000
Time (s)
Time (s)
3000 5000
4000
2000
3000
2000
1000
1000
0 0
0.1 0.5 0.9 1.3 1.7 0.1 0.5 0.9 1.3 1.7
N x 10
4 N x 10
4
(a) Linear move. (b) Cyclic move.
Figure 7: Execution times for ranc
12
SLGAD SLGAD
4000 4000
Time (s)
Time (s)
3000 3000
2000 2000
1000 1000
0 0
0.1 0.5 0.9 1.3 1.7 0.1 0.5 0.9 1.3 1.7
N x 10
4 N x 10
4
(a) Linear move. (b) Cyclic move.
Figure 8: Execution times for lanc.
of SLGAD increases more than linearly as a function of N because each
derivation step requires a lookup and an insert into the table T that is
implemented as a tree-like data structure (2-3 tree in the SLG system).
Each insert and lookup take logarithmic time.
SLGAD is compared with Cilog2 and SLDNFAD on the problems that
are modularly acyclic and right recursive, i.e. win with linear and tree
move (Figures 5(a) and 6) and ranc with linear move (Figure 7(a)). On
the other problems a comparison was not possible because Cilog2 and SLD-
NFAD would go into a loop. In win all the algorithms show the combinato-
rial explosion, with SLGAD performing better than Cilog2 and worse than
SLDNFAD. On ranc with linear move (Figure 7(a)), SLGAD takes longer
than Cilog2 and SLDNFAD, with Cilog2, SLDNFAD and SLGAD taking
8.3, 1165.4 and 4726.8 seconds for N = 20000 respectively.
5 Conclusions and Future Works
We have presented the SLGAD top-down procedure for computing the prob-
ability of LPADs queries that is based on SLG and we have experimentally
compared it with Cilog2 and SLDNFAD.
In the future, we plan to study the possibility of answering queries in an
approximate way by returning an upper and a lower bound of the correct
probability. Moreover, we plan to consider extensions of the language such
as aggregates in the body and probabilities in the head that depend on
literals in the body.
References
[1] K. R. Apt and M. Bezem. Acyclic programs. New Generation Comput.,
9(3/4):335–364, 1991.
13
[2] R. Carnap. Logical Foundations of Probability. University of Chicago
Press, 1950.
[3] L. F. Castro, T. Swift, and D. S. Warren. Suspending and resuming
computations in engines for SLG evaluation. In Practical Aspects of
Declarative Languages, volume 2257 of LNCS, pages 332–350. Springer,
2002.
[4] W. Chen, T. Swift, and D. S. Warren. Efficient top-down computa-
tion of queries under the well-founded semantics. J. Log. Program.,
24(3):161–199, 1995.
[5] W. Chen and D. Warren. Towards effective evaluation of general logic
programs. Technical report, State University of New York at Stony
Brook, 1993.
[6] W. Chen and D. S. Warren. Query evaluation under the well founded
semantics. In Symposium on Principles of Database Systems, pages
168–179. ACM Press, 1993.
[7] K. L. Clark. Negation as failure. In Logic and Databases. Plenum Press,
1978.
[8] L. De Raedt, A. Kimmig, and H. Toivonen. ProbLog: A probabilis-
tic prolog and its application in link discovery. In International Joint
Conference on Artificial Intelligence, pages 2462–2467, 2007.
[9] D. Poole. Abducing through negation as failure: stable models within
the independent choice logic. J. Log. Program., 44(1-3):5–35, 2000.
[10] F. Riguzzi. A top down interpreter for LPAD and CP-logic. In Congress
of the Italian Association for Artificial Intelligence, volume 4733 of
LNAI, pages 109–120. Springer, 2007.
[11] F. Riguzzi. The SLGAD procedure for inference on
logic programs with annotated disjunctions. Techni-
cal Report CS-2008-01, University of Ferrara, 2008.
http://www.unife.it/dipartimento/ingegneria/informazione/informati
ca/rapporti-tecnici-1/cs-2008-01.pdf/view.
[12] K. A. Ross. Modular acyclicity and tail recursion in logic programs.
In Symposium on Principles of Database Systems, pages 92–101. ACM
Press, 1991.
[13] A. Van Gelder, K. A. Ross, and J. S. Schlipf. The well-founded seman-
tics for general logic programs. J. of the ACM, 38(3):620–650, 1991.
14
[14] J. Vennekens and S. Verbaeten. Logic programs with annotated
disjunctions. Technical Report CW386, K. U. Leuven, 2003.
http://www.cs.kuleuven. ac.be/∼joost/techrep.ps.
[15] J. Vennekens, S. Verbaeten, and M. Bruynooghe. Logic programs with
annotated disjunctions. In International Conference on Logic Program-
ming, volume 3131 of LNCS. Springer, 2004.
15