You are on page 1of 6

NavAS: Navigation Approaches for Answer Sets

Asmaa Afeefi
Department of Computer Engineering
An-Najah National University
Nablus, Palestine
asmaafeefy@najah.edu

Abstract—Answer set programming (ASP) is one of the most diverse/similar solutions, and faceted browsing. The intuition
popular modeling languages in knowledge representation. In behind these navigation methods is to make the search faster
recent years, many integrated development environments (IDE) and explore information that is related to the user’s query.
for ASP programs including editors and debuggers are developed.
However, none of them focuses on analyzing the answer sets. With
II. R ELATED W ORK
the availability of a huge number of answer sets, it is increasingly
important to provide a solution to navigate them. In this paper, Analysis of answer-set programming (ASP) is one wide
we study and analyze the answer sets to perform user access to field that is increasingly growing in the last few years. At
specific answers. To this end, we aim at conducting and exploring
different navigation approaches, such as, filtering, sorting, finding
first, different tools for developing ASP programs have been
diverse/similar solutions, and faceted browsing. Afterward, we proposed including editors and debuggers. In [1], Sureshkumar
implement a tool performing the above approaches in order to et al. implemented an Integrated Development Environment
simplify the search task. We conclude by testing the performance (IDE) for ASP, the AnsProlog* Programming Environment
of the proposed tool into a real world example of ASP programs. (APE). It offers many features, like syntax highlighting, au-
Index Terms—Answer set programming, navigation ap-
tomatic syntax checking, integration of editor; LPARSE and
proaches, filtering, soring, diversity, similarity SMODELs, and display dependency graph of program.
Other IDEs for ASP have been developed in the last few
I. I NTRODUCTION years. Febbraro et al. presented in [14] ASPIDE which is a
comprehensive IDE for ASP. It integrates composition fea-
Answer set programming (ASP) [2] is a fully declarative
tures, like dynamic syntax highlighting, on-line syntax correc-
programming paradigm, rooted in logic programming and non-
tion, autocompletion, code-templates, quick-fixes, refactoring,
monotonic reasoning. The main idea of answer set program-
etc. ASPIDE has more features than APE such as visual
ming is to represent a problem at hand by a logic program,
editor, integration with databases, and user friendly result
such that its answer sets correspond to solutions. These solu-
visualization.
tions characterize the solutions of the original problem, and
Koziarkiewics implemented iGROM4 which is an IDE for
then, use an asnwer set solver to find such solutions [12]. In
ASP programs specifically those written in DLV (and its
the last few years, many solvers are developed, such as, Clasp
frontends) and Smodels. It provides some features, such as,
(in conjunction with Gringo) [8], [9], DLV [11], Clingo1 [7],
syntax highlighting for DLV and its dialects, error detection
and SMODELS2 [13].
for DLV and dialects.
On one hand, the researchers have turned their attention to
Recently, Oetsch et al. in [4] designed an IDE for ASP
develop different integrated development environment (IDE)
(SeaLion) as a plug-in for Eclipse platform. This tool provides
for ASP programs including editors and debuggers (e.g.,
source-code editors for the languages of Gringo and DLV. It
APE [1], iGROM3 , and SeaLion [4]). On the other hand, some
offers functionalities, like syntax highlighting, syntax check-
of them have developed tools to visualize the answer sets and
ing, code completion, visual program outline, and refactoring
their relations by means of a directed graph, such as, ARVi
functionality.
tool [3].
Despite these improvements, there is a lack attention to ana- Another tool for visualizing the answer sets is ASPViz.
lyze the answer sets themselves. In some particular problems, Cliffe et al. [5] introduced a graphical representation tool
a massive amount of answer sets could be available. However, that enables the users and ASP programmers to visualize
the user is not interested in all of them. Thus, a navigation answer sets using the declarative nature of ASP itself to
of the search space could be a solution to help the user to produce graphical representation of solutions. Unfortunately,
access the specific answer sets. To this end, we are looking into this approach will not always be successful, because only some
different navigation methods, such as, filtering, sorting, finding programs have a natural graphical representation.
Eiter et al. in [6] introduced offline and online methods
1 http://sourceforge.net/projects/potassco/files/clingo/ to find similar or diverse solutions of a given problem in
2 http://www.tcs.hut.fi/Software/smodels/
3 http://igrom.sourceforge.net/ 4 http://igrom.sourceforge.net/
answer set programming in phylogeny reconstruction. They 1) Cardinality: The answer sets are sorted according to the
study two kinds of computational problems related to finding length of each answer set. In other words, the number of atoms
similar/diverse solutions of a given problem, in the context of of each answer set is considered. We use here the ascending
ASP: one problem asks for a set of n solutions that are k- order.
similar (resp. k-diverse), the other one asks for a solution that
Definition III.1 (Cardinality Ordering). A cardinality order-
is k-close (k-distant) to a given set of solutions.
ing of a relation R between two answer sets A1 and A2 ,
As discussed above, some approaches are much more fo-
denoted by ≺CR , is a total ordering of the length (l) of each
cused on editing and debugging ASP programs. Others are
answer set such that
developed for a certain problem. To the best of our knowledge
there does not exist a tool yet that is capable of navigating the A1 ≺CR A2 iff l (A1 ) ≤ l (A2 )
space of answer sets for general problems.
where l in l (A1 ) and l (A2 ) is the function that computes the
number of ground instances in A1 and A2 , respectively. The
III. M ETHODS FOR NAVIGATING THE S PACE OF A NSWER
cardinality ordering for a specific atom in the answer sets is
S ETS
expressed by
In some particular problems, an enormous number of answer A1 ≺CRp A2 iff nc(pA1 ) ≤ nc(pA2 )
sets could be available. However, the user is not interested in
all of them. Thus, we are looking into different navigation where nc is the function to compute the number of occurrences
methods, such as, filtering, sorting, finding diverse/similar of predicate p in A1 and A2 .
solutions, and faceted browsing.
In fact, we need to provide a powerful tool that meets the
user requirements. To this end, we classify the sorting into
A. Filtering two options:
Filtering the answer sets according to their atoms is display- • General: sorting the answer sets without any restrictions.
ing only the answer sets with the atoms that the user wants to • Specific: sorting the answer sets depending on a specific
see. The user can view the answer sets with the existence or predicate.
absence of a specific atom. A filter allows the user to do so 2) Alphabetically:
quickly and easily.
Definition III.2 (Alphabetical Ordering). Let p(x) and q(y)
be elements (ground instances) of the answer set A. The pred-
B. Sorting
icates p and q are sequences of letters, such as, p = {a1 , ...an }
Arranging the data in ordered sequences (ordered sets) is a and q = {b1 , ...bm }. An alphabetical ordering of the elements
common approach in many applications. Sorting arranges the of A, denoted by ≺AR , is a total ordering of the elements of
data alphabetically or numerically in ascending or descending A, such that
order. The details about the ordered sets basics are indicated
in [15]. p(x) ≺AR q(y) iff ∃i ∈ N : ai 6= bi
Ordering the answer sets depends on the structure of how
Also, x and y are sequences of letters. To clarify, p appears
the atoms are built-in. Therefore, the sorting might arrange the
before q iff at the first index i where ai and bi differ, ai comes
atoms of the answer set itself, or arrange the whole answer sets
before bi in the alphabet. We summarize the alphabetical
according to the common features between them. We consider
ordering of the elements of A (≺AR ) as follows
the sorting of the answer sets in our work. The following kinds (
of sorting are: x ≺AR y if p = q
• Cardinality. This allows the user to sort the answer sets p ≺AR q otherwise
according to the length of each answer set (number of
ground atoms). Similarly as in sorting by cardinality, the user has two
• Alphabetically. The user can quickly and easily sort the options to order the answer sets alphabetically.
answer set itself alphabetically. Indeed, in this case, an 3) Arity:
alphabetical order is a good choice for navigating the Definition III.3 (Arity Ordering). Let p(x) and q(y) be
ground atoms within an answer set. elements (ground instances) of the answer set A. An arity
• Arity. We take into account a common structure of the ordering of the elements of A, denoted by ≺T R , is a total
answer sets to navigate them. Basically, the answer set ordering of the elements of A, such that
composed of predicates with different arity. Therefore, we
sort the ground atoms within an answer set corresponding p(x) ≺T R q(y) iff arity(p) ≤ arity(q).
to their arity. where x has a number of arguments n and y has a number
In the following, we describe in more details the above of arguments m, n, m ∈ N. The function arity computes the
mentioned types of sorting. number of arguments in x and y.
To clarify, the answer set starting with constant (const) -if a) Case 1 (n k-Diverse Answer Sets (resp., n k-Similar
there is a constant- and ending with the predicate (p) which Answer Sets)):
has the maximum number of arguments. To put it in another
Instance. Given a complete graph K = hS, Ei whose nodes
way:
S ≈c AS (answer sets) of an ASP program P where E ⊆
const p1 (a) p2 (b, c) p3 (d, e, f ) ... S × S, two non-negative integers n and k, and a relational
Likewise in the alphabetical ordering, there are two options to operator op with op ∈ {<, >, =, ≤, or ≥}.
order the answer sets by arity; general, and specific. Question. Does there exist a set S1 with the cardi-
nality |S1 | ≤ n where a complete subgraph (clique)
C. Computing Similar/Diverse Solutions K ↓S1 := (S1 , E1 ⊆ S1 × S1 ), E1 ⊆ E and S1 ⊆ S, and
It is worth finding solutions which are similar/diverse to the distance of the set S1 , denoted by ds (S1 ), is the distance
each other. Towards this goal, we study finding similar/diverse between each pair of its elements such that
solutions in answer set programming.The computation of
similar and diverse solutions is symmetric. Thus, we focus ds (S1 ) op k iff ∀si , sj ∈ S1 d(si , sj ) op k
on finding the diverse solutions. This section introduces a where 1 ≤ i, j ≤ n.
preprocessing and so-called interactive methods to compute
the diversity of solutions. As an illustration, given a complete undirected graph K
1) Preprocessing: In the preprocessing method, we com- whose nodes are the answer sets and the edges are labeled by
pute all the answer sets of an ASP program by running an ASP the distance between pairs of nodes.
solver. From the set of all ground atoms, we can check whether
it is in the answer set or not in order to build the boolean Algorithm 1: IMCase1
vector for computing distance purpose. We build a complete Input: A complete graph K = hS, Ei.
undirected graph K = hS, Ei whose nodes S correspond to 1 Two non-negative integers n and k.
the answer sets AS and edges E = {{si , sj } | ∀si , sj ∈ 2 A relational opertor op is one of {=, <, >, ≤, ≥}.
S, si 6= sj } are labeled by a function L : e → N that Output: A set S1 of at most n answer sets whose
maps each e ∈ E to a natural number (the distance), such distance is ds (S1 ) op k.
that, L({si , sj }) = d(si , sj ). The distances between the corre- 0
3 E ← {{sj , si } | sj 6= si denote sj , si ∈ S, d(sj , si ) op
sponding answer sets are calculated by Jaccard or Hamming k}
distance. Additionally, we store the value of maximum (resp., 4 P = {S}
minimum) distance, denoted by dmax (resp., dmin ) between 5 R = {}
the answer sets for computing diversity/similarity. 6 X = {}
2) Interactive Method (IM): We study various problems to 7 S1 = BronKerbosch(P , R, X, E )
0
find similar/diverse answer sets of the given ASP program.
As an illustration, the user can specify the number of the
answer sets that differ in a certain number of k atoms. More To illustrate, the interactive method (Case 1) algorithm can
precisely, if the user needs n different answers and specifies be textualized as following: Pick a set S of K such that the
a relational operator (e.g., ≤) and k atoms then, the result n distance of each pair of the vertices is equal to op k. Three
should be different in ≤ k atoms. There are two distances we disjoint sets of vertices P , R, and X. R and X are set to ∅,
use for edges in this work. Hamming distance for the answer and P contains all vertices in S. Then apply Bron-Kerbosch
sets with the same length, and the Jaccard distance for the (version 2) algorithm. Once P and X are empty, and the size
answer sets with different lengths. After we build a complete of R is greater than or equal to n, pick R as a maximal clique.
undirected graph K in the preprocessing method, we check Report the first n elements of R and terminate the algorithm.
whether there exists a complete subgraph (or a clique) of size b) Case 2 (k-Distant Answer Set (resp., k-Close Answer
n in K whose distance is specified by the user. In this work, we Set)):
find a maximal clique to obtain the largest complete subgraph
Instance. Given answer sets (AS ) of an ASP program P ,
[18].
two non-negative integers n and k, an answer set as, and a
Definition III.4. Let A and B be sets. The set A corresponds relational operator op with op ∈ {<, >, =, ≤, or ≥}.
to the set B, denoted by ≈c , where A = {a1 , ..., an } and
Question. Does there exist a set H with the cardinality |H| ≤
B = {b1 , ..., bn }, such that
n where a set S ∈ AS and H ≈c S (as ∈ / S), and the distance
A ≈c B iff ∀bi ∈ B ai = bi of the set H, denoted by ds (H), is the distance between as
and its elements such that
where 1 ≤ i ≤ n.
ds (H) op k iff ∀si ∈ H d(as, si ) op k
We are mainly interested in three cases of problems related
to the computation of a diverse/similar answer sets: where 1 ≤ i ≤ n.
In this case, we have the answer sets (AS ). The user Algorithm 3: IMCase3
specifies two integers k and n, and an answer set as. The Input: A complete graph K = hS, Ei.
answer set as is considered as a pivot for other answer sets. 1 Two non-negative integers n and k.
A subgraph of size at most n with d op k is built from AS . 2 A relational opertaor op is one of
The intuition behind building a subgraph not a clique is to {=, <, >, ≤, ≥}.
find the answer sets (nodes) that have only edges with as. In 3 Ground instance(s) x that all answer sets contain.
fact, we do not need a clique (complete subgraph) in this case Output: A set C of at most n answer sets whose
(see Algorithm 2). distance is d op k and contains x.
0
4 S ← Select a set of |S| vertices contains x
Algorithm 2: IMCase2 0 0
5 E ← {{sj , si } | sj 6= si denote sj , si ∈ S and d(sj , si )
Input: The answer sets (AS ). op k}
0
1 Two non-negative integers n and k. 6 P = {S }
2 A relational opertaor op is one of 7 R = {}
{=, <, >, ≤, ≥}. 8 X = {}
An answer set as. 0
3 9 C = BronKerbosch(P , R, X, E )
Output: A set H of n answer sets whose distance is d
op k with respect to as.
4 S ← Define a set of |AS | vertices
attributes. In addition, it offers the users the ability to create
5 E ← {{as, si } | as 6= si denote as ∈/ S, si ∈ S,
their own custom navigation by combining several attributes
d(as, si ) op k}
instead of forcing them to follow a specific path.
6 H ← Find a set H of size at most n in hS, Ei
7 return H
IV. NAVAS T OOL

