ASPARTIX is a program to compute extensions of argumentation frameworks (AF), which has been implemented
in the answer set programming language DLV. With this implementation of ASPARTIX, it is possible to compute
all standard extensions for the classical AF (following Dung) such as stable, admissible,complete, grounded
and preferred extensions. Furthermore it is also possible to compute all these
extensions for
preference-based AF's (PAF's), value-based AF's (VAF's) and bipolar AF's
(BAF's). In the latter case it is also
possible to compute save and complete extensions, as well as distinguish
between the classical d-admissible
(following Dung), s-admissible (for stable) and c-admissible (for closed) extensions, for which also the
respective preferred extensions are available.
It is not necessary to install ASPARTIX. To run the program correctly it is
only required that DLV is installed on your computer.
The input file should have the ending .dl (for example input.dl), containing the definitions for the respective AF, which are the following:
The arguments of the AF are defined by the facts arg/1.
For example:
arg(a).
for the argument a. It is necessary that the name of the argument starts with a lower-case letter.
The attack relations are defined by the facts att/2.
For example:
att(a,b).
for the argument a attacking the argument b.
To specify the preordering on the arguments, the fact pref/2 will be used.
For example:
pref(a,b).
denoting, that the argument a has a higher priority than the argument b.Additionally it is required to add the fact
paf.
to the input, to specify, that we are dealing with a PAF.
To specify the values for the arguments, the facts val/2 are used.
For example:
val(a, value_a).
denoting, that the argument a has the value value_a.
The preference relation is defined via the fact valpref/2.
For example:
valpref(value_a, value_b).
denoting, that the value value_a is preferred to the value value_b.
Additionally it is required to add the fact
vaf.
to the input, to specify, that we are dealing with a VAF.
The support relation for BAF's is defined via the fact support/2.
For example:
support(a,b).
denoting, that the argument a supports the argument b.
Additionally it is required to add the fact
baf.
to the input, to specify, that we are dealing with a BAF.
To specify which extension should be computed, the respective fact should be
added to the input file. If no extension is defined in the input file, no
valid answer set can be computed and the program returns an input_error.
The possible extensions for the classical AF's are:
adm. % for admissible
comp. % for complete
ground. % for ground
prefex. % for preferred
stable. % for stable
Special semantics for BAF's are the following:
c_adm. % for c-admissible (complete)
d_adm. % for d-admissible (Dung)
s_adm. % for s-admissible (stable)
c_prefex. % for c-preferred
d_prefex. % for d-preferred
s_prefex. % for s-preferred
To execute the program correctly it is just necessary to run DLV together with the
input file and ASPARTIX on the command line. The output are answer sets specifying the
required semantics.
For better readability it is useful to use the filter option of DLV.
For example:
$ ./DLV input.dl aspartix.dl -filter=in,input_error
In the resulting answer sets the fact in/1 denotes the arguments which are in the required extension. If the answer set contains the fact input_error, then the input has not been declared correctly.
The input file should have the ending .dl (for example input.dl), containing the definitions for the respective AF, which are the following:
The arguments of the AF are defined by the facts arg/1.
For example:
arg(a).
for the argument a. It is necessary that the name of the argument starts with a lower-case letter.
The attack relations are defined by the facts att/2.
For example:
att(a,b).
for the argument a attacking the argument b.
To specify the preordering on the arguments, the fact pref/2 will be used.
For example:
pref(a,b).
denoting, that the argument a has a higher priority than the argument b.To specify the values for the arguments, the facts val/2 are used.
For example:
val(a, value_a).
denoting, that the argument a has the value value_a.
The preference relation is defined via the fact valpref/2.
For example:
valpref(value_a, value_b).
denoting, that the value value_a is preferred to the value value_b.
The execution of the individual encodings (adm.dl, stable.dl,
comp.dl, ground.dl, prefex.dl, semi_stable.dl and cf2.dl) is nearly the same as for the overall program ASPARTIX.
It is necessary to run DLV together with the
input file and the program file for the specific semantics on the command line.
The output are answer sets specifying the
required semantics.
For better readability it is useful to use the filter option of DLV.
For example consider the execution for the stable semantics with the AF sepcified in the input file "input.dl":
$ ./DLV input.dl stable.dl -filter=in
In the resulting answer sets the fact in/1 denotes the arguments which are in the
stable extension.
NOTE: It is not possible to compute several semantics at the same time, this would give wrong results!
The module vaf_paf.dl needs to be added. For example to compute the preferred semantics for a given VAF, run the following command:
$ ./DLV input_vaf.dl prefex.dl vaf_paf.dl -filter=in
For BAFs the execution and the input file are as described above for the overall program ASPARTIX.
For the ideal semantics we make use of the DLV cautious reasoning front-end as follows.
$ ./DLV -cautious input.dl ideal.dl
The output represents directly the ideal extension.