<!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>Runtime Addition of Integrity Constraints in SCIFF?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Marco Alberti</string-name>
          <email>m.alberti@fct.unl.pt</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marco Gavanelli</string-name>
          <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="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>CENTRIA, DI-FCT, Universidade Nova de Lisboa Quinta da Torre - 2825-144 Caparica</institution>
          ,
          <country country="PT">Portugal</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>ENDIF, Universita di Ferrara Via Saragat</institution>
          ,
          <addr-line>1 - 44100 Ferrara</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Abductive Logic Programming is a computationally founded representation of abductive reasoning. In most ALP frameworks, integrity constraints express domain-speci c logical relationships that abductive answers are required to satisfy. Integrity constraints are usually known a priori. However, in some applications (such as interactive abductive logic programming, multi-agent interactions, contracting) it makes sense to relax this assumption, in order to let the abductive reasoning start with incomplete knowledge of integrity constraints, and to continue without restarting when new integrity constraints become known. In this paper, we propose a declarative semantics for abductive logic programming with addition of integrity constraints during the abductive reasoning process. We propose an operational instantiation (with formal termination, soundness and completeness properties) and an implementation of such a framework based on the SCIFF language and proof procedure.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>The philosopher Charles Sanders Peirce divides the reasoning schemes of
humans into three types: deduction (reasoning from causes to e ects), induction
(synthesizing new rules from examples) and abduction (making hypotheses on
possible causes from known e ects).</p>
      <p>
        Abductive Logic Programming [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is a computational representation of
abductive reasoning that allows to express relationships between e ects and
possible causes (by means of a logic program), as well as logical constraints over the
hypotheses (integrity constraints). In ALP possible hypotheses are represented
by special predicates (called abducibles) that are not de ned, but can be
hypothesized, as long as they satisfy the integrity constraints. A positive answer
to a query posed to an ALP system will typically contain the set of abducibles
? A short version of this paper will appear as LIPIcs technical communication.
that are hypothesized in order for the query to succeed. Such an answer is called
abductive answer in the ALP literature.
      </p>
      <p>Several instances of ALP have been proposed in the literature [2{6], which
di er for the logic language (and in particular for the type of abducibles and of
integrity constraints that can be expressed).</p>
      <p>While in many applications integrity constraints are known at the beginning
of the reasoning process, it is sometimes useful to relax this assumption.</p>
      <p>For instance, the classical application eld of abductive reasoning is the
diagnosis. However, in a realistic setting, a doctor does not simply listen to the
patient enumerating all his/her symptoms. Instead, they have a bidirectional and
multi-stage interaction: the doctor asks questions and re nes his/her diagnosis
based on the answers of the patient. So, there is the need to add information
dynamically, often in the form of rules, that can rule out unrealistic sets of
explanations.</p>
      <p>In multi-agent reasoning, agents that employ abductive reasoning could
exchange integrity constraints by a communication process, and continue operating
with the newly acquired integrity constraints. In contracting, two agents try to
reach an agreement and each agent tries to reach its goals. For example, one
agent may want to buy a car, and the other wants to sell it; the rst tries to get
a price as low as possible, while the second has the opposite aim, and they
negotiate on the model, the optionals, etc. Of course, each agent is unwilling to send
all of its own knowledge, because the other would exploit it to get favourable
conditions: if the buyer knew all the constraints of the seller, it would be able
to compute the minimum possible price for the seller, and then propose such
price. On the other hand, it is quite natural to tell some of the constraints only
when needed, in order to speedup the negotiation, and avoid lingering on small
variations of a meaningless solution. For instance, in case the buyer asks for a
seat for children, the seller could reply: \Ok, but you cannot install a children
seat if you have the airbag", and the client has to take into consideration this
constraint, when making new proposals. On the other hand, there is no reason
for the seller to state such knowledge immediately from the beginning, as it still
does not know if the buyer is interested at all in children seats.</p>
      <p>An abductive reasoner might seek additional integrity constraints (possibly
available from public repositories), depending on its current computation; for
example, the number of integrity constraints could be very vast (as if one has
to take into consideration all the EU rules for contracts), so only those strictly
needed should be downloaded. Moreover, depending on the current state of the
derivation one may choose to download regulations from one server or another:
suppose I am deciding whether to buy a good from a service in Italy or in
Portugal; I may rst try to get the best price, but then check if the regulations of
that country allow me to do such transaction. I will download the regulations of
such country, check if my transaction is allowed, and, if it is not, I will backtrack
and take the second choice.</p>
      <p>
        Integrity constraints can also be obtained at runtime by means of an
automated computational process; for instance, by inductive reasoning. Recently,
extensions of Inductive Logic Programming techniques (ILP for short), and the
DPML algorithm in particular [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], have been proposed to learn integrity
constraints from labelled traces (a database of events recording happened
interactions or activities, or a database collecting events at run-time). The DPML
target language is the SCIFF abductive logic language [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], and this inductive
approach has been experimented in various contexts (business processes, among
others; see [
        <xref ref-type="bibr" rid="ref10 ref9">9, 10</xref>
        ]).
      </p>
      <p>Such applications motivate an abductive logic programming framework where
some of the integrity constraints are known in advance, and some are added to
the abductive logic program during the computation.</p>
      <p>In this paper we propose such an extension, and a declarative semantics for
it.</p>
      <p>
        We describe the instantiation and implementation of the extension in the
SCIFF abductive logic language [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. SCIFF is implemented using Constraint
Handling Rules [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]; in particular, integrity constraints are mapped to CHR
constraints. Thanks to the properties of CHR, adding a new constraint at
runtime amounts to the single operation of calling the new constraint, i.e., it can
be delegated to the CHR solver.
      </p>
      <p>The paper is structured as follows. In section 2, we propose a declarative
semantics of ALPs with dynamic addition of integrity constraints based on the
SCIFF language, and we show that it exhibits properties of termination,
soundness and completeness. In section 3 we discuss some possible applications.
Discussion of related work and conclusions follow.
2</p>
      <p>Runtime addition of integrity constraints in S CIFF
In this section, we give a semantics for the runtime addition of integrity
constraints for the SCIFF abductive logic language; however, the de nitions can be
easily generalized for other abductive logic languages.
2.1</p>
      <p>
        SCIFF language
In the following, we provide a brief introduction to the SCIFF language, and,
in particular, on how the knowledge base, integrity constraints and goals are
expressed. A complete de nition of the language is available in [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>A SCIFF program P is composed of
{ a knowledge base KB;
{ a set ICS of static integrity constraints.</p>
      <p>
        Predicates In SCIFF, predicates can be de ned or abducibles, and can contain
variables. Variables can be constrained as in Constraint Logic Programming [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
Knowledge base In SCIFF, the knowledge base is a set of clauses of the form
where Head is an atom built on a de ned predicate, and body is a conjunction
of literals (built on de ned predicates or abducibles) and CLP constraints.
      </p>
    </sec>
    <sec id="sec-2">
      <title>Head</title>
    </sec>
    <sec id="sec-3">
      <title>Body</title>
      <p>Integrity constraints In SCIFF, integrity constraints have the form</p>
      <sec id="sec-3-1">
        <title>Body ! Head</title>
        <p>where Body is a conjunction of abducible atoms, de ned atoms and constraints,
and Head is a disjunction of conjunctions of abducible atoms and CLP
constraints, or false.</p>
        <p>
          The allowed integrity constraints vary in ALP languages. For instance, they
can state that a given conjunction of literals implies false (as in the
KakasMancarella [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] language); or that a conjunction of atoms implies a disjunction
of atoms (as in the IFF language [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]).
        </p>
        <p>Goal In SCIFF, a Goal has the same syntax of the body of a clause in the
knowledge base.
2.2</p>
        <sec id="sec-3-1-1">
          <title>Declarative semantics</title>
          <p>A declarative semantics for runtime addition of integrity constraints can be given
as follows.</p>
          <p>
            Given a program P = hKB; ICS i and a goal G, a pair h ; i, where is a
set of abducibles and is a substitution, is an abductive explanation for G with
additional integrity constraints ICD i
1. KB [
2. KB [
j= G
j= ICS [ ICD
where the symbol j= is interpreted, in SCIFF, as the 3-valued completion
semantics [
            <xref ref-type="bibr" rid="ref13">13</xref>
            ]. If such conditions hold, we write hKB; ICS i ICD G.
          </p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Example 1.</title>
      <p>(1)
(2)</p>
      <p>Given the knowledge base in equation (1) and the integrity constraint in
equation (2), where a=1, b=1, c=1, and d=1 are abducibles, two abductive answers
are possible for the query p(1): fa(2); b(2); d(2)g and fa(2); c(2); d(2)g.</p>
      <p>However, with the additional integrity constraint
only fa(2); b(2); d(2)g is an abductive answer.</p>
      <p>p(X)
q(X; Y )
r(2)
q(X; Y ); a(Y )
r(Y ); d(Y )
a(X) ! b(X) _ c(X)
c(X); d(X) ! false;
2.3</p>
      <sec id="sec-4-1">
        <title>Operational semantics</title>
        <p>
          The SCIFF proof-procedure is a rewriting system that de nes a proof tree, whose
nodes represents states of the computation. A set of transitions that rewrite a
node into one or more children nodes. SCIFF inherits the transitions of the IFF
proof-procedure [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ], and extends it in various directions. We recall the basics of
SCIFF; a complete description is in [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], with proofs of soundness, completeness,
and termination.
        </p>
        <p>
          Each node of the proof is a tuple T hR; CS; P SIC; i, where R is the
resolvent, CS is the CLP constraint store, PSIC is a set of implications (called
Partially Solved Integrity Constraints) derived from propagation of integrity
constraints, and is the current set of abduced literals. The main transitions,
inherited from the IFF are:
Unfolding replaces a (non abducible) atom with its de nitions;
Propagation if an abduced atom a(X) occurs in the condition of an IC (e.g.,
a(Y ) ! p), the atom is removed from the condition (generating X = Y ! p);
Case Analysis given an implication containing an equality in the condition
(e.g., X = Y ! p), generates two children in logical or (in the example,
either X = Y and p, or X 6= Y );
Equality rewriting rewrites equalities as in the Clark's equality theory;
Logical simpli cations other simpli cations like (true ! A) , A, etc.
SCIFF includes also the transitions of CLP [
          <xref ref-type="bibr" rid="ref12 ref14">12, 14</xref>
          ] for constraint solving.
        </p>
        <p>We extend SCIFF with an additional transition de ned as follows, and we
call the resulting proof procedure SCIFFD.</p>
        <p>Add IC Given a node T hR; CS; P SIC; i and an integrity constraint ic,
transition addIC generates one node T 0 hR; CS; P SIC [ ficg; i.</p>
        <p>This transition picks integrity constraints from a queue of dynamic integrity
constraints. The transition is applicable to any node in the proof tree, and it can
be executed whenever the queue is not empty. More integrity constraints can be
added to the queue during the computation.</p>
        <p>Successful derivation A successful SCIFFD derivation for an ALP hKB; ICS i,
with additional integrity constraints ICD and a goal G is a sequence of nodes
where
{ the root node is hG; ;; ICS ; ;i
{ each node is generated from the previous one by a SCIFFD transition
{ the leaf node is N htrue; CS; P SIC; i</p>
        <p>From the leaf node, a substitution</p>
        <p>is derived, that
{ replaces all variables in N that are not universally quanti ed by a ground
term;
{ satis es all the constraints in the store CS and the implications in P SIC.</p>
        <p>If such a derivation exists, we write hKB; ICS i`hICD; iG.
2.4</p>
      </sec>
      <sec id="sec-4-2">
        <title>Properties</title>
        <p>SCIFFD properties can be derived from SCIFF properties, by showing that a
SCIFFD derivation (successful or not) for the program hKB; ICS i with a nite
set of additional integrity constraints ICD can be transformed in an
equivalent one, where a node is the root node of a SCIFF derivation for the ALP
hKB; ICS [ ICDi.</p>
        <p>Due to how the addIC transition operates, the number of addIC transitions
in a derivation is nite, if the set of additional integrity constraints is nite,
because each addIC transition removes one integrity constraint from the queue,
and the transition is not applicable when the queue is empty.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Proposition 1. Let N2 be the node generated from node N1 by transition T1, and N3 be the node generated from node N2 by addIC. Then, if N4 is the node generated from node N1 by addIC, transition T1 is applicable to N4, and the node N5 generated from N4 by T1 is equal to N3, modulo renaming of variables.</title>
      <p>N1 T!1 N2 add!IC N3
N1 add!IC N4 T!1 N5
Proof. Let N1 hR1; CS1; P SIC1; 1i.</p>
    </sec>
    <sec id="sec-6">
      <title>From the statement of the proposition, we can write the other nodes as:</title>
      <p>N2 hR2; CS2; P SIC2; 2i
N3 hR2; CS2; P SIC2 [ ficg; 2i
N4 hR1; CS1; P SIC1 [ ficg; 1i</p>
    </sec>
    <sec id="sec-7">
      <title>Since N4 only di ers from N1 for the presence of an additional IC, T1 is</title>
      <p>applicable on N4, and it produces the same elements in the resulting node N5,
with an additional integrity constraint. That is, modulo renamings of variables,</p>
      <p>N5 hR2; CS2; P SIC2 [ ficg; 2i</p>
      <sec id="sec-7-1">
        <title>Proposition 2. Let D be a SCIFFD derivation that has k applications of the</title>
        <p>addIC transition. Then there exists a derivation D0 that has the following
properties:
{ the rst k transitions of D0 are the same applications of addIC;
{ each node of D0, starting the transitions from k + 1 is equal to the
corresponding node of D.</p>
        <p>Proof. Trivially, by proposition 1, D0 is obtained from D by moving the addIC
transition to the beginning.</p>
        <p>
          Termination Being SCIFF based on the 3-valued completion semantics, its
termination is proven, as for SLDNF resolution [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ], for acyclic knowledge bases
and bounded goals and implications. Of course, programs may also terminate
in other cases as well. Other abductive proof-procedures are based on other
semantics and can address also non-strati ed programs [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ].
        </p>
        <p>
          Intuitively, for SLD resolution a level mapping must be de ned, such that
the head of each clause has a higher level than the body. For SCIFF, as well as
for the IFF, since it contains integrity constraints that are propagated forward,
the level mapping should also map atoms in the body of an integrity constraint
to higher levels than the atoms in the head; moreover, this should also hold
considering possible unfoldings of literals in the body of an integrity constraint
[
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]. An atom is bounded w.r.t. a level mapping if the level mapping is bounded
over the ground instances of that atom; an implication is bounded if all its literals
are. The following proposition is the SCIFF termination result [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ].
        </p>
      </sec>
      <sec id="sec-7-2">
        <title>Proposition 3. Let G be a query to an ALP hKB; ICS i, where KBS , ICS and</title>
      </sec>
      <sec id="sec-7-3">
        <title>G are acyclic w.r.t. some level mapping, and G and all implications in ICS are bounded w.r.t. the level-mapping. Then, every SCIFF derivation for each instance of G is nite.</title>
        <p>Termination is not a ected in SCIFFD, as long as the newly added integrity
constraints do not violate the termination conditions.</p>
      </sec>
      <sec id="sec-7-4">
        <title>Proposition 4. Let G be a query to an ALP hKB; ICS i, with additional integrity constraints ICD, where KBS , ICS [ ICD and G are acyclic w.r.t. some level mapping, and G and all implications in ICS [ ICD are bounded w.r.t. the levelmapping. Then, every SCIFFD derivation for each instance of G is nite.</title>
        <p>Proof. Consider a SCIFFD derivation D, with root node hG; ;; ICS ; ;i. Then
consider a derivation D0, equal to D, except that all the addIC transitions are
applied at the beginning. The node resulting from the last addIC transition is
hG; ;; ICS [ ICD; ;i. With the given hypotheses, such node is the initial node of
a SCIFF derivation that is nite, by the SCIFF termination result (proposition
3). Since, by proposition 2, D is equal to D0 for the part that follows the last
addIC transition, D is also nite.</p>
        <p>Soundness Since SCIFFD only di ers from SCIFF for the presence of addIC
transitions, and addIC is only applicable for a non-empty set of additional
integrity constraints, a SCIFFD derivation for an empty set of additional integrity
constraints is a SCIFF derivation for the same ALP.</p>
        <p>
          Therefore, the SCIFF soundness result [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] can be expressed as follows.
Proposition 5. Given an ALP hKB; ICS i, if
hKB; ICS i`h; ; iG
then
hKB; ICS i ; G
hKB; ICS i`hICD; iG
then
hKB; ICS i ICD G
        </p>
        <p>We now extend it to the case with a (non-empty) set of additional integrity
constraints ICD:</p>
      </sec>
      <sec id="sec-7-5">
        <title>Proposition 6. Given an ALP hKB; ICS i, if</title>
        <p>
          Proof. Let D be a successful SCIFFD derivation. By proposition 2, for the part
after the last addIC transition, D is equal to a derivation D0 where all the addIC
transitions are applied at the beginning. The node after the last addIC transition
in D0 is hG; ;; ICS [ ICD; ;i. The rest of the D0 transition is a SCIFF derivation.
By the SCIFF soundness result (proposition 5),
Completeness Due to the fact that, as explained earlier, a SCIFFD derivation
for an empty set of additional integrity constraint is also a SCIFF derivation for
the same ALP, the SCIFF completeness result [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] can be expressed as follows.
hKB; ICS i ; G there exists
' such that hKB; ICS i`h; 0; iG, and
0
        </p>
      </sec>
      <sec id="sec-7-6">
        <title>Proposition 7. Given an ALP hKB; ICS i and, for any ground set</title>
        <p>such that</p>
        <p>The corresponding result for SCIFFD, with non-empty set ICD is as follows.
that hKB; ICS i`hICD0; iG and
0</p>
        <p>.</p>
      </sec>
      <sec id="sec-7-7">
        <title>Proposition 8. Given an ALP hKB; ICS i and a set ICD of integrity con</title>
        <p>straints, for any ground set such that hKB; ICS i ICD G there exists ' such
Proof. By the SCIFF completeness result (proposition 7), there exists a SCIFF
derivation whose root node is N = hG; ;; ICS [ ICD; ;i, and whose abductive
answer is h ; i.</p>
        <p>But N is a node in a successful SCIFFD derivation, whose root node is
hG; ;; ICS ; ;i, and addIC is applied for all ICs in ICD.
2.5</p>
        <sec id="sec-7-7-1">
          <title>Implementation</title>
          <p>
            The SCIFF abductive proof procedure was implemented in Prolog, using
extensively the Constraint Handling Rules [
            <xref ref-type="bibr" rid="ref11 ref18">11, 18</xref>
            ] library. The implementation can be
downloaded from the SCIFF web site [
            <xref ref-type="bibr" rid="ref19">19</xref>
            ] and runs on SICStus and SWI Prolog.
          </p>
          <p>Constraint Handling Rules (CHR) is a logic language devoted to de ne new
constraint solvers; however, it has been used as a general language for many
di erent applications, not all strictly related to constraints.</p>
          <p>A new solver is de ned in CHR by means of rules. There exist two main types
of rules: propagation and simpli cation3. A propagation rule is of the form</p>
          <p>Head1; : : : ; Headn ) GuardjBody
and means that, if the optional Guard and the Heads are true, then the Body
must be true. Operationally, whenever a set of constraints are in the store,
matching Head1, . . . , Headn, the Guard is checked; if it evaluates to true, the
Body is executed (as a Prolog goal). The label is optional and serves only as an
identi er of the rule.
3 There are also simpagation rules, that are not logically necessary, but are important
for e ciency; we will not go into details for lack of space.
Simpli cation rules have a similar syntax:</p>
          <p>Head1; : : : ; Headn , GuardjBody
They state that if the Guard is true, then the conjunction Head1, . . . , Headn
is equivalent to Body. Operationally, if Head1, . . . , Headn are in the store (and
Guard is true), they are removed and substituted by Body.</p>
          <p>SCIFF represents most of its data structures as CHR constraints:
{ an abducible atom a(X) is represented with the CHR constraint abd(a(X))
{ a (partially solved) integrity constraint a(Y ); q(Y ) ! p(Y ) _ c(Y ) is
represented as the CHR constraint</p>
          <p>B{ozdy
psic( [abd(a(Y)),q(Y)]; ( p(Y) ; abd(c(Y)) ) )
| } | }</p>
          <p>H{ezad</p>
          <p>The Head can be any Prolog goal (it has the same syntax).</p>
          <p>The proof tree is explored in a depth- rst fashion, using the Prolog stack for
this purpose. Transitions are implemented as CHR rules; for example, transition
Propagation is implemented with the following propagation CHR:
propagation @
abd(A1),
psic([abd(A2)|More],Head)
==&gt; psic([A1=A2|More],Head).</p>
          <p>Case Analysis handles the equality in the body of a PSIC
case_analysis @
psic([A=B|More],Head)
==&gt; impose A=B</p>
          <p>psic(More,Head)
; % Open choice point</p>
          <p>impose A and B do not unify
and the logical simpli cation (true ! A) , A manages implications with empty
body:
logic_simplification @ psic([],Head) &lt;=&gt; call(Head).</p>
          <p>Thanks to this implementation, adding a new integrity constraint is just a
matter of calling the corresponding CHR constraint: if we want to dynamically
add the integrity constraint (2) we execute the goal:</p>
          <p>psic( [abd(a(X))], (abd(b(X));abd(c(X))) ).</p>
          <p>In this way, the newly added integrity constraint is automatically subject to
all the applicable transitions. Consider rule propagation: whenever two
constraints matching the rule head (e.g., abd(a(1)) and psic([a(X)],b(X))) are
present in the CHR constraint store, the rule is red, it generates psic([a(X)=a(1)],b(X)),
that triggers case analysis, which in its turn generates two children nodes:
{ one where uni cation is imposed between the abducible in the CHR
constraint store and the abducible in the partially solved integrity constraint,
and a new partially solved integrity constraint is imposed, with the abducible
removed from the body.
{ one where disuni cation between the abducible in the CHR constraint store
and the abducible in the partially solved integrity constraint is imposed.
In the previous example, psic([a(X)=a(1)],b(X)) is rewritten in the rst case
as X = 1 and b(X) is executed; in the second case by imposing the CLP
constraint X 6= 1.</p>
          <p>The relevant point, here, is that rule propagation is red whenever both
the constraints (the abducible and the psic) are in the CHR store, regardless
of which one entered the store rst. So, if a partially solved integrity constraint
is added by addIC , and some abducible in its body is already in the store,
propagation will occur, as if the partially solved integrity constraint had been in
the constraint store from the beginning of the computation.
3</p>
          <p>Applications
In this section, we show some typical applications of abductive reasoning where
runtime addition of integrity constraints can be of use.
3.1</p>
        </sec>
        <sec id="sec-7-7-2">
          <title>A diagnosis scenario</title>
          <p>Traditionally, diagnosis has been one of the most natural applications of
abductive reasoning, as it amounts at making hypotheses about the possible causes of
given symptoms. However, usually a diagnosis is not just a matter of listing all
symptoms, and nding any explanation, but the doctor can ask questions, and
re ne his/her idea based on the received answers. In the same way, an expert
system based on abductive reasoning should be able to receive more
information dynamically, and continue its computation based on the new information
available.</p>
          <p>Consider a patient that shows up at the doctor's with stomach ache and
spots on his face.</p>
          <p>The abduction-based diagnosis system used by the doctor has the
following relevant clauses in the knowledge base, where u, ulcera, some drug, and
some food are abducibles:
stomach ache u
stomach ache ulcera
spots some drug
spots some food</p>
          <p>The query posed by the doctor is stomach ache; spots. The abductive
answers, equally plausible at this stage, are f u; some drugg, f u; some food g,
fulcera; some drugg, and fulcera; some food g. To further investigate, the doctor
asks the patient if he ate some food, or he is being treated with some drug. The
patient says that he does not eat some food, but he is taking some pills; however
he knows that some drug gives him ulcera. The doctor now has two pieces of
information that are relevant for this patient only: she adds dynamically the
integrity constraints
some food ! false
some drug ! ulcera
to the abductive logic program.</p>
          <p>The abductive answers are now f u; some drug ; ulcerag, and fulcera; some drug g.
The doctor may prefer the latter, for minimality.
3.2</p>
        </sec>
        <sec id="sec-7-7-3">
          <title>Contracting in Service-Oriented Architectures</title>
          <p>
            In [
            <xref ref-type="bibr" rid="ref20">20</xref>
            ], we (with co-authors) proposed an automated contracting system for
service-oriented architectures. In our architecture, a number of service providers
expose their policies, expressed in the SCIFF language: in particular, integrity
constraints represent pieces of policies in form of rules (for instance, if a
customer wants to pay by bank transfer, the amount is expected to be credited by
one week after the order), and domain-speci c knowledge is expressed as SCIFF
knowledge base clauses and, where appropriate, by ontologies (such as the
concept of accepted customer). A user will also have policies expressed in the SCIFF
language. In this application, abducibles represent actions by the users or the
service providers (such as a message containing the credit card number, or the
delivery of digital content).
          </p>
          <p>The heart of the system is the SCIFF Reasoning Engine (SRE). It receives
as input a service provider's and a user's policies, as well as a user goal (such
as the expectation to receive an ebook by one week). The system queries the
SCIFF proof procedure with the goal, using the union of the policies as the
abductive program. The abductive answer, if one exists, is a sequence of abducibles
that represent service provider's and user's actions, that achieve the goal while
complying with the service provider's and the user's policies.</p>
          <p>
            Runtime addition of integrity constraints would allow starting the reasoning
with a subset of the policies, and to incrementally add policies. The bene t is
twofold: rst, not to waste computational resources to search for solutions that
are already ruled out by partial policies; second, the user or service providers may
not want to disclose all of their policies unnecessarily, but only when potential
contractors (based on partial policies) have been identi ed. In Protune [
            <xref ref-type="bibr" rid="ref21">21</xref>
            ],
provisional predicates are ground atoms that can change their values as result of
actions carried out by a peer (e.g., providing a credential). In our framework, it
would be possible for agents to exchange (partial) policies expressed in the rich
SCIFF language.
3.3
          </p>
        </sec>
        <sec id="sec-7-7-4">
          <title>Abductive reasoning on the Web</title>
          <p>Many problems in constraint programming require a very large set of constraints,
that cannot be propagated e ciently all at once. For example, integer linear
programming relies on a linear solver, that solves very e ciently linear constraints
(in some cases, with polynomial algorithms), but cannot handle natively the
integrality constraints (i.e., the fact that some of the variables are required to have
integer values). Integrality can be dealt with by adding more linear constraints
(for example, Gomory cuts), but the number of such constraints can be
exponential. The usually adopted solution is to add those constraints during search:
if in the current candidate solution some variable X is not integer, only those
constraints that remove the non-integral value of X are imposed.</p>
          <p>
            In the same way, the SCIFF proof-procedure can deal with problems with a
very large number of integrity constraints. For example, laws or regulations can
be expressed in the SCIFF language, and published on a web site, in some
webfriendly format (like RuleML or the RIF). SCIFF is currently able to download
web content through the PiLLoW library [
            <xref ref-type="bibr" rid="ref22">22</xref>
            ] and interpret data published in
RuleML, so it can download from web servers a set of rules, interpret them
as integrity constraints, and produce abductive answers that satisfy them. On
the other hand, the set of regulations could be very wide, and downloading
all of them could be a waste of time and bandwidth. Thanks to the dynamic
addition of integrity constraints, SCIFF could download only those rules that
involve the current set of abduced literals, impose them to rule out inconsistent
explanations, and iteratively provide more and more re ned solutions, in an
interactive procedure.
3.4
          </p>
        </sec>
        <sec id="sec-7-7-5">
          <title>Experiments</title>
          <p>To show the e ectiveness of the approach, we tested a simple benchmark
problem, that is a simpli ed version of a contracting scenario of Section 3.2. One
agent needs to interact with some web service, and choose one that is able to
provide the expected reply. In this example, the agent will tell message m and
will expect n as reply. The agent knows the address of a series of web services,
given as facts:
known service(http : ==web:address:one=f older1=policy:ruleml):
known service(http : ==web:address:two=f older2=policy:ruleml):</p>
          <p>In order to nd the right service, the agent executes the following goal, where
tell is abducible:
known service(Addr); download ic(Addr); tell(me; S; m); not(tell(S; me; A); A 6= n)
meaning that it will non-deterministically choose a service, download its integrity
constraints, and then tell message m; it will fail if it gets any reply that is not
n.</p>
          <p>We generated 252 services, each with one integrity constraint</p>
          <p>tell(Client; s; letter1) ! tell(s; Client; letter2)
where letter1 and letter2 are substituted with a ground term corresponding to
one of the 25 letters of the alphabet.</p>
          <p>We tried the goal on a slow network (mobile phone) and it took 173.350s to
nd the right service. As a comparison, a solution that rst downloads the IC of
all possible services before starting the solution takes 319.005s.</p>
          <p>
            Related work
Among the many works on abduction in CHR by Christiansen and colleagues [
            <xref ref-type="bibr" rid="ref23 ref24">23,
24</xref>
            ], we emphasize an inspiring position paper [
            <xref ref-type="bibr" rid="ref25">25</xref>
            ], in which preliminary
experiments are shown with integrity constraints mapped to CHR rules. In that work,
Christiansen points out that through meta-rules it is possible to dynamically
add integrity constraints. Here we extend the idea within the SCIFF
framework, which gives us a set of properties deemed crucial in the computational
logic community. The operational semantics of SCIFF is not based on that of
CHR, but on the sound and complete semantics of the IFF [
            <xref ref-type="bibr" rid="ref3">3</xref>
            ]: this allowed us
to prove those properties also for SCIFF. In this paper, we extend these proofs
for the dynamic addition of integrity constraints, reaching the objective pointed
out by Christiansen, but with soundness and completeness results.
          </p>
          <p>
            EVOLP [
            <xref ref-type="bibr" rid="ref26">26</xref>
            ] is a language to de ne logic programs able to evolve. A special
atom assert(Rule) can occur in the head or in the body of clauses; in case the
stable model semantics assigns value true to some of these literals, the clause
Rule is added to the program. Our instance can be considered as an evolving
abductive program, in which only integrity constraints (and not clauses in the
KB) can be added, and based on the three-valued completion semantics, instead
of the stable model semantics. Our language also features CLP constraints and,
as the general CLP framework [
            <xref ref-type="bibr" rid="ref12">12</xref>
            ], it is parametric with respect to the speci c
sort. The proof procedure lets the user choose the associated solver, and two
state-of-the-art solvers are available in the current implementation: CLP(R), on
the real values, and CLP(FD), on nite domains. EVOLP is a component of
the ACORDA prospective logic programming system [
            <xref ref-type="bibr" rid="ref16">16</xref>
            ], which also integrates
abductive reasoning and preferences, to support interactive abductive logic
programming, among other applications.
          </p>
          <p>
            We can also easily extend the language in order to incorporate dynamic
integrity constraints in the body of clauses, or in queries. Operationally, whenever
an integrity constraint is part of the resolvent, the addIC transition would be
applied. However, the impact of such extension on termination must be studied
in future work. With reference to nested, dynamic ICs, and this extension of
the SCIFF language, it is worth to mention that in the literature, a lot of work
was devoted to the treatment of embedded implications (due to Miller, et al. see
[
            <xref ref-type="bibr" rid="ref27 ref28">27, 28</xref>
            ] and McCarty, see [
            <xref ref-type="bibr" rid="ref29">29</xref>
            ]) based on the logic of Higher-Order Hereditary
Harrop Formulas, a fragment of Intuitionistic logic. In this logic, and the
system implemented [
            <xref ref-type="bibr" rid="ref30">30</xref>
            ], they allow arbitrary lambda terms with full higher-order
uni cation, and extend the formula language with arbitrarily nested universal
quanti ers and implications. In our case, we can add integrity constraints at
runtime, rather than program clauses as they do. We can therefore support
abductive reasoning in an extended set of constraints.
          </p>
          <p>
            In CR-Prolog [
            <xref ref-type="bibr" rid="ref31">31</xref>
            ], new (consistency-restoring) rules can be added
dynamically, as a part of Observe-Think-Act loop of an agent; if some inconsistency
is detected then these constraints can be considered, according to their
preferences. The semantics of CR-Prolog programs is de ned as a transformation into
abductive logic programs, where each consistency-restore rule has an abducible
associated with it, and holds (only) if such abducible is abduced. In our
framework, dynamically added integrity constraints must be satis ed, independently
of the abductive answer.
5
          </p>
          <p>Conclusions
In this paper we proposed a declarative semantics for abductive logic programs
where additional integrity constraints can be added at runtime. Such an
extension can support interesting applications such as interactive abductive logic
programming and contracting in service-oriented architecture.</p>
          <p>We proposed an operational instantiation of such a framework as the SCIFFD
proof procedure, an extension of the SCIFF abductive proof procedure, and we
proved formal results of termination, soundness, and completeness for SCIFFD.</p>
        </sec>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Kakas</surname>
            ,
            <given-names>A.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kowalski</surname>
            ,
            <given-names>R.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Toni</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Abductive Logic Programming</article-title>
          .
          <source>Journal of Logic and Computation</source>
          <volume>2</volume>
          (
          <year>1993</year>
          )
          <volume>719</volume>
          {
          <fpage>770</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Kakas</surname>
            ,
            <given-names>A.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mancarella</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>On the relation between Truth Maintenance and Abduction</article-title>
          . In Fukumura, T., ed.
          <source>: Proceedings of the 1st Paci c Rim International Conference on Arti cial Intelligence</source>
          , PRICAI-
          <volume>90</volume>
          , Nagoya, Japan, Ohmsha Ltd. (
          <year>1990</year>
          )
          <volume>438</volume>
          {
          <fpage>443</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Fung</surname>
            ,
            <given-names>T.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kowalski</surname>
            ,
            <given-names>R.A.</given-names>
          </string-name>
          :
          <article-title>The IFF proof procedure for abductive logic programming</article-title>
          .
          <source>Journal of Logic Programming</source>
          <volume>33</volume>
          (
          <year>1997</year>
          )
          <volume>151</volume>
          {
          <fpage>165</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Denecker</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De Schreye</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          : SLDNFA:
          <article-title>An abductive procedure for abductive logic programs</article-title>
          .
          <source>Journal of Logic Programming</source>
          <volume>34</volume>
          (
          <year>1998</year>
          )
          <volume>111</volume>
          {
          <fpage>167</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Alferes</surname>
            ,
            <given-names>J.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pereira</surname>
            ,
            <given-names>L.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Swift</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Well-founded abduction via tabled dual programs</article-title>
          . In De Schreye, D., ed.
          <source>: ICLP</source>
          . (
          <year>1999</year>
          )
          <volume>426</volume>
          {
          <fpage>440</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Argumentation-based abduction in disjunctive logic programming</article-title>
          .
          <source>Journal of Logic Programming</source>
          <volume>45</volume>
          (
          <year>2000</year>
          )
          <volume>105</volume>
          {
          <fpage>141</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Lamma</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mello</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Riguzzi</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Storari</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Applying inductive logic programming to process mining</article-title>
          . In Blockeel, H.,
          <string-name>
            <surname>Ramon</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shavlik</surname>
            ,
            <given-names>J.W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tadepalli</surname>
          </string-name>
          , P., eds.
          <source>: ILP</source>
          . Volume
          <volume>4894</volume>
          of Lecture Notes in Computer Science., Springer (
          <year>2007</year>
          )
          <volume>132</volume>
          {
          <fpage>146</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Alberti</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chesani</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <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>Mello</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Torroni</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Veri able agent interaction in abductive logic programming: the SCIFF framework</article-title>
          .
          <source>ACM Transactions on Computational Logics</source>
          <volume>9</volume>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Chesani</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lamma</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mello</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Montali</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Riguzzi</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Storari</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Exploiting inductive logic programming techniques for declarative process mining</article-title>
          .
          <source>T. Petri Nets and Other Models of Concurrency</source>
          <volume>2</volume>
          (
          <year>2009</year>
          )
          <volume>278</volume>
          {
          <fpage>295</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Lamma</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mello</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Montali</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Riguzzi</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Storari</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Inducing declarative logic-based models from labeled traces</article-title>
          . In Alonso, G.,
          <string-name>
            <surname>Dadam</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rosemann</surname>
          </string-name>
          , M., eds.
          <source>: BPM</source>
          . Volume
          <volume>4714</volume>
          of Lecture Notes in Computer Science., Springer (
          <year>2007</year>
          )
          <volume>344</volume>
          {
          <fpage>359</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. Fruhwirth, T.:
          <article-title>Theory and practice of constraint handling rules</article-title>
          .
          <source>Journal of Logic Programming</source>
          <volume>37</volume>
          (
          <year>1998</year>
          )
          <volume>95</volume>
          {
          <fpage>138</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Ja</surname>
            <given-names>ar</given-names>
          </string-name>
          , J.,
          <string-name>
            <surname>Maher</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>Constraint logic programming: a survey</article-title>
          .
          <source>Journal of Logic Programming</source>
          <volume>19</volume>
          -
          <fpage>20</fpage>
          (
          <year>1994</year>
          )
          <volume>503</volume>
          {
          <fpage>582</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Kunen</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Negation in logic programming</article-title>
          .
          <source>Journal of Logic Programming</source>
          <volume>4</volume>
          (
          <year>1987</year>
          )
          <volume>289</volume>
          {
          <fpage>308</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Ja</surname>
            <given-names>ar</given-names>
          </string-name>
          , J.,
          <string-name>
            <surname>Maher</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marriott</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stuckey</surname>
            ,
            <given-names>P.:</given-names>
          </string-name>
          <article-title>The semantics of constraint logic programs</article-title>
          .
          <source>Journal of Logic Programming</source>
          (
          <year>1994</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Apt</surname>
            ,
            <given-names>K.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bezem</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Acyclic programs</article-title>
          .
          <source>New Generation Computing</source>
          <volume>9</volume>
          (
          <year>1991</year>
          )
          <volume>335</volume>
          {
          <fpage>364</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Lopes</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pereira</surname>
            ,
            <given-names>L.M.</given-names>
          </string-name>
          :
          <article-title>Prospective programming with ACORDA</article-title>
          .
          <source>In: Empirically Successful Computerized Reasoning (ESCoR'06) workshop at The 3rd International Joint Conference on Automated Reasoning (IJCAR'06)</source>
          , Seattle, USA (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Xanthakos</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Semantic Integration of Information by Abduction</article-title>
          .
          <source>PhD thesis</source>
          , Imperial College London (
          <year>2003</year>
          ) Available at http://www.doc.ic.ac.uk/ ix98/PhD.zip.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Schrijvers</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Demoen</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>The K.U. Leuven CHR system: implementation and application</article-title>
          . In Fruhwirth, T.,
          <string-name>
            <surname>Meister</surname>
          </string-name>
          , M., eds.: First Workshop on Constraint Handling Rules. (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Alberti</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chesani</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gavanelli</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>The SCIFF abductive proof procedure (</article-title>
          <year>2004</year>
          ) http://lia.deis.unibo.it/research/sci /.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Alberti</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Catta</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <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>Chesani</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Montali</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mello</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Torroni</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Integrating abductive logic programming and description logics in a dynamic contracting architecture</article-title>
          . In Hofmann, P., ed.
          <source>: ICWS</source>
          <year>2009</year>
          : 2009 IEEE International Conference on Web Services, IEEE Computer Society, IEEE Computer Society Press (
          <year>2009</year>
          )
          <volume>254</volume>
          {
          <fpage>261</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Coi</surname>
            ,
            <given-names>J.L.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Olmedilla</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bonatti</surname>
            ,
            <given-names>P.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sauro</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Protune: A framework for semantic web policies</article-title>
          . In Bizer,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Joshi</surname>
          </string-name>
          , A., eds.:
          <source>International Semantic Web Conference (Posters &amp; Demos)</source>
          .
          <source>Volume 401 of CEUR Workshop Proceedings., CEUR-WS.org</source>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Gras</surname>
            ,
            <given-names>D.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hermenegildo</surname>
            ,
            <given-names>M.V.</given-names>
          </string-name>
          :
          <article-title>Distributed WWW programming using (Ciao-) Prolog and the PiLLoW library</article-title>
          .
          <source>TPLP 1</source>
          (
          <year>2001</year>
          )
          <volume>251</volume>
          {
          <fpage>282</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Abdennadher</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Christiansen</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          :
          <article-title>An experimental CLP platform for integrity constraints and abduction</article-title>
          . In Larsen,
          <string-name>
            <given-names>H.L.</given-names>
            ,
            <surname>Kacprzyk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Zadrozny</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Andreasen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            ,
            <surname>Christiansen</surname>
          </string-name>
          , H., eds.: FQAS, Heidelberg, Physica-Verlag (
          <year>2000</year>
          )
          <volume>141</volume>
          {
          <fpage>152</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Christiansen</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dahl</surname>
          </string-name>
          , V.:
          <article-title>HYPROLOG: A new logic programming language with assumptions and abduction</article-title>
          . In Gabbrielli,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Gupta</surname>
          </string-name>
          , G., eds.
          <source>: ICLP</source>
          . Volume
          <volume>3668</volume>
          of Lecture Notes in Computer Science., Springer (
          <year>2005</year>
          )
          <volume>159</volume>
          {
          <fpage>173</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Christiansen</surname>
          </string-name>
          , H.:
          <article-title>Experiences and directions for abduction and induction using constraint handling rules</article-title>
          .
          <source>In: Workshop on abduction and induction AIAI'05</source>
          ,
          <string-name>
            <surname>Edinburgh</surname>
          </string-name>
          , Scotland (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Alferes</surname>
            ,
            <given-names>J.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brogi</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leite</surname>
            ,
            <given-names>J.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pereira</surname>
            ,
            <given-names>L.M.:</given-names>
          </string-name>
          <article-title>Evolving logic programs</article-title>
          . In Flesca, S.,
          <string-name>
            <surname>Greco</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leone</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ianni</surname>
          </string-name>
          , G., eds.
          <source>: JELIA</source>
          . Volume
          <volume>2424</volume>
          of Lecture Notes in Computer Science., Springer (
          <year>2002</year>
          )
          <volume>50</volume>
          {
          <fpage>61</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Miller</surname>
            ,
            <given-names>D.:</given-names>
          </string-name>
          <article-title>A logical analysis of modules in logic programming</article-title>
          .
          <source>Journal of Logic Programming</source>
          <volume>6</volume>
          (
          <year>1989</year>
          )
          <volume>79</volume>
          {
          <fpage>108</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>Hodas</surname>
            ,
            <given-names>J.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Miller</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Logic programming in a fragment of intuitionistic linear logic</article-title>
          .
          <source>Inf. Comput</source>
          .
          <volume>110</volume>
          (
          <year>1994</year>
          )
          <volume>327</volume>
          {
          <fpage>365</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <surname>McCarty</surname>
            ,
            <given-names>L.T.</given-names>
          </string-name>
          :
          <article-title>Clausal intuitionistic logic I - xed-point semantics</article-title>
          .
          <source>Journal of Logic Programming</source>
          <volume>5</volume>
          (
          <year>1988</year>
          )
          <volume>1</volume>
          {
          <fpage>31</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <surname>Nadathur</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Miller</surname>
            ,
            <given-names>D.:</given-names>
          </string-name>
          <article-title>An overview of lambda-prolog</article-title>
          . In: ICLP/SLP. (
          <year>1988</year>
          )
          <volume>810</volume>
          {
          <fpage>827</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <surname>Balduccini</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gelfond</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Logic programs with consistency-restoring rules</article-title>
          .
          <source>In: AAAI Spring</source>
          <year>2003</year>
          Symposium.
          <article-title>(</article-title>
          <year>2003</year>
          )
          <volume>9</volume>
          {
          <fpage>18</fpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>