c) Case 3 (n k-Diverse Answer Sets with Specific Ground We implement a tool performing the above approaches in
Instance(s) (resp., n k-Similar Answer Sets with Specific order to simplify the search task. In NavAS, the user has
Ground Instance(s))): the ability to combine any value of filter with any type of
sorting and at the same time he is allowed to find similar/divers
Instance. Given a complete graph K = hS, Ei whose nodes
solutions. The sorting types are associated with different
S ≈c AS (answer sets) of an ASP program P where E ⊆
options as aforementioned. The window of NavAS tool is as
S × S, two non-negative integers n and k, specific ground
depicted in Figure 1.
instance(s) x , and a relational operator op with op ∈ {<, >
, =, ≤, or ≥}.
Question. Does there exist a set C with the cardi-
nality |C| ≤ n where a complete subgraph (clique)
K ↓C := (C, F ⊆ C × C), F ⊆ E and C ⊆ S, x ∈ ai
∀ai ∈ AS , and the distance of the set C, denoted by ds (C),
is the distance between each pair of its elements such that
ds (C) op k iff ∀ci , cj ∈ C d(ci , cj ) op k
where 1 ≤ i, j ≤ n.
To illustrate, given a complete undirected graph K whose
nodes are the answer sets and the edges are labeled by the
distance between pairs of nodes. The user specifies two integer
numbers n and k, and ground instance(s) x. All the answer Fig. 1: NavAS user interface
sets which contain ground instance(s) x are selected. Similarly
to Case 1, a clique of size at most n with distance d op k is
picked from K. The motivation for finding the clique with
the distance d is to find corresponding answer sets which are V. E VALUATION
different in k atoms and contain x. Algorithm 3 shows Case
3 of the interactive method. In this section, we make a comprehensive evaluation of
the performance of the NavAS tool. We consider a pizza
D. Faceted Search configuration. We discuss the experiment of result on this
Faceted search, also called faceted browsing or faceted example. We ran the experiment on an Intel machine with
navigation is a common approach for accessing data. It al- processor 2.30 GHz Intel Core i5 and memory 4 GB 665.1
lows users to navigate a collection of data by using several MHz DDR3.
A. Pizza Example
This example is implemented in ASP to generate different
pizza configurations. The input of the ASP program are the
toppings with their categories to specify the type of pizza
and the price of each of them. To accomplish this task,
several rules and constraints on toppings have to be satisfied.
Thus, a different number of toppings provide many different
configurations of pizza.
We consider herein a sample of the code to explain the facts
of the program as input. In the following, we give a listing of Fig. 2: Case 1 (with interactive method) from Table I and II
some facts of the program.
price(bacon,110).
has_category(bacon,meat).
price(chicken,120).
has_category(chicken,meat).
price(peas,140).
has_category(peas,veg).

