Abstract
While agent-based modelling languages naturally implement concurrency, the currently available languages for argumentation do not allow to explicitly model this type of interaction. In this paper we introduce a concurrent language for handling agents arguing and communicating using a shared argumentation space. We also show how to perform high-level operations like persuasion and negotiation through basic belief revision constructs, and present a working implementation of the language and the associated web interface.
Introduction
Many applications in the field of artificial intelligence aim to reproduce the human behaviour and reasoning in order to allow machines to think and act accordingly. One of the main challenges in this sense is to provide tools for expressing a certain kind of knowledge in a formal way so that the machines can use it for reasoning and infer new information. Argumentation Theory provides formal models for representing and evaluating arguments that interact with each other. Consider, for example, two people arguing about whether lowering taxes is good or not. The first person says that a) lowering taxes would increase productivity; the second person replies with b) a study showed that productivity decreases when taxes are lowered; then, the first person adds c) the study is not reliable since it uses data from unverified sources. The dialogue between the two people is conducted through three main arguments (a, b and c) whose internal structure can be represented through different formalisms [40,46], and for which we can identify the relations b attacks a and c attacks b. In this paper, we use the representation for Abstract Argumentation Frameworks (AFs in short) introduced by Dung [32], in which arguments are abstract, that is their internal structure, as well as their origin, is left unspecified. The example dialogue illustrated above can be modelled through an AF as shown in Fig. 1.
AFs have been widely studied from the point of view of the acceptability of arguments and several authors have investigated their dynamics, taking into account both theoretical [21,43] and computational1
For example, a special track on dynamics appeared in the Third International Competition on Computational Models of Argumentation [10,11].

