<!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>External Propagators in WASP: Preliminary Report</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Carmine Dodaro</string-name>
          <email>dodaro@mat.unical.it</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Francesco Ricca</string-name>
          <email>ricca@mat.unical.it</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Peter Schüller</string-name>
          <email>peter.schuller@marmara.edu.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Computer Engineering Department, Faculty of Engineering Marmara University</institution>
          ,
          <country country="TR">Turkey</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Department of Mathematics and Computer Science University of Calabria</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>State-of-the-art ASP solvers are based on a variant of the CDCL algorithm. One of the key features of CDCL is the propagation step, whose role is to implement deterministic consequences of the input theory. It is well-known that the performance of solvers can be considerably improved on specific benchmarks by adding custom propagation functions. However, embedding a new propagator into an existing solver often requires non-trivial modifications. In this paper, we report on an extension of the ASP solver WASP that allows to provide new propagators externally, i.e. no modifications of the solver are needed. We assess our proposal on a recent application of ASP to abduction in Natural Language Understanding, where plain ASP solvers are not effective. Preliminary experiments on real-world instances show encouraging results.</p>
      </abstract>
      <kwd-group>
        <kwd>Answer Set Programming</kwd>
        <kwd>Propagators</kwd>
        <kwd>Natural Language Understanding</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        Answer Set Programming (ASP) is a powerful paradigm for knowledge representation