We have a topping bacon which is indicated under meat


category, and its price is price(bacon,110). The same
thing for other facts. We add many facts to the pizza program
to increase the search space.
Answer: 1
on(dough) on(tomato_sauce) Fig. 3: Case 2 (with interactive method) from Table I and II
on(mozzarella) on(oregano) on(bacon)
on(broccoli) on(caper) total(870)
normal
Answer: 2
on(dough) on(tomato_sauce)
on(mozzarella) on(oregano) vegetarian
on(caper) on(basil) total(750)

Usually there are too many answer sets of pizza example


computed by an ASP solver. The user needs to compare these
answer sets, by analyzing the similar/diverse ones with respect
to some distance measure, or by filtering and sorting them to
get good configurations that suit his preferences. To this end,
we use the tool on this example to evaluate the performance Fig. 4: Case 3 (with interactive method) from Table I and II
of it.
For similarity and diversity, we do experiment for testing
the computation time of finding diverse/similar solutions. We building a complete undirected graph K. There are different
measure the execution time of the preprocessing and the values of the execution time for three cases of the interactive
interactive method which is represented in three cases. We take method. For Case 1 from Figure 2, we can see that the
five samples for each value and compute the average of them. execution time for the number of answer sets 2000 is higher
We consider several parameters to asses the performance of than 1000. Additionally, the execution time for the interactive
the tool with respect to finding similar/diverse answer sets: method with filtering is less than the time needed for the same
(1) number of answer sets, (2) preprocessing method, (3) method without filtering. This can be explained with reduction
interactive method with three cases and each case is assessed of the search space by filtering. Thus, the user only shows the
with and without filtering. Table I, II report the time of three answer sets what he is interested in. For the number of atoms
cases of interactive method with different values of k (number that the answer sets are different, we note that the execution
of different atoms), k = 1, 2, respectively, and the number time for k = 2 is higher than the execution time for k = 1.
of solutions n (the maximum size of the maximal cliques In fact, this depends on the configurations of the answer sets
corresponding to the value of k). of a problem, the distance between them, and the ordering of
the answer sets in the complete graph K.
For Case 2 and Case 3, we note from Figure 3 and 4 that
the execution time for the interactive method with filtering is
From Table I and II, we note that the execution time for the less than without filtering because of the same reason as we
preprocessing method is quite high because of the storing and mentioned above. The remaining properties are the same as in
TABLE I: Time execution (in minutes) for finding similar/diverse solutions (k = 1 and n = 3) for pizza example
Interactive Method
Answer Sets Pre-
(AS) processing Case 1 Case 2 Case 3
Without With Without With Without With
1000 (137KB) 0.5441 0.0063 0.0046 8.3E-05 7.6E-05 0.0038 0.0028
2000 (278KB) 1.3237 0.021 0.0150 0.000103 0.00009 0.0135 0.0113