Example of AF with three arguments.
Motivated by the above considerations, we introduce a concurrent language for argumentation (cla) that can be used for modelling different types of interaction between agents (such as negotiation and persuasion). In particular, our language allows for modelling concurrent processes, inspired by notions such as the Ask-and-Tell constraint system [44], and using an AF as a centralised store. Such AF provides a representation of the state of the world shared by all agents involved in the same process and enables agents to reason through argumentation paradigms. The language is thus endowed with primitives for the specification of interaction between agents through the fundamental operations of adding (or removing) and checking arguments and attacks. Using these primitives to build more sophisticated processes, we can model debating agents (e.g., chatbots) that take part in a conversation, provide arguments and make decisions based on the structure and the semantics of the AF represented in the shared argumentation space. Alchourrón, Gärdenfors, and Makinson (AGM) theory [1] gives operations (like expansion, contraction and revision) for updating and revising beliefs on a knowledge base. Our language is also suitable for implementing AGM-style operations that allow modifying the shared AF and changing the status of its arguments to enable, for instance, negotiation and other forms of dialogue.
The present work summarises and extends a series of previous studies [16–19,45] which led to the conceptualisation and development of cla. The language was first presented in [16], where we defined an early version of the cla syntax and operational semantics. Next, we introduced with [17] a prototype implementation, and in [18] we showed examples of how to obtain belief revision operations via the constructs of our language. A user interface was then provided in [19] together with some examples of execution. A very brief overview of the work was also presented in [45]. In comparison with the works mentioned above, this paper provides new content concerning:
the introduction of a semantics of failure that allows the execution of a cla program to proceed and not to suspend waiting for particular conditions to occur; an improved operational semantics, for the addition and removal of arguments, that captures previously unmanaged behaviours in case of parallel execution; concrete examples of how cla can be used to model persuasion and negotiation processes; a more thorough description of the implementation, with detailed examples covering the use of the interface and insights into how the parsing tree is obtained and visited.
We want to point out that a version of the language also incorporating the notion of time has been studied in [12–14] (see Section 6 for a more careful description). However, such a timed extension will not be addressed in this paper, which instead focuses on the basic formalism of cla.
The rest of the paper is structured as follows: in Section 2 we recall some notions from Argumentation Theory; in Section 3 we present the syntax and the operational semantics of our concurrent language; Section 4 gives examples of high-level operations like persuasion and negotiation realised through cla constructs; Section 5 describes how we implemented the language; in Section 6 we discuss existing formalisms from the literature that bring together dynamics in argumentation and multiagent systems, highlighting the contact points and the differences with our work; Section 7 concludes the paper with final remarks and perspectives on future work.
Argumentation is an interdisciplinary field that aims to understand and model the human natural fashion of reasoning. In Artificial Intelligence, argumentation theory allows one to deal with uncertainty in non-monotonic (defeasible) reasoning, and it is used to give a qualitative, logical evaluation to sets of interacting arguments, called extensions. In his seminal paper [32], Dung defines the building blocks of abstract argumentation.
(AFs).
Let U be a finite set of all possible arguments,2
We introduce both U and
AFs can be represented through directed graphs, that we depict using the standard conventions. For two arguments
The goal is to establish which are the acceptable arguments according to a certain semantics, namely a selection criterion. Non-accepted arguments are rejected. Different kinds of semantics have been introduced [6,32] that reflect qualities which are likely to be desirable for “good” subsets of arguments. In the rest of this paper, we will denote the extension-based semantics (also referred to as Dung semantics), namely admissible, complete, stable, preferred, and grounded, with their respective abbreviation adm, com, stb, prf and gde, and generically with σ.
Let
Moreover, if E satisfies one of the above semantics, we say that E is an extension for that semantics (for example, if
The different semantics described in Definition 2 correspond to different styles of reasoning, each of which may be more appropriate for being applied to a particular application domain. The characterisation of the reasoning requirements for the various domains is still a largely open research problem [7] and can only be based on general criteria rather than on specific cases. The stable semantics can be considered the strongest one: the accepted arguments attack all the others in the framework. Since a stable extension may not exist, one can resort to the semi-stable semantics [23], whose concept was first introduced in [48] under the name of admissible stage. Note that the set U used in Definition 1 is finite precisely because at least one semi-stable extension always exists for AFs with a finite number of arguments [25], while there is no guarantee in the case of infinite AFs. The semi-stable semantics, as well as the preferred one, do not have a unique extension, making the grounded semantics (that always exists and admits exactly one solution) an overall good option for establishing which arguments have to be accepted.
Besides enumerating the extensions for a certain semantics σ, one of the most common tasks performed on AFs is to decide whether an argument a is accepted in some extension of

AF used in Example 1.
In Fig. 2 we provide an example of an AF F in which:
Many of the above-mentioned semantics (such as the admissible and the complete ones) use the notion of defence in order to decide whether an argument is part of an extension or not. The phenomenon for which an argument is accepted in some extension because it is defended by another argument belonging to that extension is known as reinstatement [24]. In that paper, Caminada also gives a definition for a reinstatement labelling, a total function that assigns a label to the arguments of an AF:
Let
An argument is labelled

Example of reinstatement labelling.
A labelling-based semantics [6] associates with an AF a subset of all the possible labellings. There exists a connection between reinstatement labellings and the Dung-style semantics: the set of
Reinstatement labelling vs semantics
The syntax of the concurrent language for argumentation (cla) is presented in Table 2, where P, C, A and E denote a generic process, a sequence of procedure declarations (or clauses), a generic agent and a generic guarded agent, respectively. In a cla process
cla syntax
cla syntax
cla operational semantics – addition and removal
In Tables 3–10 we give the definitions for the transition rules. The transition relation
Addition and removal. Suppose to have an agent A whose argumentation space is represented by an AF
Consider an agent A who wants to add three arguments a, b and

Example of two AFs. The rightmost is obtained from that on the left after removing argument
Check. When a non-terminal operation of our language succeeds, the execution proceeds with the subsequent action. Otherwise, two are the possible outcomes: the operation can fail, making the execution to terminate, or it can suspend. Accordingly, we distinguish two categories of expressions that can be written using cla syntax:
cla operational semantics – check
Starting from the AF of Fig. 4 (right), we want to add a new argument c and the attack
Example of an AF obtained from that of Fig. 4 (right) by adding argument c and the attack 
Credulous and sceptical test. We also have two distinct test operations (see Table 5), one credulous and the other sceptical, both requiring the specification of an argument
cla operational semantics – credulous and sceptical test
Agent A now wants to test whether the argument a in the shared AF of Fig. 5 is credulously accepted with respect to the admissible semantics and, in case of a positive answer, it wants to introduce a new argument d attacking a. We use the test with failure, but the same operation with waiting would not change the result.
Example of an AF obtained from that of Fig. 5 by adding argument d and the attack 
Parallelism. A debate involving many agents that asynchronously provide arguments can be modelled as a parallel composition of
cla operational semantics – maximum parallelism
Parallel composition of two actions
Union, intersection and difference between AFs are intended as the union, intersection and difference of their sets of arguments and attacks, respectively.
if
on the other hand, when
In Table 7, instead, we give the transition rules for the parallel composition operator ‖ when interleaving is taken into account. In this case, only one agent is handled at a time and the actions of two concurrent agents are executed sequentially in two distinct steps of the computation.
cla operational semantics – parallelism with interleaving
Note that the operations that read and modify the shared AF are atomic (like the ask and tell operators from which they derive [44]) and therefore do not risk producing inconsistent data. Furthermore, although having one or more agents acting asynchronously does not affect the way in which the shared AF is accessed and modified, the possibility of modelling parallel agents makes it possible to simulate the behaviour of real agents acting individually in a distributed environment.
Suppose that not one, but two agents A and B want to modify the shared argumentation space given by the AF of Fig. 6. Agent A wants to add an argument e with the attack
Example of an AF obtained from that of Fig. 6 by adding argument e and the attack 
On the other hand, when using the interleaving approach, the execution of the above program can proceed in two ways. If the processor first handles the operation
Guarded parallelism. The operator
cla operational semantics – guarded parallelism
To illustrate the functioning of operator
Example of an AF obtained from that of Fig. 7 by adding argument f and the attacks 
If then else. The operator
cla operational semantics – if then else
This time, our agent wants to choose between two possible executions, prioritising one and leaving the second as a fallback in case the first one fails. For this purpose, the

Example of an AF obtained from that of Fig. 8 by removing argument c.
cla operational semantics – nondeterminism, hidden variables and procedure call
Nondeterminism, hidden variable and procedure call. The remaining operators shown in Table 10 are classical concurrency compositions. Any agent composed through + (rule Nondeterminism of Table 10) is chosen if its guards succeed. The existential quantifier
Given the transition system defined in Tables 3–10, we can observe the behaviour of a process
Let
As we will see in the next section, we aim to use the operators of our language to model the behaviour of agents involved in particular argumentative processes.
cla for persuasion and negotiation dialogues
The basic constructs which compose cla operational semantics allow realising programs that simulate the interaction between two or more counterparts. The process of exchanging information through such an interaction can assume different nuances, according to the goal of the communication itself. For instance, two agents in conflict to obtain a resource within a distributed system may want to come to a compromise they both can agree on. In that case, we talk about negotiation. Another possibility for one agent is to persuade the other to accept a fact or a condition. Below, we provide examples of how high-level interaction between agents can be obtained through cla programs.
Persuasion with cla
According to [50], persuasion is a particular form of dialogue in which the involved counterparts try to affirm their own thesis. Each participant/agent in the persuasion dialogue holds a thesis which is opposed to the others and needs to be proven “true” in order to be accepted. To persuade its opponents, an agent can elaborate different strategies [35] (sequences of actions to perform in the system) both for supporting its own beliefs and for defeating those supported by others. An approach to persuasion through argumentation is given in [39], where agents play a game to solve conflicts of points of view between discordant theses: an agent has to defend its position by replying to every attack against its initial claim. If it fails, the opponent wins the game. Below, we provide an example of how a persuasion dialogue can be enacted by using cla constructs.
Imagine two agents, A and B, discussing about the problem of violence in video games. This topic is often used as an example of an argumentative process where discordant opinions are provided for or against a certain initial thesis (see for instance [51]). Agent A believes that violent video games can make people, especially the young, more aggressive, while agent B has the opposite opinion, that is video games are harmless and safe for all users. This scene can be represented through an AF (like that in Fig. 10, left) with two conflicting arguments: a, which supports video games, and b, which is against them. Attacks in the frameworks are deduced from the arguments themselves: in this example we have that a attacks b and b attacks a.
AFs representing the evolution of a persuasion process from its beginning (on the left) to its conclusion (on the right).
We use the grounded semantics as criterion for establishing the acceptability of arguments. Other semantics can be considered as well with similar results. In this initial situation, since a and b are attacking each other without being defended, none of them can be part of the grounded extension, and thus no agent will be able to persuade the other. In an attempt to prove the validity of their thesis, the two agents bring forward new arguments: A states that young people could emulate the violent behaviours seen in video games (argument c of Fig. 10, middle), while B points out that violent scenes in video games are not real (argument d of Fig. 10, middle). Neither argument a nor b can still be accepted. The discussion ends, in this example, with agent A adding that people can still be influenced by what they see, regardless of whether it is fact or fiction. This last argument corresponds to e in Fig. 10 (right), and forms, together with a and c, the grounded extension. At this point, assuming agent B does not reply, A has proven its thesis (the argument a) to be acceptable, persuading the other agent. All arguments used in this example are summarized below.
“Violent video games can make people, especially the young, more aggressive.” “Video games are harmless and safe for all users.” “Young people could emulate the violent behaviours seen in video games.” “Violent scenes in video games are not real.” “People can be influenced by what they see, regardless of whether it is fact or fiction.”
The whole dialogue can be formulated through a cla program. We propose one possible implementation in Table 11, where two agents interact via the transition rules of Tables 3–10 and synchronisation is obtained through the check operator. The first agent A adds argument a into the argumentation space and then waits until also argument b can be found in the underlying AF. Afterwards, A adds argument c together with two attacks, one from a to b and the other one from b to c. Then A waits again for argument d to be present in the AF, after which argument e and the attack
Example of a cla program for persuasion
We want to highlight that the parts involved in the debate used for Example 3 do not take turns as happens for traditional dialogue games, but each agent asynchronously executes cla procedures defining its behaviour. Some advantages of this approach are that agents neither rely on a synchronised system clock (which may not be available in distributed environments) nor need to wait for specific actions to terminate in order to achieve coordination with other agents. Parallel constructs allow for the execution of multiple actions at the same time, which, for instance, in the context of the Internet of things, may translate to having multiple devices involved in simultaneous argumentation processes.
Negotiation is a process that aims to solve conflicts arising from the interaction between two or more parties that have different individual goals (for instance, a request of computational resources in a distributed network), and its outcome is an agreement that translates in common benefits for all participants [3]. In order to conduct a negotiation, intelligent agents must be given the capability to change the conditions that meet their goals. We describe an example in which two agents, a client A and a provider B, negotiate over desired parameters for an internet connection. The terms of negotiation are established on the bandwidth (measured in Mbps). The process begins with agent A asking for a connection with at least 100 Mbps of bandwidth to ensure a good streaming quality (argument a in the AF of Fig. 11). The provider has its initial proposal set to 50 Mbps (argument b) as for all new customers. Being the provider’s offer incompatible with the client’s request, the arguments supporting their proposals are in conflict. In particular, we see in Fig. 11 that a and b attack each other. At this point, both the agents retract their initial bandwidth proposals: A is now willing to accept 70 Mbps (argument “I will be using streaming services, so I will ask for 100 Mbps of bandwidth to feel comfortable.” “I offer 50 Mbps to all new customers, thus I will make you the same offer.” “I do not plan to use the entire 100 Mbps bandwidth, but 50 Mbps is not enough for my needs. Therefore, I will not accept less than 70 Mbps.” “It is in my interest to get new customers, so I can grant up to 80 Mbps.” Two AFs representing the evolution of a negotiation. We show in Table 12 a cla program realising the negotiation described in this example. Note that we write Example of a cla program for negotiation

To facilitate the use of the tool we develop a web interface exposing the functionalities of our language. In this section we provide a description for the interface, followed by insights on the implementation of cla itself.
Web interface
The interface consists of a web page4
Web interface available at

Execution of the program in Example 5.
The user can either manually input a program in the designated area or select a sample program from those available a the drop down menu. Two buttons below the input area run the program and display the result in different ways. Clicking the button “Run all”, the result of the whole program is immediately displayed in the area below and the AF shown on the right represents the final state of the shared store. On the other hand, the button “Run 1 step” shows, as the name suggests, one step at time: each click on the button makes another step of the execution appear in the output area. The AF on the right side is updated after each
Consider the program below.
Running the program produces the results in Fig. 12. Note that the AF representing the argumentation space is always empty at the beginning. In line 1 of the output, the parser recognises a valid program. Two threads (one for each action) are started. In this example, the action that occurred first in the program is also executed first, but in general it can happen in any order. In line 3, the program executes a waiting
(Nondeterminism).
We have the following program with a parallel composition and a nondeterministic operation.
It is possible to obtain different outcomes according to the order in which the thread handling the parallelism are executed. We show an example in Fig. 13.
Execution of a the cla program in Example 6.
After identifying the program in line 1 and the parallel composition in line 2, the visit of the tree proceeds with the execution of the
We run the following program, whose result is shown in Fig. 14.
Execution of the program in Example 7.
After initialising the AF with two arguments and an attack between them in line 3 (
We implemented our language using python and ANTLR5
ANTLR website:
Part of .g4 file specifying the cla grammar
Starting from the grammar, ANTLR automatically generates all the components we will use for parsing the language, the most remarkable being the list of used tokens, the interpreter containing names for literals and rules and symbolic names for the tokens, a lexer which recognises input symbols from a character stream, the parser itself (endowed with all the necessary support code) and the visitor class. Then, we need to manually override the default methods provided in the visitor to customise the behaviour of the parser. The visit of the parse tree always starts with the execution of the function visitPrg, which recursively visits all its children. The parser recognises twenty types of node (the non-terminal elements in the grammar), identified through a three-letter code preceded by
visitPrg: calls the visit on its children, collects the results and, in case of termination, returns the output of the whole program.
visitPar: starts two separated threads to execute (visit) two actions in parallel, returning true if both succeeds, false if at least one action fails, and suspends if an action is waiting for its guard to become true.
visitAdd and visitRmv: modify the AF by either adding or removing part of the AF, respectively. Always succeeds and continues on the children. Note that visitRmv succeeds also if the specified arguments and/or attacks are not in the AF. In that case, the AF is left unchanged.
visitSuc and visitFlr: correspond to visits to terminal nodes and return true (success) and false (failure), respectively.
visitNdt: implements a concatenation of + operators, inspecting the guards of all its children and randomly selecting a branch to execute among the possible ones. A guard can be a waiting check or either of the waiting tests. If no guards are found with satisfiable conditions, visitNdt waits for changes in the AF until some child can be executed.
visitGpa: implements a concatenation of
visitIte: behaves like an if-then-else construct. The first child must be an expression with guaranteed termination (either success or failure). The children are executed in the same order in which they are specified and, as soon as a satisfiable guard is found, the corresponding branch is executed. Since some child can be a waiting expression, visitIte is not guaranteed to terminate.
visitCkw and visitCkf: check if a given set of arguments and/or attacks is present in the argumentation space. In case of success, both nodes visit the consequent action. On the other hand, when the argumentation space does not contain the specified parts of AF, visitCkw waits for the condition to become true, while visitCkf immediately returns false and leads to branch failure.
visitTcw, visitTcf, visitTsw and visitTsf: call a solver6
ConArg website:
In addition to the visiting functions, we have a set of core functions responsible for managing auxiliary tasks, like starting new threads when a parallel composition is detected, making changes to the shared AF and computing the semantics for the test operations. All the components are put together in the Main class, which takes in input and runs the user-defined program. First of all, the input stream (a string containing the definition of the program to run) is passed to the lexer, which extracts the tokens and sends them to the parser. Then, the parser uses the tokens to generate a tree ready to be traversed (see Fig. 15 for an example.). Finally, the visitor walks the tree and executes the program.

Parse tree of the cla program in Example 5.
The synchronisation between parallel cla agents is obtained in form of interleaving, i.e., only one agent is handled by the processor at a time. To implement the interleaving approach in cla we use the functionality provided by Python’s multiprocessing package. In particular, we rely on two fundamental components to manage the synchronisation of parallel processes: threads and shared variables. First, when the parser detects a construct that requires the parallel execution of two branches, separate threads are started whose management and scheduling are then automatically delegated to the processor. In each thread, the execution of the cla program continues independently, with the possibility of starting further parallel processes. Secondly, access to the shared AF is also managed so as not to cause the generation of inconsistent information. The AF itself is stored in a shared variable, access to which can be managed with a lock-and-unlock system: when any thread wants to read or write the contents of this variable, it must first request control over it, which is granted to only one thread at a time. Control is then released at the end of the operation. Read and write operations on the AF thus become atomic.
The implementation of cla can be used for both research purposes and practical applications. Although in this paper we are not going to address the issues arising from the computational complexity of argumentation problems [33], we want to point out that efficient implementations of cla programs can be achieved by using, for example, the grounded semantics, for which finding and verifying extensions is a task that can be performed in polynomial time [33].
A formalism for expressing dynamics in AFs is defined in [43] as a Dynamic Argumentation Framework (DAF). The aim of that paper is to provide a method for instantiating Dung-style AFs by considering a universal set of arguments U. A DAF consists of an AF
The impact of modifications on an AF in terms of sets of extensions is studied in [26]. Different kinds of revision are introduced, in which a new argument interacts with an already existing one. The authors describe different kinds of revision differing in the number of extensions that appear in the outcome, with respect to a semantics: a decisive revision allows to obtain a unique non-empty extension, a selective revision reduces the number of extensions (to a minimum of two), while a questioning one increases that number; a destructive revision eliminates all extensions, an expansive revision maintain the number of extensions and increases the number of accepted arguments; a conservative revision does not introduce changes on the semantics level, and an altering revision adds and deletes arguments in the extensions. All these revisions are obtained through the addition of a single argument, together with a single attack relation either towards or from the original AF, and can be implemented as procedures of our language. The review operator we define in the syntax of our language (as the other two operator for expansion and contraction), instead, does not consider whole extensions, but just an argument at a time, allowing communicating agents to modify their beliefs in a finer grain.
Focusing on syntactic expansion of an AF (the mere addition of arguments and attacks), [8] show under which conditions a set of arguments can be enforced (to become accepted) for a specific semantics. Moreover, since adding new arguments and attacks may lead to a decrease in term of extensions and accepted arguments, the authors also investigate whether an expansion behaves in a monotonic fashion, thus preserving the status of all originally accepted arguments. The study is only conducted on the case of weak expansion (that adds further arguments which do not attack previous arguments). The notion of expansion we use in the presented work is very different from that in [8]. First of all, we take into account semantics when defining the expansion, making it more similar to an enforcement itself: we can increment the labels of an argument so to match a desired acceptance status. Therefore, our expansion turns out to be more general, being able to change the status of a given topic not only accepted but also rejected, indecisive or indeterminate. This is useful, for instance, when we want to diminish the beliefs of an opponent agent.
Enforcing is also studied in [28], where the authors consider an expansion of the AF that only allows the addition of new attack relations, while the set of arguments remains the same (differently from [8]). It is shown, indeed, that if no new argument is introduced, it is always possible to guarantee the success of enforcement for any classical semantics. Also in this case, we want to highlight the differences with our work. Starting from the modifications allowed into the framework, we are not limited to only change the set of relations, since we implement procedures that also add and remove arguments. Moreover, the operators we define are not just enforcement operators, since they allow to modify the acceptability status of a single argument of an AF.
In our model, AFs are equipped with a universe of arguments that agents use to add new information in the knowledge base. The problem of combining AFs is addressed in [9], that study the computational complexity of verifying if a subset of argument is an extension for a certain semantics in incomplete argumentation frameworks obtained by merging different beliefs. The incompleteness is considered both for arguments and attack relation. Similarly to our approach, arguments (and attacks) can be brought forward by agents and used to build new acceptable extensions. On the other hand, the scope of [9] is focused on a complexity analysis and does not provide implementations for the merging.
The authors of [36] introduce a model for representing the mental states of agents. In the proposed setting, argumentation is used to express changes in agents’ intentions produced as a consequence of interaction processes, with a particular focus on negotiation. The mental model of an agent is defined via a specifically designed logical model, which is then used to evaluate the beliefs through argumentation semantics. This logic is intended to allow one to examine single agents rather than the interaction between multiple agents. In this aspect, and in the fact that only negotiation is considered as a possible communicative process, the work in [36] diverges from ours, which, instead, aims at providing a flexible framework for modelling any kind of (possibly concurrent) interaction, using argumentation to handle beliefs belonging to all the involved agents.
The integration of new agents (and therefore new beliefs) in an existing system is a challenging problem that needs to be addressed in order to enable dynamics in open multi-agent systems. The concurrent programming language of [47] builds upon the Ask-and-Tell paradigm [44] to allow a form of communication between agents which can resort to a parametric belief revision operator to adjust their beliefs and integrate additional knowledge. Differently from ours, such a language focuses on the exchange of information between agents without providing any mechanism for reasoning on shared information, therefore precluding the possibility of modelling protocols like negotiation and persuasion.
Different frameworks have been adopted to model communication processes in multi-agent systems. Among those frameworks, Petri Nets offer the capability of representing concurrent interactions, besides verifying particular properties (like reachability and liveness) related to agents’ behaviour. In [27], Coloured Petri Nets constitute the basis of a language for conversation specification. A conversation is intended here as a sequence of actions that can also happen simultaneously, and that can realise protocols like negotiation. However, the authors do not consider the notion of beliefs belonging to agents in the system and they only aim at modelling the series of actions that correspond to a certain form of interaction.
The possibility of concurrent actions performed by agents is also contemplated in [5], where Dung-style AFs are extended to directly integrate a notion of persuasion. In the resulting formalism, called Abstract Persuasion Argumentation Framework (APA), the classical notion of defence is reinterpreted to accommodate a broader meaning, including the ability to persuade as well as defend. In particular, arguments in an APA can be converted (and thus transformed) into other arguments. A subsequent work [4] further extends APAs with numerical values which also make it possible to represent resource allocations and conditional relations between arguments. Even if persuasion is presented in these works as dynamic relation, APAs (and their extension) cannot represent dynamic interactions between agents, which we can model instead through the constructs of our language. Moreover, in our general setting, not only negotiation as in [4,5], but any process between multiple agents can be modelled.
A timed version of cla has been studied in [12,13] with the introduction of constructs allowing for the specification of temporal intervals in which actions occur. Expressions, for instance, are endowed with timeouts that, once expired, make the execution terminate with failure. This behaviour could better represents real-world situations in which timed applications cannot indefinitely wait for an event to happen. Concurrent operations, then, are modelled following a maximum parallelism approach (i.e., it is assumed that there are infinite processors, and all parallel operations can be performed simultaneously). An interleaving model on a single processor is adopted instead in [14] for basic cla computation steps. Contrary to maximum parallelism, the interleaving approach limits the number of enabled agents executed at a time, mimicking the limited number of available processors as in the real world: only one of the enabled agents is executed at each instant of time, while all the other agents may have to wait for the processor to be free.
Conclusion and future work
We introduced a concurrent language for argumentation, that can be used by (intelligent) agents to implement different forms of communication. The agents involved in the process share an AF that serves as an argumentation space and where arguments represent the agreed beliefs. The shared AF can be modified via a set of primitives that allow the addition and removal of arguments and attacks. All agents have at their disposal a universe of arguments to choose from when they need to introduce new information. Besides operations at a syntactic level, we also defined semantic operations that verify the acceptability of the arguments in the store. The functioning of all cla operations was described in detail and shown through explanatory examples, emphasising how the parallel execution of multiple processes takes place. Finally, we presented a tool (also endowed with a web interface) for modelling concurrent argumentation processes written in cla, giving insights on the implementation choices and describing the main components of the tool.
For the future, we plan to extend this work in many directions. First of all, given the known issues of abstract argumentation [41], we want to consider (semi-)structured AFs, e.g., CAFs [34], and provide an implementation for our expansion, contraction and revision operators, for which a different store (structured and not abstract, indeed) need to be considered. The concurrent primitives are already general enough and do not require substantial changes.
On the operations level, we are currently only able to modify the acceptance status of the arguments, without further considerations on the obtained semantics. To gain control also over changes on the set of extensions, we want to introduce operators able to obtain a specified semantics (when possible) or to leave it unchanged (this can be done relying on the notion of robustness [15]).
Then, we would like to investigate the relation between the revision operations that can be implemented in cla and the AGM postulates for belief revision [1]. Following this direction, we could devise a set of AGM-style operations that allow for modifying an AF (the shared memory our agents access to communicate) and changing the status of its arguments so as to allow negotiation and the other forms of dialogues. Chatbots using argumentation techniques to interact with the users could benefit from this approach.
As a final consideration, whereas in real-life cases it is always clear which part involved in a debate is stating a particular argument, AFs do not hold any notion of “ownership” for arguments or attacks, that is, any bond with the one making the assertion is lost. To overcome this problem, we want to implement the possibility of attaching labels on (groups of) arguments and attacks of AFs, in order to preserve the information related to who added a certain argument or attack, extending and taking into account the work in [37]. Consequently, we can also obtain a notion of locality (or scope) of the belief in the argumentation space: arguments owned by a given agents can be placed into a local store and used in the implementation of specific operators through hidden variables.
Footnotes
Acknowledgement
We thank the anonymous reviewers for their insightful comments and valuable suggestions. Stefano Bistarelli and Carlo Taticchi are members of the INdAM Research group GNCS and of Consorzio CINI. This work has been partially supported by: GNCS-INdAM, CUP E55F22000270001; Project RACRA – funded by Ricerca di Base 2018-2019, University of Perugia; Project BLOCKCHAIN4FOODCHAIN: funded by Ricerca di Base 2020, University of Perugia; Project DopUP – REGIONE UMBRIA PSR 2014-2020; Project GIUSTIZIA AGILE, CUP: J89J22000900005.
