<!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>JWASP: A New Java-Based ASP Solver</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Mario Alviano</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Carmine Dodaro</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Francesco Ricca</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Mathematics and Computer Science, University of Calabria</institution>
          ,
          <addr-line>87036 Rende (CS)</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <fpage>16</fpage>
      <lpage>23</lpage>
      <abstract>
        <p>Answer Set Programming (ASP) is a well-known declarative programming language for knowledge representation and non-monotonic reasoning. ASP solvers are usually written in C/C++ with the aim of extremely optimizing their performance. Indeed, C/C++ allow for several low level optimizations, which however come at the price of a less portable implementation. This is a problem for some real world use cases which do not actually require an extremely efficient computation, but would benefit from a platform-independent and easilydeployable implementation. Motivated by such use cases, we develop JWASP, a new ASP solver written in Java and extending the open source library SAT4J in order to process ASP programs with atomic heads. We also report on a preliminary experiment assessing the performance of JWASP, whose results are encouraging: JWASP is a good candidate as an alternative ASP solver for platform-independent applications, which cannot rely on current ASP solvers.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        Answer Set Programming (ASP) [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] is a declarative programming paradigm, which has
been proposed in the area of non-monotonic reasoning and logic programming. The idea
of ASP is to represent a given computational problem by a logic program whose answer
sets correspond to solutions, and then use a solver to find them [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. The availability of
solvers has made possible the application of ASP for solving complex problems arising
in several areas [
        <xref ref-type="bibr" rid="ref1 ref6">1, 6</xref>
        ], including AI, knowledge representation and reasoning, databases,
bioinformatics. Recently ASP has been also used to solve a number of industry-level
applications [
        <xref ref-type="bibr" rid="ref21 ref7">7, 21</xref>
        ].
      </p>
      <p>
        Answer set programming is computationally hard, and modern ASP solvers are
usually based on one of two alternative approaches. The first of these approaches consists
in implementing a native algorithm by adapting SAT solving techniques [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. In
particular, CDCL backtracking with learning, restarts, and conflict-driven heuristics is
extended with ASP-specific propagation techniques such as support inference via Clark’s
completion, and well-founded inference via source pointers [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]. The second approach
resorts on rewriting techniques into SAT formulas, which are then evaluated by an off
the shelf SAT solver [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
      </p>
      <p>
        ASP solvers, like SAT solvers, are developed having in mind the (often well-deserved)
goal of maximizing performance. For this reason, ASP solvers are usually written in
C/C++, a programming language that is suited for implementing several low level
optimizations, but at the price of a reduced portability. This is a problem for some real world
use cases which do not actually require the highest available performance in
computation, but would benefit from a platform-independent and easily-deployable
implementation. For example, the iTravel system [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] takes advantage of some ASP-based web
services implemented as Java servlets interacting with DLV [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] via the DLV
WRAPPER API [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. Usually, Java servlets are easily exportable as WAR archives, which are
then deployable to different servers by simply copying the archives. Such a simplicity
was not possible with the ASP-based web services because different versions of DLV
were required for servers running different operating systems. A similar issue also
affects the distribution of ASPIDE [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], an IDE for ASP developed in Java which must
include different versions of an ASP solver for different operating systems. An ASP
solver implemented in Java would simplify the distribution of ASPIDE, not preventing
the possibility to run other ASP solvers written in C/C++ if needed.
      </p>
      <p>
        If on the one hand Java provides all the means for implementing a
platform-independent ASP solver, on the other hand the following questions have to be answered:
How much overhead is introduced? Is the performance of an ASP solver written in Java
acceptable when compared with state of the art ASP solvers? Motivated by the needs
arising in different use cases, and in order to answer these two questions, we developed
JWASP (https://github.com/dodaro/jwasp.git), a new ASP solver
written in Java. JWASP is based on the open source library SAT4J [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. In particular, JWASP
extends SAT4J in order to process ASP programs with atomic heads.
      </p>
      <p>
        A preliminary experiment assessing the performance of JWASP has been conducted
on benchmarks from the previous ASP competitions [
        <xref ref-type="bibr" rid="ref1 ref6">1, 6</xref>
        ]. In particular, JWASP was
compared with the following state of the art ASP solvers: the native CLASP 3.1.1 [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]
and WASP [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]; the rewriting-based LP2SAT endowed by GLUCOSE [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]; and LP2SAT
endowed by SAT4J [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. The results are encouraging. In fact, even if JWASP cannot match
the performance of CLASP, which is actually expected, it can compete with a prominent
rewriting-based ASP solver using GLUCOSE. Our experiment highlights that JWASP is
a good candidate as an alternative ASP solver for platform-independent applications,
where conventional solvers cannot be used or might not be comfortably integrated.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Preliminaries</title>
      <p>Syntax and semantics of propositional logic and propositional ASP are briefly
introduced in this section.
2.1</p>
      <sec id="sec-2-1">
        <title>Propositional Logic</title>
        <p>Syntax. Let A be a fixed, countable set of (Boolean) variables, or (propositional) atoms,
including ⊥. A literal ℓ is either an atom a, or its negation ¬ a. A clause is a set of
literals representing a disjunction, and a propositional formula ϕ is a set of clauses
representing a conjunction, i.e., only formulas in conjunctive normal form (CNF) are
considered here.</p>
        <p>Semantics. An interpretation I is a set of literals over atoms in A \ {⊥} . Intuitively,
literals in I are true, literals whose complement is in I are false and the remaining literals
are undefined. An interpretation I is total if there are no undefined literals, otherwise
I is partial. An interpretation I is inconsistent if for an atom a both a and ¬ a are in I.
Relation | = is inductively defined as follows: for a ∈ A, I | = a if a ∈ I, and I | = ¬ a
if ¬ a ∈ I; for a clause c, I | = c if I | = ℓ for some ℓ ∈ c; for a formula ϕ, I | = ϕ if
I | = c for all c ∈ ϕ. If I | = ϕ then I is a model of ϕ, I satisfies ϕ, and ϕ is true w.r.t.
I. If I 6| = ϕ then I is not a model of ϕ, I violates ϕ, and ϕ is false w.r.t. I. Similar for
literals, and clauses. A formula ϕ is satisfiable if there is an interpretation I such that
I | = ϕ; otherwise, ϕ is unsatisfiable.</p>
        <p>Example 1. Consider the following formula ϕ:
{ a, ¬ b}
{ b, ¬ a}
ϕ is satisfiable and the interpretation I = ¬{
a, ¬ b, c} is a model.
2.2</p>
      </sec>
      <sec id="sec-2-2">
        <title>Answer Set Programming</title>
        <p>Syntax. Let ∼ denote negation as failure. A ∼-literal (or just literal when clear from
the context) is either an atom (a positive literal), or an atom preceded by ∼ (a negative
literal). A logic program Π is a finite set of rules of the following form:
a ← b1, . . . , bk, ∼bk+1, . . . , ∼bm
where m ≥ 0, and a, b1, . . . , bm are atoms in A. For a rule r of the form (1), set { a} is
called head of r, and denoted H(r); conjunction b1, . . . , bm, ∼bk+1, . . . , ∼bm is named
body of r, and denoted B(r); the sets { b1, . . . , bk} and { bk+1, . . . , bm} of positive and
negative literals in B(r) are denoted B+(r) and B−(r), respectively. A constraint is a
rule r such that H(r) = {⊥} .</p>
        <p>
          Semantics. An interpretation I is a set of ∼-literals over atoms in A \ ⊥{} . Relation | =
is extended as follows: for a negative literal ∼a, I | = ∼a if ∼a ∈ I; for a conjunction
ℓ1, . . . , ℓn (n ≥ 0) of literals, I | = ℓ1, . . . , ℓn if I | = ℓi for all i ∈ [1..n]; for a rule
r, I | = r if H(r) ∩ I 6= ∅ whenever I | = B(r); for a program Π, I | = Π if I | = r
for all r ∈ Π. The definition of a stable model is based on a notion of program reduct
[
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]: Let Π be a normal logic program, and I an interpretation. The reduct of Π w.r.t.
I, denoted ΠI , is obtained from Π by deleting each rule r such that B−(r) ∩ I 6= ∅,
and removing negative literals in the remaining rules. An interpretation I is an answer
set for Π if I | = Π and there is no total interpretation J such that J ∩ A ⊂ I ∩ A and
J | = ΠI . The set of all answer sets of a program Π is denoted SM (Π). Program Π is
coherent if SM (Π) 6= ∅; otherwise, Π is incoherent.
        </p>
        <p>Example 2. Consider the following program Π:
a ← c
c ← ∼d
a ← b, ∼e
d ← ∼c
b ← a, ∼e
e ← ∼d
I = { a, ∼b, c, ∼d, e} is an answer set of Π.
preprocessing
unit propagation
[inconsistent]
analyze conflict
restore consistency
learning
backjumping
[succeed]
[fail]
INCOHERENT</p>
        <p>choose undefined literal
[learnt loop formula]
[consistent]
well founded propagation
[no undefined literals]</p>
        <p>COHERENT
In this section we first review the algorithms implemented in JWASP for the
computation of an answer set, and then we describe how these were implemented by extending
SAT4J. The presentation is properly simplified to focus on the main principles.</p>
        <p>
          Preprocessing. The first step is a preprocessing of the input program Π , that is
transformed into a propositional formula called the Clark’s completion of the program Π ,
denoted Comp(Π ). This step is performed since answer sets are supported models [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ].
A model I of a program Π is supported if each a ∈ I ∩ A is supported, i.e., there exists
a rule r ∈ Π such that H (r) = a, and B(r) ⊆ I . In more detail, given a rule r ∈ Π ,
let auxr denote a fresh atom, i.e., an atom not appearing elsewhere, the completion of
Π consists of the following clauses:
– ¬{ a, auxr1 , . . . , auxrn } for each atom a occurring in Π , where r1, . . . , rn are the
rules of Π whose head is a;
– { H (r), ¬ auxr} and { auxr} ∪ Sa∈B+(r) ¬ a ∪ Sa∈B−(r) a for each rule r ∈ Π ;
– ¬{ auxr, ℓ} for each r ∈ Π and ℓ ∈ B(r).
        </p>
        <p>
          After computing the Clark’s completion Comp(Π), the input is further simplified
applying classical preprocessing techniques of SAT solvers [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], and then the
nondeterministic search takes place.
        </p>
        <p>
          CDCL Algorithm. The main ASP solving algorithm is similar to the CDCL procedure
of SAT solvers. In the beginning a partial interpretation I is set to ∅. Function unit
propagation extends I with those literals that can be deterministically inferred. This
function returns false if an inconsistency (or conflict) is detected, true otherwise. When
an inconsistency is detected, the algorithm analyzes the inconsistent interpretation and
learns a clause using the 1-UIP learning scheme [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ]. The learned clause models the
inconsistency in order to avoid exploring the same search branch several times. Then,
the algorithm unrolls choices until consistency of I is restored, and the computation
resumes by propagating the consequences of the clause learned by the conflict analysis.
If the consistency cannot be restored, the algorithm terminates returning INCOHERENT.
When no inconsistency is detected, the well founded propagation (detailed in the
following) checks whether I is unfounded-free. In case I is not unfounded-free a clause
is added to Comp(Π) and unit propagation is invoked. If I is unfounded-free and the
interpretation I is total then the algorithm terminates returning COHERENT and I is an
answer set of Π. Otherwise, an undefined literal, say ℓ, is chosen according to some
heuristic criterion. The computation then proceeds on I ∪ { ℓ} . Unit propagation and
well founded propagation are described in more detail in the following.
Propagation rules. JWASP implements two deterministic inference rules for pruning the
search space during answer set computation. These propagation rules are named unit
and well founded. Unit propagation is applied first. It returns false if an inconsistency
arises. Otherwise, well founded propagation is applied. Well founded propagation may
learn an implicit clause in Π, in which case unit propagation is applied on the new
clause. More in details, unit propagation is as in SAT solvers: An undefined literal ℓ is
inferred by unit propagation if there is a clause c that can be satisfied only by ℓ, i.e., c
is such that ℓ ∈ c is undefined and all literals in c \ { ℓ} are false w.r.t. I. Concerning
well founded propagation, we must first introduce the notion of an unfounded set. A
set X of atoms is unfounded if for each rule r such that H(r) ∩ X 6= ∅, at least
one of the following conditions is satisfied: (i) a literal ℓ ∈ B(r) is false w.r.t. I; (ii)
B+(r) ∩ X 6= ∅. Intuitively, atoms in X can have support only by themselves. Well
founded propagation checks whether the interpretation contains an unfounded set X. In
this case, it learns a clause forcing falsity of an atom in X. Clauses for other atoms in X
will be learned on subsequent calls to the function, unless an inconsistency arises during
unit propagation. In case of inconsistencies, indeed, the unfounded set X is recomputed.
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>3.2 Implementation</title>
        <p>
          The implementation of a modern and efficient ASP solver requires the implementation
of at least three modules. The first module is the parser of a ground ASP program.
The second module computes the Clark’s completion. The third module implements
the CDCL backtracking algorithm extended by applying well founded propagation as
presented in Section 3.1. Concerning the parser, JWASP accepts as input normal ground
programs expressed in the numeric format of GRINGO [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. The Clark’s completion is
computed after the whole program has been parsed. The third module is implemented
by JWASP exploiting the open source Java library SAT4J [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. In particular, SAT4J
provides an implementation of the base CDCL algorithm. JWASP extends this algorithm
by modifying the propagate function of SAT4J, which in our solver includes the well
founded inference rule. In particular, specific data structures and the algorithm for
computing unfounded sets are introduced in JWASP which are not provided by SAT4J.
4
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Experiment</title>
      <p>
        The performance of JWASP was compared with CLASP 3.1.1 and LP2SAT [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. CLASP
is a native state of the art ASP solver, while LP2SAT is an ASP solver based on a
rewriting of the ASP program into a SAT formula that is evaluated using a SAT solver. Two
variants of LP2SAT were considered, namely LP2GLUCOSE and LP2SAT4J, which use
GLUCOSE [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] and SAT4J [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] as SAT solver, respectively. All the ASP solvers use
GRINGO [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] as grounder. The experiment concerns a comparison of the solvers on
publicly available benchmarks used in the 3rd and 4th ASP competitions [
        <xref ref-type="bibr" rid="ref1 ref6">1, 6</xref>
        ]. The
experiment was run on a four core Intel Xeon CPU X3430 2.4 GHz, with 16 GB of
physical RAM, and operating system Debian Linux. Time and memory limits were set
to 600 seconds and 15 GB, respectively. Performance was measured using the tools
pyrunlim and pyrunner (https://github.com/alviano/python).
      </p>
      <p>Table 1 summarizes the number of solved instances and the average running time
in seconds for each solver. In particular, the first column reports the considered
benchmarks; the remaining columns report the number of solved instances within the time-out
(solved), and the running time averaged over solved instances (time). The first
observation is that JWASP outperforms the rewriting-based LP2SAT4J. In fact, JWASP solved
17 more instances than LP2SAT4J and it is in general faster. The advantage of JWASP
is obtained in 3 different benchmarks, namely KnightTour, MazeGeneration, and
Numberlink, where JWASP solves 5, 7, and 3 more instances than LP2SAT4J. Once the SAT
solver backhand is replaced by GLUCOSE, a clear improvement of performance is
measured. LP2GLUCOSE is clearly faster (it solves 20 instances more) than LP2SAT4J. In
this case, since the rewriting technique is the same, the difference of performance is due
to the fact that GLUCOSE outperforms LP2SAT4J. The performance gap between C++
and Java implementations can be observed also by comparing WASP and JWASP. In
particular, WASP solves 18 more instances than JWASP. The differences are noticeable
in Labyrinth where WASP solves 9 more instances than JWASP. Similar considerations
hold by comparing CLASP and JWASP. In fact, the former is in general faster solving
24 more instances than the latter. Finally, it is important to note that JWASP is basically
comparable in performance with LP2GLUCOSE (the latter solves only 3 instances more
than the former). An in-depth analysis shows that JWASP is faster in KnightTour and
MazeGeneration solving 4 and 6 instances more than LP2GLUCOSE, respectively. On
the contrary, LP2GLUCOSE is faster than JWASP in GraphColouring, HanoiTower, and
SokobanDecision. We observe that the main advantage of JWASP over LP2GLUCOSE
is registered (as expected) in the benchmarks in which the well founded propagation
(implemented natively by JWASP) is applied, such as KnightTour and MazeGeneration.
5</p>
    </sec>
    <sec id="sec-4">
      <title>Discussion</title>
      <p>
        During recent years, ASP has obtained growing interest since efficient implementations
were available. For reason of efficiency, most of the modern ASP solver are
implemented in C++. To the best of our knowledge, the only previous Java-based ASP solver
was JSMODELS [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], which is not developed anymore. JSMODELS was based on
SMODELS featuring the DPLL algorithm and lookahead heuristics. From an abstract point of
view, JWASP is more similar to modern ASP solvers, like WASP [
        <xref ref-type="bibr" rid="ref2 ref3">2, 3</xref>
        ] and CLASP [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
In fact, all the three solvers are based on CDCL algorithm and source pointers for the
computation of unfounded sets. However, JWASP is implemented in Java and thus it is a
cross-platform and more portable implementation. An alternative to the development of
a native solver is to rewrite the input program into a CNF formula, as done by the family
of solvers LP2SAT [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. This alternative approach can be applied to obtain a Java-based
solver by endowing LP2SAT with a Java-based SAT solver such as SAT4J. This
approach is less efficient than JWASP in the experimental analysis reported in this paper. It
is worth noting that, both JWASP and LP2SAT apply the Clark’s completion [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. Thus,
the main difference between JWASP and LP2SAT4J consists of the native computation
of unfounded set of JWASP, which is obtained by using an algorithm based on source
pointers introduced by SMODELS [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ].
      </p>
      <p>
        In this paper we reported on the new Java-based ASP solver JWASP built on the
top of the SAT solver SAT4J. The new solver was compared with both C++ and
Javabased approaches. In our experiment, JWASP outperforms the Java-based alternative
LP2SAT4J, and it is competitive with LP2GLUCOSE. However, as expected, JWASP is in
general slower than the native solvers. This confirms that C++ implementations are
usually much faster than Java-based approaches as also noted in [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. Future work concerns
the extension of JWASP for handling optimization constructs and cautious reasoning.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>M.</given-names>
            <surname>Alviano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Calimeri</surname>
          </string-name>
          , G. Charwat,
          <string-name>
            <given-names>M.</given-names>
            <surname>Dao-Tran</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Dodaro</surname>
          </string-name>
          , G. Ianni,
          <string-name>
            <given-names>T.</given-names>
            <surname>Krennwallner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kronegger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Oetsch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Pfandler</surname>
          </string-name>
          , J. Pu¨hrer,
          <string-name>
            <given-names>C.</given-names>
            <surname>Redl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Ricca</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Schneider</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Schwengerer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. K.</given-names>
            <surname>Spendier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. P.</given-names>
            <surname>Wallner</surname>
          </string-name>
          , and
          <string-name>
            <surname>G. Xiao.</surname>
          </string-name>
          <article-title>The fourth answer set programming competition: Preliminary report</article-title>
          . In P. Cabalar and T. C. Son, editors,
          <source>LPNMR, LNCS</source>
          , pages
          <fpage>42</fpage>
          -
          <lpage>53</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>M.</given-names>
            <surname>Alviano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Dodaro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Faber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Leone</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Ricca</surname>
          </string-name>
          . WASP:
          <article-title>A native ASP solver based on constraint learning</article-title>
          . In P. Cabalar and T. C. Son, editors,
          <source>LPNMR</source>
          , volume
          <volume>8148</volume>
          <source>of LNCS</source>
          , pages
          <fpage>54</fpage>
          -
          <lpage>66</lpage>
          . Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>M.</given-names>
            <surname>Alviano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Dodaro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Leone</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Ricca</surname>
          </string-name>
          .
          <article-title>Advances in WASP</article-title>
          . In F. Calimeri, G. Ianni, and M. Truszczynski, editors,
          <source>LPNMR</source>
          , volume
          <volume>9345</volume>
          <source>of LNAI</source>
          , page (to appear),
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>G.</given-names>
            <surname>Audemard</surname>
          </string-name>
          and
          <string-name>
            <given-names>L.</given-names>
            <surname>Simon</surname>
          </string-name>
          .
          <article-title>Predicting learnt clauses quality in modern SAT solvers</article-title>
          . In C. Boutilier, editor,
          <source>IJCAI</source>
          , pages
          <fpage>399</fpage>
          -
          <lpage>404</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>G.</given-names>
            <surname>Brewka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Eiter</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Truszczynski</surname>
          </string-name>
          .
          <article-title>Answer set programming at a glance</article-title>
          .
          <source>Commun. ACM</source>
          ,
          <volume>54</volume>
          (
          <issue>12</issue>
          ):
          <fpage>92</fpage>
          -
          <lpage>103</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>F.</given-names>
            <surname>Calimeri</surname>
          </string-name>
          , G. Ianni, and
          <string-name>
            <given-names>F.</given-names>
            <surname>Ricca</surname>
          </string-name>
          .
          <article-title>The third open answer set programming competition</article-title>
          .
          <source>TPLP</source>
          ,
          <volume>14</volume>
          (
          <issue>1</issue>
          ):
          <fpage>117</fpage>
          -
          <lpage>135</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>C.</given-names>
            <surname>Dodaro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Nardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Leone</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Ricca</surname>
          </string-name>
          .
          <article-title>Allotment problem in travel industry: A solution based on ASP</article-title>
          . In B. ten
          <article-title>Cate and A</article-title>
          . Mileo, editors,
          <source>RR</source>
          , volume
          <volume>9209</volume>
          <source>of LNCS</source>
          . Springer,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>N.</surname>
          </string-name>
          <article-title>Ee´n and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Biere</surname>
          </string-name>
          .
          <article-title>Effective preprocessing in SAT through variable and clause elimination</article-title>
          .
          <source>In SAT</source>
          , volume
          <volume>3569</volume>
          <source>of LNCS</source>
          , pages
          <fpage>61</fpage>
          -
          <lpage>75</lpage>
          . Springer,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>O.</given-names>
            <surname>Febbraro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Reale</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Ricca</surname>
          </string-name>
          .
          <article-title>ASPIDE: integrated development environment for answer set programming</article-title>
          . In J. P. Delgrande and W. Faber, editors,
          <source>LPNMR</source>
          , volume
          <volume>6645</volume>
          <source>of LNCS</source>
          , pages
          <fpage>317</fpage>
          -
          <lpage>330</lpage>
          . Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>M. Gebser</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Kaminski</surname>
            ,
            <given-names>A</given-names>
          </string-name>
          . Ko¨nig, and
          <string-name>
            <given-names>T.</given-names>
            <surname>Schaub</surname>
          </string-name>
          .
          <source>Advances in gringo series 3</source>
          .
          <string-name>
            <surname>In</surname>
            <given-names>J. P.</given-names>
          </string-name>
          <string-name>
            <surname>Delgrande</surname>
          </string-name>
          and W. Faber, editors,
          <source>LPNMR</source>
          , volume
          <volume>6645</volume>
          <source>of LNCS</source>
          , pages
          <fpage>345</fpage>
          -
          <lpage>351</lpage>
          . Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>M. Gebser</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Kaufmann</surname>
            , and
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Schaub</surname>
          </string-name>
          .
          <article-title>Conflict-driven answer set solving: From theory to practice</article-title>
          . Artif. Intell.,
          <volume>187</volume>
          :
          <fpage>52</fpage>
          -
          <lpage>89</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>M.</given-names>
            <surname>Gelfond</surname>
          </string-name>
          and
          <string-name>
            <given-names>V.</given-names>
            <surname>Lifschitz</surname>
          </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):
          <fpage>365</fpage>
          -
          <lpage>386</lpage>
          ,
          <year>1991</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>T.</given-names>
            <surname>Janhunen.</surname>
          </string-name>
          <article-title>Some (in)translatability results for normal logic programs and propositional theories</article-title>
          .
          <source>Journal of Applied Non-Classical Logics</source>
          ,
          <volume>16</volume>
          (
          <issue>1-2</issue>
          ):
          <fpage>35</fpage>
          -
          <lpage>86</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>H. V.</given-names>
            <surname>Le</surname>
          </string-name>
          and
          <string-name>
            <given-names>E.</given-names>
            <surname>Pontelli</surname>
          </string-name>
          .
          <article-title>A Java Based Solver for Answer Set Programming</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>D. Le Berre</surname>
            and
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Parrain</surname>
          </string-name>
          .
          <article-title>The sat4j library, release 2.2</article-title>
          . JSAT,
          <volume>7</volume>
          (
          <issue>2</issue>
          -3):
          <fpage>59</fpage>
          -
          <lpage>6</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>N.</given-names>
            <surname>Leone</surname>
          </string-name>
          , G. Pfeifer,
          <string-name>
            <given-names>W.</given-names>
            <surname>Faber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Eiter</surname>
          </string-name>
          , G. Gottlob,
          <string-name>
            <given-names>S.</given-names>
            <surname>Perri</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Scarcello</surname>
          </string-name>
          .
          <article-title>The DLV system for knowledge representation and reasoning</article-title>
          .
          <source>ACM TOCL</source>
          ,
          <volume>7</volume>
          (
          <issue>3</issue>
          ):
          <fpage>499</fpage>
          -
          <lpage>562</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>F.</given-names>
            <surname>Lin</surname>
          </string-name>
          and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Zhao</surname>
          </string-name>
          .
          <article-title>ASSAT: computing answer sets of a logic program by SAT solvers</article-title>
          . Artif. Intell.,
          <volume>157</volume>
          (
          <issue>1-2</issue>
          ):
          <fpage>115</fpage>
          -
          <lpage>137</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>M. W. Moskewicz</surname>
            ,
            <given-names>C. F.</given-names>
          </string-name>
          <string-name>
            <surname>Madigan</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          <string-name>
            <surname>Zhao</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <string-name>
            <surname>Zhang</surname>
            , and
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Malik</surname>
          </string-name>
          . Chaff:
          <article-title>Engineering an efficient SAT solver</article-title>
          .
          <source>In DAC</source>
          , pages
          <fpage>530</fpage>
          -
          <lpage>535</lpage>
          . ACM,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>F.</given-names>
            <surname>Ricca</surname>
          </string-name>
          .
          <article-title>The DLV java wrapper</article-title>
          . In F. Buccafurri, editor,
          <source>AGP</source>
          , pages
          <fpage>263</fpage>
          -
          <lpage>274</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>F.</given-names>
            <surname>Ricca</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Dimasi</surname>
          </string-name>
          , G. Grasso,
          <string-name>
            <given-names>S. M.</given-names>
            <surname>Ielpa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Iiritano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Manna</surname>
          </string-name>
          , and
          <string-name>
            <given-names>N.</given-names>
            <surname>Leone</surname>
          </string-name>
          .
          <article-title>A logicbased system for e-tourism</article-title>
          .
          <source>Fundam</source>
          . Inform.,
          <volume>105</volume>
          (
          <issue>1-2</issue>
          ):
          <fpage>35</fpage>
          -
          <lpage>55</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <given-names>F.</given-names>
            <surname>Ricca</surname>
          </string-name>
          , G. Grasso,
          <string-name>
            <given-names>M.</given-names>
            <surname>Alviano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Manna</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Lio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Iiritano</surname>
          </string-name>
          , and
          <string-name>
            <given-names>N.</given-names>
            <surname>Leone</surname>
          </string-name>
          .
          <article-title>Team-building with answer set programming in the gioia-tauro seaport</article-title>
          .
          <source>TPLP</source>
          ,
          <volume>12</volume>
          (
          <issue>3</issue>
          ):
          <fpage>361</fpage>
          -
          <lpage>381</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>J. P. M. Silva</surname>
            and
            <given-names>K. A.</given-names>
          </string-name>
          <string-name>
            <surname>Sakallah. GRASP</surname>
          </string-name>
          :
          <article-title>A search algorithm for propositional satisfiability</article-title>
          .
          <source>IEEE Trans. Computers</source>
          ,
          <volume>48</volume>
          (
          <issue>5</issue>
          ):
          <fpage>506</fpage>
          -
          <lpage>521</lpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>P.</given-names>
            <surname>Simons</surname>
          </string-name>
          , I. Niemela¨, and
          <string-name>
            <given-names>T.</given-names>
            <surname>Soininen</surname>
          </string-name>
          .
          <article-title>Extending and implementing the stable model semantics</article-title>
          .
          <source>Artif</source>
          . Intell.,
          <volume>138</volume>
          (
          <issue>1-2</issue>
          ):
          <fpage>181</fpage>
          -
          <lpage>234</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>