Class BipolarArgumentationFramework
java.lang.Object
org.tweetyproject.commons.BeliefSet<Argument,DungSignature>
org.tweetyproject.arg.dung.syntax.DungTheory
org.tweetyproject.arg.bipolar.syntax.BipolarArgumentationFramework
- All Implemented Interfaces:
Comparable<DungTheory>,Iterable<Argument>,Collection<Argument>,ArgumentationFramework<Argument>,BeliefBase,GeneralGraph<Argument>,Graph<Argument>
This class implements a bipolar abstract argumentation theory with support and attack relation.
- Author:
- Lars Bengel
- See Also:
-
- "Cayrol C., A. Cohen, and M.-C. Lagasquie-Schiex. 'Higher-order interactions (bipolar or not) in abstract argumentation: A state of the art'. Handbook of Formal Argumentation Vol. 2, 2021."
- "Cohen A., S. Gottifredi, A. J. Garcia, and G. R. Simari. 'A survey of different approaches to support in argumentation systems'. Knowledge Engineering Review, 29(5):513–550, 2014."
-
Field Summary
Fields inherited from class org.tweetyproject.commons.BeliefSet
EQUALS_USES_SIGNATUREFields inherited from interface org.tweetyproject.graphs.Graph
IGNORE_SELFLOOPS, INVERT_SELFLOOPS, REMOVE_SELFLOOPS -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor; initializes empty sets of arguments, attacks and supportsConstruct new BAF from given graph -
Method Summary
Modifier and TypeMethodDescriptionbooleanAdds the given support to this bipolar argumentation framework.booleanaddAllSupports(Collection<? extends Support> c) Adds the set of supports to this framework.booleanaddSupport(Argument supporter, Argument supported) Adds a support from the first argument to the second to this bipolar argumentation framework.intCompare to other instance based on hash codeReturns the corresponding abstract argumentation framework where all supported and indirect attacks are included directlyInduces an argumentation framework by resolving the complex attacks of the given support interpretationComputes the coalition graph for this BAF.Computes the set of all coalition of this BAF A coalition is a maximal conflict-free set of arguments that is connected via the support relation.Computes the set of indirect attacks of this BAFComputes the set of mediated attacks of this BAFgetSupported(Collection<Argument> ext) Compute the set of arguments supported by extgetSupported(Argument arg) Compute the set of arguments supported by argComputes the set of supported attacks of this BAFgetSupporters(Collection<Argument> ext) Compute the set of arguments supporting by extgetSupporters(Argument arg) Compute the set of arguments supporting by argReturns the set of supports of this frameworkinthashCode()booleanisCoalition(Collection<Argument> args) Determines whether 'args' is a coalition, i.e., whether 'args' is a maximal conflict-free set of arguments that is connected via the support relation.booleanisCoherent(Collection<Argument> args) Determines whether 'args' is coherent, i.e., whether there exists no argument that is both (indirectly) supported and attacked (either supported or indirectly) by 'args'booleanDetermines whether 'args' is coherent admissible, i.e., whether 'args' is coherent and strongly defends all its argumentsbooleanisIndirectAttack(Argument arg1, Argument arg2) Determine if there is an indirect attack from arg1 to arg2booleanisMediatedAttack(Argument arg1, Argument arg2) Determine if there is a mediated attack from arg1 to arg2booleanDetermines whether 'args' is strongly conflict-free, i.e., whether 'args' is conflict-free wrt.booleanisStronglyDefendedBy(Collection<Argument> ext, Argument arg) Determines whether 'ext' strongly defends 'arg', i.e., whether 'arg' is defended under consideration of supported and indirect attacksbooleanisSupportedAttack(Argument arg1, Argument arg2) Determine if there is a supported attack from arg1 to arg2booleanisSupportedBy(Argument arg1, Argument arg2) Check whetherarg1is directly supported byarg2Pretty prints this BAFMethods inherited from class org.tweetyproject.arg.dung.syntax.DungTheory
add, add, add, add, add, addAllAttacks, addAttack, areAdjacent, clone, compareTo, contains, containsAll, containsAttack, containsCycle, containsOddCycle, equals, equalsIn, existsDirectedPath, faf, getAdjacencyMatrix, getAttacked, getAttacked, getAttackers, getAttackers, getAttacks, getBidirectionalAttacks, getChildren, getComplementGraph, getComponents, getConnectedComponents, getEdge, getEdges, getInducedSubgraphs, getMinimalSignature, getNeighbors, getNodes, getNumberOfEdges, getNumberOfNodes, getParents, getReduct, getReduct, getRestriction, getStronglyConnectedComponents, getSubgraphs, getUnattackedAttackers, getUndefendedAttacks, hasAttackBranch, hasDefenseBranch, hasSelfLoops, isAcceptable, isAdmissible, isAttackBranch, isAttacked, isAttacked, isAttackedBy, isAttackedBy, isAttackingAllOtherArguments, isCoherent, isComplete, isConflictFree, isConflictFree, isDefenseBranch, isPreferred, isRelativelyCoherent, isStable, isStronglyDefendedBy, isSupport, isWeightedGraph, isWellFounded, remove, remove, removeAll, toStringMethods inherited from class org.tweetyproject.commons.BeliefSet
add, addAll, clear, getSignature, isEmpty, iterator, remove, retainAll, setSignature, size, toArray, toArray, toStringMethods inherited from interface java.util.Collection
parallelStream, removeIf, spliterator, stream, toArrayMethods inherited from interface org.tweetyproject.graphs.Graph
getAncestors, getAncestors, iterator
-
Constructor Details
-
BipolarArgumentationFramework
public BipolarArgumentationFramework()Default constructor; initializes empty sets of arguments, attacks and supports -
BipolarArgumentationFramework
Construct new BAF from given graph- Parameters:
graph- some graph (must be an instance of BAF)
-
-
Method Details
-
isCoherent
Determines whether 'args' is coherent, i.e., whether there exists no argument that is both (indirectly) supported and attacked (either supported or indirectly) by 'args'- Parameters:
args- some set of arguments- Returns:
- "true" iff 'args' is coherent
-
isStronglyConflictFree
Determines whether 'args' is strongly conflict-free, i.e., whether 'args' is conflict-free wrt. supported and indirect attacks- Parameters:
args- some set of arguments- Returns:
- "true" iff 'args' is strongly conflict-free
-
isStronglyDefendedBy
Determines whether 'ext' strongly defends 'arg', i.e., whether 'arg' is defended under consideration of supported and indirect attacks- Parameters:
ext- some set of argumentsarg- some argument- Returns:
- "true" iff 'arg' is strongly defended by 'ext'
-
isCoherentAdmissible
Determines whether 'args' is coherent admissible, i.e., whether 'args' is coherent and strongly defends all its arguments- Parameters:
args- some set of arguments- Returns:
- "true" iff 'args' is coherent admissible
-
isCoalition
Determines whether 'args' is a coalition, i.e., whether 'args' is a maximal conflict-free set of arguments that is connected via the support relation.- Parameters:
args- some set of arguments- Returns:
- "true" if 'args' is a coalition of this BAF
-
getCoalitions
Computes the set of all coalition of this BAF A coalition is a maximal conflict-free set of arguments that is connected via the support relation.- Returns:
- the set of coalitions
-
getCoalitionGraph
Computes the coalition graph for this BAF. A coalition is a maximal conflict-free set of arguments that is connected via the support relation. There is an attack between two coalitions iff there is an attack between members of each coalition.- Returns:
- the coalition graph for this BAF
-
getAssociatedTheory
Returns the corresponding abstract argumentation framework where all supported and indirect attacks are included directly- Returns:
- an argumentation framework
-
getAssociatedTheory
Induces an argumentation framework by resolving the complex attacks of the given support interpretation- Parameters:
type- the support interpretation- Returns:
- the argumentation framework induced via the given support interpretation
-
isSupportedAttack
Determine if there is a supported attack from arg1 to arg2- Parameters:
arg1- some argumentarg2- some argument- Returns:
- "true" if there is a supported attack from arg1 to arg2
-
isIndirectAttack
Determine if there is an indirect attack from arg1 to arg2- Overrides:
isIndirectAttackin classDungTheory- Parameters:
arg1- some argumentarg2- some argument- Returns:
- "true" if there is an indirect attack from arg1 to arg2
-
isMediatedAttack
Determine if there is a mediated attack from arg1 to arg2- Parameters:
arg1- some argumentarg2- some argument- Returns:
- "true" if there is a mediated attack from arg1 to arg2
-
getSupportedAttacks
Computes the set of supported attacks of this BAF- Returns:
- the set of supported attacks of this BAF
-
getIndirectAttacks
Computes the set of indirect attacks of this BAF- Returns:
- the set of indirect attacks of this BAF
-
getMediatedAttacks
Computes the set of mediated attacks of this BAF- Returns:
- the set of mediated attacks of this BAF
-
getSupported
Compute the set of arguments supported by ext- Parameters:
ext- some set of arguments- Returns:
- the set of arguments supported by ext
-
getSupporters
Compute the set of arguments supporting by ext- Parameters:
ext- some set of arguments- Returns:
- the set of arguments supporting by ext
-
getSupported
Compute the set of arguments supported by arg- Parameters:
arg- some argument- Returns:
- the set of arguments supported by arg
-
getSupporters
Compute the set of arguments supporting by arg- Parameters:
arg- some argument- Returns:
- the set of arguments supporting by arg
-
add
Adds the given support to this bipolar argumentation framework.- Parameters:
supp- a support- Returns:
- "true" if the set of supports has been modified.
-
addSupport
Adds a support from the first argument to the second to this bipolar argumentation framework.- Parameters:
supporter- some argumentsupported- some argument- Returns:
- "true" if the set of supports has been modified.
-
addAllSupports
Adds the set of supports to this framework.- Parameters:
c- a collection of supports- Returns:
- "true" if this framework has been modified.
-
getSupports
Returns the set of supports of this framework- Returns:
- the set of supports
-
compareTo
Compare to other instance based on hash code- Parameters:
o- another BAF instance- Returns:
- the difference in hash code
-
hashCode
public int hashCode()- Specified by:
hashCodein interfaceCollection<Argument>- Overrides:
hashCodein classDungTheory
-
prettyPrint
Pretty prints this BAF- Overrides:
prettyPrintin classDungTheory- Returns:
- String representation of this BAF
-
isSupportedBy
Check whetherarg1is directly supported byarg2- Parameters:
arg1- some argumentarg2- some argument- Returns:
- 'true' if
arg1is directly supported byarg2
-