On this page we provide ASP encodings for serveral semantics and reasoning tasks in Dung AFs and explain how they can be used with a standard ASP-solver. We also provide a ready-to-use docker container implementing the ICCMA interface (see ICCMA Interface Version).
ASP-solver: For the execution of the programs one needs a (disjunctive) ASP solver like Clingo (see Potassco) or DLV (see DLVSYSTEM). Please note that the performance of the encodings highly depends on the ASP engine. In our experience, the Potassco systems (Clingo or gringo/Clasp(D)) showed the best performance.
The input file (for example input.af) should contain the arguments and attacks of the argumentation framework one wants to evaluate. For example the fact arg(a). encodes the argument a, and att(a,b). stands for the attack from a to b. That is, AFs are encoded by a sequence of statements where each statement either encode an argument or an attack of the AF
For instance, consider the following argument graphs:
AF | Input File |
---|---|
arg(a).
arg(b).
arg(c).
att(a,b).
att(b,a).
att(c,b).
|
|
arg(a).
arg(b).
arg(c).
arg(d).
arg(e).
arg(f).
att(a,b).
att(b,a).
att(a,c).
att(b,c).
att(c,d).
att(d,f).
att(e,d).
att(e,f).
att(f,e).
|
$ DLV input.af semantics.dl -filter=in
The -filter option filters out the predicates in(.) which denote the arguments contained in the extension.
To just enumerate a fixed number of extensions, say 6, use the following command$ dlv input.af semantics.dl -filter=in -n=6
$ dlv input.af semantics.dl -filter=in -brave <(echo "in(a)?")With the --witness option one gets an extension that witnesses the credulous acceptance of argument a
$ dlv input.af semantics.dl -filter=in -brave --witness <(echo "in(a)?")Computing all credulously accepted arguments:
$ dlv input.af semantics.dl -filter=in -brave <(echo "in(X)?")
$ dlv input.af semantics.dl -filter=in --cautious <(echo "in(a)?")With the --witness option one gets an extension that witnesses against the skeptical acceptance of argument a
$ dlv input.af semantics.dl -filter=in --cautious --witness <(echo "in(a)?")Computing all skeptically accepted arguments:
$ dlv input.af semantics.dl -filter=in --cautious <(echo "in(X)?")
$ clingo input.af semantics.dl filter.lp 0
The filter.lp file filters out the predicates in(.) which denote the arguments contained in the extension.
To just enumerate a fixed number of extensions, say 6, use the following command$ clingo input.af semantics.dl filter.lp 6
$ clingo input.af semantics.dl filter.lp -e brave
$ clingo input.af semantics.dl filter.lp -e cautious
Most of the encodings can be used for both systems (dlv, clingo), but for some of them an adjustment, due to some differences in the syntax, is necessary. Those encodings are specially marked. In the following we provide the encodings for all semantics:
* Notice that the Encoding for ideal semantics needs to be executed in the following way:
$ dlv ideal.dl input.af -filter=ideal -n=1
Here we provide encodings based on more advances ASP techniques and provide substantial performance improvements.
For the following encodings require Gringo/ClaspD and the metasp optimization front-end is necessary which can be downloaded here: metasp.
The call for executing, for example, the pref_metasp.dl encodings together with an input.af is as follows.
$ gringo --reify pref_metasp.dl input.af | \ gringo - {meta.lp,metaO.lp,metaD.lp}\ <(echo "optimize(1,1,incl).") | claspD 0
For more details see Wolfgang Dvořák, Sarah Alice Gaggl, Johannes Wallner and Stefan Woltran. Making Use of Advances in Answer-Set Programming for Abstract Argumentation Systems. INAP 2011 [arXiv:1108.4942, LNCS]
For more details see Sarah Alice Gaggl, Norbert Manthey, Alessandro Ronca, Johannes Peter Wallner, Stefan Woltran. Improved answer-set programming encodings for abstract argumentation. TPLP 15(4-5): 434-448 (2015) [paper]
Clingo provides an option to add user-specific domain heuristics to the ASP program which in particular allow to select the answer-sets that are subset-maximal/minimal w.r.t. a specified predicate. We use such heuristics for preferred semantics by using an encoding for complete semantics and then identifying the subset-maximal answer-sets w.r.t. the in(ยท) predicate. Moreover, we use domain heuristics for semi-stable and stage semantics. Here we start from an encoding for complete extensions, conflict-free sets respectively, and use domain heuristics to compute the subset-maximal ranges a complete extension, a conflict-free set respectively, can have. The answer-sets corresponding to these ranges are then exploited for computing some semi-stable (SE-SST) or stage extension (SE-STG). However, the domain heuristics only return one witnessing answer-set for each maximal range and thus this technique is not directly applicable to the corresponding enumeration and counting tasks (we would miss certain extensions if several extensions have the same range). For those problems one can combine Domain heuristics with Multi-shot approaches
clingo --heuristic=Domain --enum=domRec --out-hide preferred.lp0
clingo --heuristic=domain --enum=domRec --out-hidesemi_some_extension.lp 1
clingo --heuristic=domain --enum=domRec --out-hidestage_some_extension.lp 1
Starting with ICCMA'19 we also exploit methods that use several calls to the asp solver in order to solve certain reasoning tasks (with complexity beyond NP/coNP). The corresponding encodings and the corresponding bash scripts are provided as archives:
For more information see Wolfgang Dvořák, Anna Rapberger, Johannes Peter Wallner, Stefan Woltran: ASPARTIX-V19 - An Answer-Set Programming Based System for Abstract Argumentation. FoIKS 2020: 79-89
Here we provide ASPARTIX-V, an ICCMA style interface to ASPARTIX encodings. That is, we provide an archive containing the asp-encodings, shell scripts and copies of the clingo asp solver. Moreover, we also provide links to older versions that participated in previous editions of ICCMA.
This interface is made for Unix systems and uses the following standard tools: bash, cat, grep, sed, python (for certain reasoning tasks). In order to install this system make sure these tools work properly on your system and unpack this archive at an appropriate place in your system.
Known issues:
We implement the ICCMA interface (pdf) with some additional semantics. ASPARTIX-V can be started via the "aspartix-V-interface.sh" script. A generic call to the solver is of the following form
bash aspartix-V-interface.sh -p TASK -fo apx -f INSTANCE -a ARGor alternatively (if file permissions of aspartix-V-interface.sh are set to executable)
./aspartix-V-interface.sh -p TASK -fo apx -f INSTANCE -a ARGwhere
bash aspartix-V-interface-2019.sh -p DS-PR -fo apx -f test_instance.apx -a 339
ICCMA'21: Competition webpage
ICCMA'19: Competition webpage
ICCMA'15: There where two ASPARTIX version participating.
Competition webpage
[27] |
ASPARTIX-V19 - An Answer-set Programming based System for Abstract Argumentation Wolfgang Dvořák, Anna Rapberger, Johannes P. Wallner, Stefan Woltran FoIKS 2020: 79-89 [ paper at Springer ] |
[19] |
Improved answer-set programming encodings for abstract argumentation. Sarah Alice Gaggl, Norbert Manthey, Alessandro Ronca, Johannes Peter Wallner, Stefan Woltran TPLP 15(4-5): 434-448 (2015) [paper] |
[8] |
Answer-Set Programming Encodings for Argumentation Frameworks. Uwe Egly, Sarah Gaggl, and Stefan Woltran. In Argument and Computation, 1(2): 147 - 177 (2010).[ bib |pdf] |
[4] |
Solving Argumentation Frameworks using Answer Set Programming.
Sarah Gaggl. Masters Thesis, Technische Universität Wien, 2009 [.pdf ] |