and reasoning based on the stable models semantics [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. ASP has been applied for
solving complex problems in several areas, including Artificial Intelligence [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ],
Bioinformatics [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], E-tourism [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] and Databases [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], to mention a few.
      </p>
      <p>
        The success of ASP is due to the combination of its high knowledge-modeling
power with robust solving technology [
        <xref ref-type="bibr" rid="ref6 ref7">6, 7</xref>
        ]. ASP systems are usually based on two
modules. The first module is the grounder, which is responsible for the elimination of
variables by creating a ground (or propositional) program equivalent to the input one.
After the grounding process, the next module, usually called solver, computes the
answer sets of the program. State-of-the-art ASP solvers perform the computation of the
answer sets applying techniques introduced for SAT solving, such as CDCL
backtracking search algorithm [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. One of the key features of CDCL is the propagation step,
whose role is to implement deterministic consequences of the input theory.
      </p>
      <p>
        It turns out that many extensions of the plain ASP language such as aggregates [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ],
acyclicity constraints [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], and Constraint ASP [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] have been implemented by adding
new propagation functions to the plain CDCL algorithm. Recently, Janhunen et al.
in [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] suggest that the performance of CDCL-based solvers can be considerably
improved on specific benchmarks by adding custom propagation functions. However, the
integration of new propagators into existing solvers often requires a deep knowledge of
the internal implementation details.
      </p>
      <p>
        In this paper, we report on an extension of the ASP solver WASP [
        <xref ref-type="bibr" rid="ref13 ref6">13, 6</xref>
        ] that makes it
easier for developers to embed new external propagators in the solver. In particular, it
offers multi-language support including scripting languages that require no modifications
to the solver, as well as a C++ interface for performance-oriented implementations.
      </p>
      <p>
        We assess our proposal on a recent application of ASP to abduction in Natural
Language Understanding [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], where plain ASP solvers are not effective. In particular, it
has been shown in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] that the grounding of all constraints makes the subsequent
solving step too hard for state-of-the-art solvers. In particular, a small set of constraints, i.e.
the ones related to the transitivity condition, causes a grounding blow-up of the program
that makes the usage of plain ASP not viable. For this reason, we implemented a
propagator in WASP that checks whenever a transitivity violation is detected in an answer set
candidate and then instantiates the constraints related to transitivity lazily, so to avoid
the grounding blow-up. Preliminary results on real-world instances are encouraging:
the performance of the propagator is better than approaches based on plain ASP on two
out of three objective functions.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Preliminaries</title>
      <p>In this section we briefly recall the Answer Set Programming (ASP) language and
contemporary solving techniques.
2.1</p>
      <p>
        Syntax and Semantics
Let A be a fixed, countable set of propositional atoms including⊥. A literal ` is either
an atom a, or an atom preceded by the negation as failure symbol ∼. The complement of
` is denoted by `, where a = ∼a and ∼a = a for an atom a. For a set L of literals, L :=
{` | ` ∈ L}, L+ := L∩A, and L− := L∩A. A program Π is a finite set of rules. A rule
is an implication a ← l1, . . . , ln, where a is an atom, and l1, . . . , ln are literals, n ≥ 0.
For a rule r, H (r) = {a} is called the head of r and B(r) = {l1, . . . , ln} is called the
body of r. A rule r is a fact if B(r) = ∅, and is a constraint if H (r) = {⊥}. A (partial)
interpretation is a set of literals I containing ∼⊥. I is inconsistent if I + ∩ I − 6= ∅,
otherwise I is consistent. I is total if I + ∪ I − = A. Given an interpretation I , a literal
` is true if ` ∈ I ; is false if ` ∈ I , and is undefined otherwise. An interpretation I
satisfies a rule r if I ∩ (H (r) ∪ B(r)) 6= ∅. Let Π be a program, a model I of Π is a
consistent and total interpretation that satisfies all rules inΠ . The reduct of Π w.r.t. I is
the program Π I obtained from Π by (i) deleting all rules r having B(r)− ∩ I 6= ∅, and
(ii) deleting the negative body from the remaining rules [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. A model I of a program
Π is an answer set if there is no model J of Π I such that J + ⊂ I +. A program Π is
coherent if it admits answer sets, otherwise it is incoherent.
      </p>
      <p>
        Algorithm 1: ComputeAnswerSet
The computation of answer sets can be carried out by employing an extended version
of the Conflict-Driven Clause Learning (CDCL) algorithm, introduced for SAT
solving [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], and reported here as Algorithm 1. The algorithm takes as input a program Π,
and produces as output an answer set if Π is consistent, ⊥ otherwise.
      </p>
      <p>
        The computation starts by applying polynomial simplifications to strengthen and/or
remove redundant rules on the lines of methods employed by SAT solvers [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. After
the simplifications step, the backtracking search starts. First,I is extended with all the
literals that can be deterministically inferred by applying some inference rule
(propagation step, line 4). Three cases are possible after a propagation step is completed: (i) I
is consistent but not total. In that case, an undefined literal` (called branching literal) is
chosen according to some heuristic criterion (line 14), and is added to I. Subsequently,
a propagation step is performed that infers the consequences of this choice. (ii) I is
inconsistent, thus there is a conflict, and I is analyzed. The reason of the conflict is
modeled by a fresh constraint r that is added to Π (learning, line 7). Moreover, the
algorithm backtracks (i.e. choices and their consequences are undone) until the
consistency of I is restored (line 6). The algorithm then propagates inferences starting from
the fresh constraint r. Otherwise, if the consistency of I cannot be restored, the
algorithm terminates returning ⊥. Finally, in case (iii) I is total, the algorithm performs
a consistency check on the interpretation I (line 10). If I is inconsistent the conflict
is analyzed as in (ii). Otherwise, the algorithm terminates returning I. This check is
required whenever the specific implementation of the CDCL algorithm lazily postpone
some propagation inference which is required to assure the consistency of I.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>External Propagators in WASP</title>
      <p>One of the key features of the algorithm for computing an answer set is the
function Propagate. The role of propagation is to extend the interpretation with the literals
that can be deterministically inferred.</p>
      <p>
        Propagation in WASP. Propagation in WASP is implemented by a set of inferences
rule, called propagators, taking in account the properties of ASP programs. In WASP,
propagators are invoked according to their priorities. Higher priority propagators are
applied by calling function Propagation that includes the main inference rule called
unit propagation. Lower priority propagators (also called post propagators) are applied
later by calling function PostPropagation. As an example, in the implementation of
WASP, PostPropagation invokes the algorithm based on source pointers for unfounded
set propagation [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
      </p>
      <p>External Propagators. The communication with external propagators follows a
synchronous message passing protocol. The protocol is implemented (as customary in
object-oriented languages) by means of method calls. Basically, an external propagator
must be compliant with a specific interface. The methods of the interface are associated
to specific events occurring during the search of an answer set. Whenever a specific
point of the computation is reached the corresponding event is triggered, i.e., a method
of the propagator is called. Some of the methods of the interface are allowed to return
values that are subsequently interpreted by WASP. Our implementation supports
propagators implemented in (i) perl and python for obtaining fast prototypes and (ii) C++
in case better performance is needed. Note that C++ implementations must be
integrated in the WASP binary at compile time, whereas perl and python can be specified
by means of text files given as parameters for WASP, thus scripting-based propagators
do not require changes and recompilation of WASP. In order to simplify the description
of the interface some technical details are omitted and we do not focus on a specific
language. The source code and the documentation are available on the branch plugins
at https://github.com/alviano/wasp.</p>
      <p>In the following, each method of the library for specifying new propagators in WASP
is described in a separate paragraph.</p>
      <p>Method getLiterals(). This method is invoked at the beginning of the computation and
it returns a list of literals L. Intuitively, literals in L are associated to the propagator,
that is all changes of the truth values of literals in L will be notified to the propagator
during search. Otherwise, literals that are not in L are ignored.</p>
      <p>Method simplifyAtLevelZero(). This method is invoked before starting the search (line
3 of Algorithm 1) and returns a list of literals that have been identified to be true in all
answer sets of the input program.</p>
      <p>Method onLiteralTrue(`). This method is invoked by the function P ropagation (line 1
of function Propagate) whenever a literal ` is inferred as true. The method returns a list
of literals to infer as true.</p>
      <p>Method onLiteralsTrue(L). This method is invoked by the function P ostP ropagation
(line 2 of function Propagate) and notifies that all literals in L became true. As the
previous method, it returns a list of literals to infer as true.</p>
      <p>Method getReasonForLiteral(`). This method is invoked for each literal ` inferred as
true by method onLiteralTrue (onLiteralsTrue) and returns a constraint modeling the
reason for the assignment of `. This reason might be used during the search if the literal
` is involved in a conflict.</p>
      <p>Method onLiteralsUndefined( L). This method is invoked when some of the literals
previously notified as true become again undefined (e.g. after an unroll or a restart).
Method checkAnswerSet(I). This method is invoked after an answer set candidate I
is found (line 10 of Algorithm 1). The role of the method is to check whether the
answer set is consistent with respect to the propagator. Therefore, it returns true if I is
consistent, and false otherwise.</p>
      <p>Method getReasonsForCheckFailure(). This method returns a list of constraints
modeling the reasons for the failure triggered by the method checkAnswerSet (line 7 of
Algorithm 1).
4</p>
    </sec>
    <sec id="sec-4">
      <title>Preliminary Experiment</title>
      <p>
        In this section we report on an experiment on a recently-proposed application of Answer
Set Programming to abduction in Natural Language Understanding (NLU).
Case study. Abduction is a popular formalism for NLU, and we here consider a
benchmark for first order Horn abduction under preference relations of cardinality minimality,
coherence [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], and Weighted Abduction [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. For example given the text “Mary lost
her father. She is depressed.” using appropriate background knowledge and reasoning
formalism we can obtain the interpretation of the sentence that Mary is depressed
because of the death of her father.
      </p>
      <p>
        ASP formulations for the above NLU tasks under different objective functions
(optimization criteria) were described in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. The prevalent evaluation strategy adopted by
state of the art ASP systems, which is carried out by successively performing grounding
(i.e., variable elimination) and solving (i.e., search for the answer sets of a propositional
program), resulted to be not effective on large instances. This is due to the grounding
blow-up caused by the following constraint which has O(n3) ground instances.
      </p>
      <p>← eq (A, B ), eq (B , C ), ∼eq (A, C ).</p>
      <p>
        Results. Table 1 shows preliminary experiments with the WASP solver on the Bwd-A
encoding for first order Horn abduction from [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. We show accumulated results for 50
natural language understanding instances from [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] for objective functions cardinality
minimality, coherence [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], and Weighted Abduction [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ].3
      </p>
      <p>We compare two evaluation methods: Constraint instantiates all constraints during
the initial grounding step and sends them to the solver, while Propagator omits a
significant portion of constraints (those related to transitivity) from the initial grounding and
instantiates them lazily in a new propagator whenever a transitivity violation is detected
in an answer set candidate. The external propagator was implemented in python by
providing functions checkAswerSet() and getReasonForCheckFailure(). Function
getLiterals() was implemented by returning all literals whose predicate name was eq with arity
2. From a technical point of view, WASP uses internal integers to identify the literals
in the program. The mapping from the symbolic representation of input atoms to the
internal identifiers is done using the so calledsymbol table, which is provided as input
to the propagator before all methods.</p>
      <p>We observe that for all objective functions, there are out-of-memory conditions for
6 instances (maximum memory was 5 GB) while memory is not exhausted with
propagators, and average memory usage is significantly lower with propagators (1.7 GB
vs. around 150 MB). For cardinality minimality, the average time to find the optimal
solution decreases sharply from 76 sec to 8 sec and we find optimal solutions for all
instances. For coherence we can solve more instances optimally however the required
time increases from 64 sec to 103 sec on average and 4 instances reach the timeout (600
sec). For Weighted Abduction, which represents the most complex optimization
criterion, we solve fewer instances (37) compared with using pre-instantiated constraints
(44 instances).</p>
      <p>Propagators can clearly be used to trade space for time, and in some cases we
decrease both space and time usage. For the complex Weighted Abduction objective
functions, we can observe in the Odc column that many more invalid answer sets (2067)
were rejected by the propagators compared with cardinality minimality (70) or
coherence (751).
5</p>
    </sec>
    <sec id="sec-5">
      <title>Related Work</title>
      <p>
        The extension of CDCL solvers with propagators is at the basis of Satisfiability Modulo
Theories (SMT) solvers [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. These have been proved to be an effective extension of
SAT solvers that extends the capability of a mature solving technology [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Similar
extensions have been envisaged also for ASP [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. Other extensions of ASP such as
CASP [20] have been implemented by adding propagators to CDCL solvers [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
      <p>
        The extension of WASP presented in this paper can serve as a platform for
implementing such language extensions. Indeed, new propagators can be added to implement
specific constraints (such asacyclicity constraints [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]), ASP modulo theories [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] and
CASP [20], and can be also used for boosting the performance of WASP on specific
benchmarks.
      </p>
      <p>An extension similar to the one presented in this paper has been implemented in
solvers by the Potassco group. The ASP solver CLASP [21] provides a C++ interface
3 Encodings and WASP plugin source code is available in tag rcra2016-wasp-prop of
repository https://bitbucket.org/knowlp/asp-fo-abduction .</p>
      <p>Method
Cardinality Minimality
Coherence
Weighted Abduction</p>
      <p>Constraint
Propagator
Constraint
Propagator
Constraint
Propagator</p>
      <p>MO
#
for post-propagation, where it is possible to invalidate an answer set candidate. The
interface for defining new propagators is conceptually equivalent to the one presented
in Section 3. However, at the moment CLASP does not support any external python
(or perl) API to specify new propagators. A python library is currently supported by
CLINGO [22]. First versions of the API supported by CLINGO (up to version 4) [22]
have no concept of post propagators but only support the function onModel, which
is called whenever an answer set is found. This interface does not behave well when
used together with optimization, because rejecting an answer set does not prevent it to
be used as a new bound. This limitation prompted the development of “workaround”
Algorithm 2 [14, Section 11]. In this work we can realize the on-demand constraints
without any workarounds for optimization. The version 5 of CLINGO [23] supports also
a similar API to define external propagation using scripting languages.
6</p>
    </sec>
    <sec id="sec-6">
      <title>Conclusion and Ongoing Work</title>
      <p>
        In this paper, we preliminary report on a new library for embedding new external
propagators into the ASP solver WASP. Our proposal has been assessed on a recent application
of ASP to abduction in Natural Language Understanding [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] showing encouraging
preliminary results. Our current prototype implementation only checks when a full answer
set candidate has been found, while most violated constraints could also be detected
based on a partial interpretations. Thus, we are implementing a propagator that can take
more advantage from the interface of WASP by working on partial interpretations (this
will require to use onLiteralTrue() or onLiteralsTrue() functions). We also plan to
experiment with the optimal frequency of propagation, which is known to play a role in
similar implementations for robotics planning. Moreover, our current prototype is able
to learn only one single constraint per invalidated answer set, however one answer set
might contain several violations of not instantiated constraints (the CLINGO-based
engine in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] can learn constraints for all violations and performs better than the current
prototype). Adding all these at once might improve the performance of the solver to
find an optimal solution.
      </p>
    </sec>
    <sec id="sec-7">
      <title>Acknowledgements</title>
      <p>We thank the anonymous reviewers for their detailed and useful comments. This work
has been supported by The Scientific and Technological Research Council of Turkey
(TUBITAK) Grant 114E777 and by MISE under project “PIUCultura”, N.
F/020016/0102/X27.
20. Baselice, S., Bonatti, P.A., Gelfond, M.: Towards an integration of answer set and constraint
solving. In: ICLP. Volume 3668 of LNCS., Springer (2005) 52–66
21. Gebser, M., Kaminski, R., Kaufmann, B., Romero, J., Schaub, T.: Progress in clasp Series
3. In: LPNMR. Volume 9345. (2015) 368–383
22. Gebser, M., Kaminski, R., Obermeier, P., Schaub, T.: Ricochet robots reloaded: A case-study
in multi-shot ASP solving. In: Advances in Knowledge Representation, Logic Programming,
and Abstract Argumentation. Volume 9060 of LNCS., Springer (2015) 17–32
23. Gebser, M., Kaminski, R., Kaufmann, B., Ostrowski, M., Schaub, T., Wanko, P.: Theory
solving made easy with clingo 5. In: ICLP (Technical Comm.). LIPIcs. (2016) To appear.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Gelfond</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lifschitz</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Classical negation in logic programs</article-title>
          and disjunctive databases.
          <source>New Generation Comput</source>
          .
          <volume>9</volume>
          (
          <issue>3</issue>
          /4) (
          <year>1991</year>
          )
          <fpage>365</fpage>
          -
          <lpage>386</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Erdem</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Patoglu</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Saribatur</surname>
            ,
            <given-names>Z.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schüller</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Uras</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Finding optimal plans for multiple teams of robots through a mediator: A logic-based approach</article-title>
          .
          <source>TPLP</source>
          <volume>13</volume>
          (
          <issue>4-5</issue>
          ) (
          <year>2013</year>
          )
          <fpage>831</fpage>
          -
          <lpage>846</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Erdem</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Öztok</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          :
          <article-title>Generating explanations for biomedical queries</article-title>
          .
          <source>TPLP</source>
          <volume>15</volume>
          (
          <issue>1</issue>
          ) (
          <year>2015</year>
          )
          <fpage>35</fpage>
          -
          <lpage>78</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Dodaro</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nardi</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leone</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ricca</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Allotment problem in travel industry: A solution based on ASP</article-title>
          .
          <source>In: RR</source>
          . Volume
          <volume>9209</volume>
          of LNCS., Springer (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Manna</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ricca</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Terracina</surname>
          </string-name>
          , G.:
          <article-title>Taming primary key violations to query large inconsistent data via ASP</article-title>
          .
          <source>TPLP</source>
          <volume>15</volume>
          (
          <issue>4-5</issue>
          ) (
          <year>2015</year>
          )
          <fpage>696</fpage>
          -
          <lpage>710</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Alviano</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dodaro</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leone</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ricca</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Advances in WASP</article-title>
          . In: LPNMR. Volume
          <volume>9345</volume>
          of LNCS., Springer (
          <year>2015</year>
          )
          <fpage>40</fpage>
          -
          <lpage>54</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Gebser</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kaminski</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>König</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schaub</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Advances in gringo series 3</article-title>
          . In: LPNMR. Volume
          <volume>6645</volume>
          of LNCS., Springer (
          <year>2011</year>
          )
          <fpage>345</fpage>
          -
          <lpage>351</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Eén</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sörensson</surname>
            ,
            <given-names>N.:</given-names>
          </string-name>
          <article-title>An extensible SAT-solver</article-title>
          .
          <source>In: SAT</source>
          . Volume
          <volume>2919</volume>
          of LNCS., Springer (
          <year>2003</year>
          )
          <fpage>502</fpage>
          -
          <lpage>518</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Faber</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pfeifer</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leone</surname>
          </string-name>
          , N.:
          <article-title>Semantics and complexity of recursive aggregates in answer set programming</article-title>
          .
          <source>Artif. Intell</source>
          .
          <volume>175</volume>
          (
          <issue>1</issue>
          ) (
          <year>2011</year>
          )
          <fpage>278</fpage>
          -
          <lpage>298</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Bomanson</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gebser</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Janhunen</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kaufmann</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schaub</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Answer set programming modulo acyclicity</article-title>
          .
          <source>In: LPNMR</source>
          . Volume
          <volume>9345</volume>
          of LNCS., Springer (
          <year>2015</year>
          )
          <fpage>143</fpage>
          -
          <lpage>150</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Ostrowski</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schaub</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>ASP modulo CSP: the clingcon system</article-title>
          .
          <source>TPLP</source>
          <volume>12</volume>
          (
          <issue>4-5</issue>
          ) (
          <year>2012</year>
          )
          <fpage>485</fpage>
          -
          <lpage>503</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Janhunen</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tasharrofi</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ternovska</surname>
          </string-name>
          , E.:
          <article-title>SAT-to-SAT: Declarative Extension of SAT Solvers with New Propagators</article-title>
          . In: AAAI, AAAI Press (
          <year>2016</year>
          )
          <fpage>978</fpage>
          -
          <lpage>984</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Alviano</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dodaro</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Faber</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leone</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ricca</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>WASP: A native ASP solver based on constraint learning</article-title>
          .
          <source>In: LPNMR</source>
          . Volume
          <volume>8148</volume>
          of LNCS., Springer (
          <year>2013</year>
          )
          <fpage>54</fpage>
          -
          <lpage>66</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Schüller</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Modeling Variations of First-Order Horn Abduction in Answer Set Programming</article-title>
          .
          <source>Fundamenta Informaticae</source>
          (
          <year>2016</year>
          ) To appear, arXiv:
          <fpage>1512</fpage>
          .08899 [cs.
          <source>AI].</source>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Simons</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Niemelä</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Soininen</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Extending and implementing the stable model semantics</article-title>
          .
          <source>Artif. Intell</source>
          .
          <volume>138</volume>
          (
          <issue>1-2</issue>
          ) (
          <year>2002</year>
          )
          <fpage>181</fpage>
          -
          <lpage>234</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Ng</surname>
            ,
            <given-names>H.T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mooney</surname>
          </string-name>
          , R.J.:
          <article-title>Abductive Plan Recognition and Diagnosis: A Comprehensive Empirical Evaluation</article-title>
          .
          <source>In: Knowledge Representation and Reasoning</source>
          . (
          <year>1992</year>
          )
          <fpage>499</fpage>
          -
          <lpage>508</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Hobbs</surname>
            ,
            <given-names>J.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stickel</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Martin</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Edwards</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Interpretation as Abduction</article-title>
          .
          <source>Artif. Intell</source>
          .
          <volume>63</volume>
          (
          <issue>1-2</issue>
          ) (
          <year>1993</year>
          )
          <fpage>69</fpage>
          -
          <lpage>142</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Nieuwenhuis</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Oliveras</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tinelli</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Solving</surname>
            <given-names>SAT</given-names>
          </string-name>
          and
          <article-title>SAT modulo theories: From an abstract davis-putnam-logemann-loveland procedure to dpll(T)</article-title>
          .
          <source>J. ACM</source>
          <volume>53</volume>
          (
          <issue>6</issue>
          ) (
          <year>2006</year>
          )
          <fpage>937</fpage>
          -
          <lpage>977</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Bartholomew</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>Functional stable model semantics and answer set programming modulo theories</article-title>
          .
          <source>In: IJCAI, IJCAI/AAAI</source>
          (
          <year>2013</year>
          )
          <fpage>718</fpage>
          -
          <lpage>724</lpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>