TABLE II: Time execution (in minutes) for finding similar/diverse solutions (k = 2 and n = 8) for pizza example
Interactive Method
Answer Sets Pre-
(AS) processing Case 1 Case 2 Case 3
Without With Without With Without With
1000 (137KB) 0.5441 0.0189 0.0107 0.00021 0.00016 0.0065 0.0056
2000 (278KB) 1.3237 0.0640 0.0505 0.00056 0.00053 0.0245 0.0219

Case 1. For Case 2, we note that the execution time is less than [5] O. Cliffe, M. D. Vos, M. Brain, and J. Padget, “ASPViz: Declarative
the execution time in both Case 1 and Case 3. To illustrate, visualisation and animation using answer set programming”. In Proc.
of the 24th International Conference on Logic Programming (ICLP’08),
in Case 2 we do not use a complete graph K to find a clique. Lecture Notes in Computer Science, pp. 724–728, Berlin, 2008.
We only compute the distance that the user specifies between [6] T. Eiter, E. Erdem, H. Erdogan, and M. Fink, “Finding similar or diverse
a specific answer set as a pivot and other answer sets and get solutions in answer set programming”. In Proc. of 25th International
Conference on Logic Programming (ICLP 2009), vol. 5649 of Lecture
a subgraph. Notes in Computer Science, pp. 342–356. Springer, 2009.
[7] M. Gebser, R. Kaminski, B. Kaufmann, M. Ostrowski, and T. Schaub,
VI. C ONCLUSION “A user’s guide to gringo, clasp, clingo, and iclingo”. Technical report,
University of Potsdam, 2008.
There is a large number of the answer sets available of an [8] M. Gebser, B. Kaufmann, A. Neumann, and T. Schaub, “Conflict-driven
answer set solving”. In Proc. of 20th International Joint Conference on
ASP program, all of them are not of the user’s interest. Thus, Artificial Intelligence (IJCAI’07), Lecture Notes in Computer Science,
a navigation of the search space could be a solution to help pp. 386–392. Morgan Kaufmann Inc., 2007.
the user to access a specific answer sets. [9] M. Gebser, B. Kaufmann, and T. Schaub, “The conflict-driven answer
set solver clasp: Progress report”. In Proc. of the 10th International Con-
We have studied some procedures and techniques to nav- ference on Logic Programming and Nonmonotonic Reasoning (LPNMR
igate the answer sets. We provided filtering and sorting. We 2009), vol. 5753 of Lecture Notes in Computer Science, pp. 509–514.
Springer, 2009.
studied finding similar/diverse solutions of the answer sets. We [10] D. E. Knuth, “The art of computer programming: seminumerical algo-
offered scenarios to find similar/diverse solutions depending rithms”, volume 2. Addison-Wesley, 1997.
on a specific answer set or a specific ground instance. To [11] N. Leone, G. Pfeifer, W. Faber, T. Eiter, G. Gottlob, S. Perri, and F.
Scarcello, “The DLV system for knowledge representation and reason-
this purpose, we introduced preprocessing and interactive ing”. ACM Transactions on Computational Logic (TOCL), 7(3):499–
methods and applied some distance measures. Additionally, we 562, 2006.
were also interested in combination of these approaches. We [12] V. Lifschitz, “Answer set planning”. In Proc. of the 16th International
Conference on Logic Programming (ICLP 1999), pp. 23–37, New
implemented faceted browsing technique to combine previous Mexico, USA. MIT Press, 1999.
approaches instead of following a specific approach. [13] I. Niemelä and P. Simons, “Smodels: An implementation of the stable
Regarding practical use, we presented NavAS, a tool for model and well-founded semantics for normal lp”. In Proc. of the
4th International Conference on Logic Programing and Nonmonotonic
navigating the answer sets for general ASP programs. Finally, Reasoning, vol. 1265, pp. 420–429, Berlin. Springer, 1997.
we made a comprehensive evaluation of the performance of [14] O. Febbraro , K. Reale , and F. Ricca, “ASPIDE: Integrated development
NavAS tool with Pizza example. We recorded the execution environment for answer set programming”. In Proc. of the 11th Interna-
tional Conference on Logic Programming and Nonmonotonic Reasoning
time for finding diverse/similar answer sets. (LPNMR 2011), vol. 6645 of Lecture Notes in Computer Science, pp.
317–330. Springer, 2011.
R EFERENCES [15] E. W. Weisstein, “CRC concise encyclopedia of mathematics”. Springer,
1999.
[1] A. Sureshkumar , J. Fitch , M. Brain and M. D. Vos, “APE: An [16] E. Erdem , M. Gelfond, N. Leone, “Applications of answer set program-
AnsProlog* environment”. In Proc. of the 1st International Workshop ming”. AI Magazine, 37(3):53–68, 2016
on Software Engineering for Answer-Set Programming (SEA 2007), pp. [17] A. Afeefi, “Navigation Approaches for Answer Sets”. Master thesis, Eu-
71–85, 2007. ropean Master Program in Computational Logic, Technische Universität
[2] C. Baral, “Knowledge Representation, Reasoning, and Declarative Prob- Dresden, Germany, 2015.
lem Solving”. Cambridge University Press, England-UK, 2003. [18] K. Makino and T. Uno, “New algorithms for enumerating all maximal
[3] T. Ambroz, G. Charwat, A. Jusits, J. P. Wallner, and S. Woltran, cliques”. In Algorithm theory-SWAT 2004, vol. 3111 of Lecture Notes
“ARVis: Visualizing relations between answer sets”. In Proc. of the 12th in Computer Science, pp. 260–272. Springer, 2004.
International Conference on Logic Programming and Nonmonotonic [19] C. Bron and J. Kerbosch, “Algorithm 457: finding all cliques of an
Reasoning (LPNMR 2013), vol. 8148 of Lecture Notes in Computer undirected graph”. Communications of the ACM, vol. 16, pp. 575–577,
Science, pp. 73–78, Berlin Heidelberg. Springer-Verlag, 2013. 1973.
[4] P. Busoniu, J. Oetsch, J. Pührer, P. Skocovsky, and H. Tompits, “SeaLion: [20] B. Cuteri, C. Dodaro, F. Ricca, and P. Schüller. “Constraints, lazy
An eclipsebased ide for answer-set programming with advanced debug- constraints, or propagators in ASP solving: An empirical analysis”.
ging support”. Theory and Practice of Logic Programming, 13(4-5):657– TPLP, 17(5-6), pp. 780–799, 2017.
673, 2013.

You might also like