Description
Abstract dialectical frameworks (ADFs) are a powerful generalisation of Dung's abstract argumentation frameworks. DIAMOND (DIAlectical MOdels eNcoDing) is an answer-set programming based software system. It translates ADFs into answer set programs whose stable models correspond to models of the ADF with respect to several semantics (i.e. admissible, complete, stable, grounded). The target audience for this tool are argumentation researchers.Requirements
- Python (3.3.0)
- clingo (4.3.0)
- eclipse-prolog (6.1) (optional)
- to use the CL-Script “diamond.py” a Unix-like operating system is needed
Installation
- The newest version is available at Sourceforge
- Extract the tar-ball to a directory
- At the first run of the diamond.py script a config file is created (at the specified location via the -c option or at ~/.diamond per default)
- If the required programs are not in the $PATH environment, set their locations in the configuration file
- In the configuration file, you can indicate how ADFs in propositional formula representation should be transformed to the extensional representation:
Either via ASP, in which case transform = “asp”, or via ECLiPSe Prolog, then transform = “eclipse”. (we recommend to use asp, which is the default value)
Configuration
The default configuration file looks as follows:
[Path]
installdir = <location of the diamond.py script>
eclipse = eclipse
clingo = clingo
python = python
[Preferences]
transform = “asp”
Instances
ADFs are represented by text files with a special syntax. Statements are declared via predicate s/1. For acceptance functions, several possibilities exist.- Propositional formulas: file names like “instance.adf”
- Acceptance formulas are declared via predicate ac/2.
- Bipolar ADFs: file names like “instance.badf”
- Acceptance formulas are declared via predicate ac/2.
- Supporting links are declared via predicate sup/2.
- Attacking links are declared via predicate att/2.
- Dung AFs in ASPARTIX syntax: file names like “instance.af”
- Arguments are declared via predicate arg/1.
- Attacks are declared via predicate att/2.
- Functional representation: any other file name