Arg2P #
Arg2P is a lightweight implementation of the ASPIC+ framework for structured argumentation. Built on top of the tuProlog engine, it supports both JVM and Node environments.
Getting Started #
Arg2p is available as a 2P-Kt library.
JVM Library - Gradle #
To import the Arg2p module (version ARG2P_VERSION
) into your Kotlin-based Gradle project, declare the dependency in your build.gradle(.kts)
file:
repositories {
mavenCentral()
}
dependencies {
implementation("it.unibo.tuprolog.argumentation:arg2p-jvm:ARG2P_VERSION")
}
Usage Example #
import it.unibo.tuprolog.argumentation.core.Arg2pSolverFactory
import it.unibo.tuprolog.argumentation.core.libs.basic.FlagsBuilder
fun main() {
val graph = Arg2pSolverFactory.evaluate("""
f1 :=> d.
f2 :=> -d.
""".trimIndent(), FlagsBuilder()).first()
graph.labellings.forEach {
println("${it.label} : ${it.argument.conclusion}")
}
}
For a complete example, check out the GitHub demo.
NPM Library #
The Arg2P software is available on NPM as a JavaScript library as well. It can be found under the @tuprolog
organization.
To use the library, add the dependency to your package.json
:
{
"dependencies": {
"@tuprolog/arg2p": "ARG2P_VERSION"
}
}
Usage Example #
const arg2p = require('@tuprolog/arg2p').it.unibo.tuprolog.argumentation.bridge.JsBridge
const graph = arg2p.solve('buildLabelSets', `
f1 :=> d.
f2 :=> -d.`, `
graphBuildMode(standard_af).
statementLabellingMode(statement).
argumentLabellingMode(grounded_hash).
orderingPrinciple(last).
orderingComparator(elitist).
graphExtension(standardPref).
queryMode.`, _ => { }).i.next().graph
graph.arguments.forEach(arg => {
console.log(`${arg.label} : ${arg.descriptor}`)
})
For a complete example, see the repository.
Arg2p IDE #
The Arg2p IDE is available on the Releases section of the GitHub repository.

In the latest release page, download the Asset named:
arg2p-ide-ARG2P_VERSION-redist.jar
a self-contained, executable Jar containing the 2P-Kt-based Prolog interpreter (ARG2P_VERSION
will vary depending on the
actual release version).
After you download the arg2p-ide-ARG2P_VERSION-redist.jar
, you can simply launch it by running:
java -jar arg2p-ide-ARG2P_VERSION-redist.jar
If your JVM is properly configured, you can also start the IDE by double-clicking the JAR file.
Features #
- Query Execution: Write your query in the text field and hit Enter or click >.
- Solution Exploration: Click > for the next solution or >> to compute all solutions.
- New Query: Click X to stop the current query, then enter a new one.
Additional Tabs #
- Graph Tab: Displays a graphical representation of the abstract argumentation graph.
- Arg Flag Tab: Shows and allows modification of Arg2P flags. Detailed descriptions are on the official wiki.
Arg2p Playground #
Try Arg2P directly in your browser using the Web Playground.

It functions the same as the Java IDE, offering an interactive experience without installation.
Issue tracking #
If you encounter any issues, please report them on the GitHub Issues page.
Your feedback helps improve the project!