Requirements

The code has been tested using SICStus Prolog (4.2+) on Linux. To use the optional visualization of solutions, you also need graphviz.

Installation

Download the source: grapharg.tar.gz. Unzip and untar it somewhere. Make sure the BASH grapharg script from 'scripts/' is somewhere in your PATH. Edit two variables at the top of the script to point to the right places.

Invocation

If you've followed the directions for the script, above, you can do either:

where 'source.pl' is the name of a Prolog source file for the ABA framework. Alternatively, you can go to the 'code/' directory, load prolog, and just do:

Basic Usage

Once grapharg is loaded, you can (re)load a source file (named 'source.pl') using:

To find a derivation for the sentence 's', do:

The solution will be printed on screen, and 'X' bound to an internal representation of it. Printed on screen is the defence set (DEFENCE), culprits (CULPRITS), set of Proponent justifications (PROP JUSTIFICATIONS), Opponent justifications (OPP JUSTIFICATIONS), attacks between justifications (ATT), and the GRAPH used to check acyclicity (in the case of GB derivations).

Doing

prints some usage information.

Options

Current values of options are displayed by:

To print the derivation steps during a call to sxdd/2, use:

To hide the derivation steps (default), use:

To output the solutions, as found, to a '.dot' file for visualization with graphviz, use:

To set not to print, use:

To use AB-dispute derivations, do:

To use GB-dispute derivations, do:

To change strategies, use:

StratList has the form: [T,OJ,PS,OS,PR].

turn choice (T):

opponent justification set choice:

sentence choice (proponent PS, and opponent OS):

proponent rule choice (PR):

Example

The source file toni6_2.pl is included in the distribution. A query of 'sxdd(p, X)' writes the solution to screen:

DEFENCE: [a]
CULPRITS: [c]
PROP JUSTIFICATIONS: [(a,*),(p,1),(u,5)]
OPP JUSTIFICATIONS: [[]-[(c,*),(d,*),(q,4),(t,7)]-[q],[]-[(c,*),(e,*),(q,4),(t,8)]-[q],[]-[(c,*),(q,3),(s,6)]-[q]]
ATTACKS: [(q,a),(u,c)]
GRAPH: []

When visualized using graphviz, this is:
dot solution
Proponent arguments shaded blue; finished Opponent arguments shaded grey; unfinished (non-empty unmarked support) Opponent arguments shaded white. Defence set green. Culprits yellow. Attacks in red.