Class AbstractBipolarFramework
java.lang.Object
org.tweetyproject.commons.BeliefSet<BArgument,DungSignature>
org.tweetyproject.arg.bipolar.syntax.AbstractBipolarFramework
- All Implemented Interfaces:
Iterable<BArgument>
,Collection<BArgument>
,BeliefBase
,GeneralGraph<BArgument>
,Graph<BArgument>
- Direct Known Subclasses:
AbstractEAFTheory
,DeductiveArgumentationFramework
,EvidentialArgumentationFramework
,NecessityArgumentationFramework
public abstract class AbstractBipolarFramework
extends BeliefSet<BArgument,DungSignature>
implements Graph<BArgument>
This class implements a bipolar abstract argumentation framework with attack and support relations.
Both relations need to have the form (BipolarEntity, BArgument)
- Author:
- Lars Bengel
-
Field Summary
Fields inherited from class org.tweetyproject.commons.BeliefSet
EQUALS_USES_SIGNATURE
Fields inherited from interface org.tweetyproject.graphs.Graph
IGNORE_SELFLOOPS, INVERT_SELFLOOPS, REMOVE_SELFLOOPS
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionabstract boolean
Adds the given attack to this argumentation frameworkboolean
Adds argument to this argumentation frameworkabstract boolean
Adds the given support to this argumentation framework.boolean
Adds argument to this argumentation framework for better compatibility between dung theories and bipolar argumentation frameworksboolean
add
(GeneralEdge<BArgument> edge) Adds the given edge to this graph.boolean
addAllAttacks
(Collection<? extends Attack> c) Adds the set of attacks to this argumentation frameworkboolean
addAllSupports
(Collection<? extends Support> c) Adds the set of supports to this argumentation frameworkboolean
areAdjacent
(BArgument a, BArgument b) Returns "true" iff the two nodes are connected by a directed edge from a to b or an undirected edge.boolean
existsDirectedPath
(BArgument node1, BArgument node2) Checks whether there is a (directed) path from node1 to node2.faf
(ArgumentSet extension) The characteristic function of an bipolar argumentation framework: F_AF(S) = {A|A is acceptable wrt.Returns the adjacency matrix of this graph (the order of the nodes is the same as returned by "iterator()").getAttacked
(BipolarEntity arg) Computes the set {A | (argument,A) in attacks}.getAttackers
(BArgument argument) Computes the set {A | (A,argument) in attacks}.Returns all attacks of this theory.getChildren
(Node node) Returns the set of children (node connected via an undirected edge or a directed edge where the given node is the parent) of the given node.getComplementGraph
(int i) Returns the complement graph of this graph, i.e.Computes the set {A | (argument,A) in supports}.getDirectSupporters
(BArgument argument) Computes the set {A | (A,argument) in supports}.Returns the corresponding edge (a,b) if a and b are adjacent.Collection
<? extends Edge<? extends BArgument>> getEdges()
Returns the edges of this graph.Returns the signature of the language of this knowledge base.getNeighbors
(BArgument node) Returns the set of neighbors of the given node.getNodes()
Returns the nodes of this graph.int
Returns the number of edges in this graph.int
Returns the number of nodes in this graph.getParents
(Node node) Returns the set of parents (node connected via an undirected edge or a directed edge where the given node is the child) of the given node.getRestriction
(Collection<BArgument> collection) Returns a copy of this graph that contains only the specified nodes and all corresponding edges between them.Returns the strongly connected components of this graph.Returns the set of sub graphs of this graph.Returns all supports of this theory.boolean
Returns "true" iff the graph has a self loop (an edge from a node to itself).abstract boolean
isAcceptable
(BArgument argument, Collection<BArgument> ext) checks whether argument is acceptable wrt.boolean
isAttackedBy
(BArgument arg1, BipolarEntity arg2) Checks whether arg1 is attacked by arg2.boolean
isDirectSupportedBy
(BArgument arg1, BipolarEntity arg2) Checks whether arg1 is directly supported by arg2.boolean
Checks whether this graph only contains weighted edges.Pretty print of the framework.boolean
Removes the given attack from this argumentation framework.boolean
Removes the argument and all its attacks and supportsboolean
Removes the given support from this argumentation framework.boolean
removeAll
(Collection<?> c) Methods inherited from class org.tweetyproject.commons.BeliefSet
add, addAll, clear, contains, containsAll, equals, getSignature, hashCode, isEmpty, iterator, remove, retainAll, setSignature, size, toArray, toArray, toString, toString
Methods inherited from interface java.util.Collection
parallelStream, removeIf, spliterator, stream, toArray
-
Constructor Details
-
AbstractBipolarFramework
public AbstractBipolarFramework()Default Constructor
-
-
Method Details
-
getDirectSupporters
Computes the set {A | (A,argument) in supports}.- Parameters:
argument
- an argument- Returns:
- the set of all bipolar entities that support
argument
.
-
getDirectSupported
Computes the set {A | (argument,A) in supports}.- Parameters:
arg
- an instance of bipolar entity- Returns:
- the set of all arguments that are supported by
argument
.
-
getAttackers
Computes the set {A | (A,argument) in attacks}.- Parameters:
argument
- an argument- Returns:
- the set of all bipolar entities that attack
argument
.
-
getAttacked
Computes the set {A | (argument,A) in attacks}.- Parameters:
arg
- an instance of bipolar entity- Returns:
- the set of all arguments that are attacked by
argument
.
-
isAcceptable
checks whether argument is acceptable wrt. ext- Parameters:
argument
- some argumentext
- a set of arguments- Returns:
- "true" if argument is acceptable wrt. ext
-
faf
The characteristic function of an bipolar argumentation framework: F_AF(S) = {A|A is acceptable wrt. S}.- Parameters:
extension
- an extension (a set of arguments).- Returns:
- an extension (a set of arguments).
-
isDirectSupportedBy
Checks whether arg1 is directly supported by arg2.- Parameters:
arg1
- an argument.arg2
- a bipolar entity- Returns:
- "true" if arg1 is directly supported by arg2
-
isAttackedBy
Checks whether arg1 is attacked by arg2.- Parameters:
arg1
- an argument.arg2
- a bipolar entity- Returns:
- "true" if arg1 is directly attacked by arg2
-
getSupports
-
getAttacks
-
add
Adds the given support to this argumentation framework.- Parameters:
support
- a support- Returns:
- "true" if the set of supports has been modified.
-
addAllSupports
Adds the set of supports to this argumentation framework- Parameters:
c
- a collection of supports- Returns:
- "true" if this argumentation framework has been modified.
-
add
Adds the given attack to this argumentation framework- Parameters:
attack
- an attack- Returns:
- "true" if the set of attacks has been modified.
-
addAllAttacks
Adds the set of attacks to this argumentation framework- Parameters:
c
- a collection of attacks- Returns:
- "true" if this argumentation framework has been modified.
-
add
Adds argument to this argumentation framework- Specified by:
add
in interfaceCollection<BArgument>
- Specified by:
add
in interfaceGraph<BArgument>
- Overrides:
add
in classBeliefSet<BArgument,
DungSignature> - Parameters:
argument
- some argument- Returns:
- "true" if this framework has been modified
-
add
Adds argument to this argumentation framework for better compatibility between dung theories and bipolar argumentation frameworks- Parameters:
argument
- some argument- Returns:
- "true" if this framework has been modified
-
remove
Removes the given support from this argumentation framework.- Parameters:
support
- a support- Returns:
- "true" if the set of supports has been modified.
-
remove
Removes the given attack from this argumentation framework.- Parameters:
attack
- an attack- Returns:
- "true" if the set of supports has been modified.
-
remove
Removes the argument and all its attacks and supports- Parameters:
a
- some argument- Returns:
- true if this structure has been changed
-
removeAll
- Specified by:
removeAll
in interfaceCollection<BArgument>
- Overrides:
removeAll
in classBeliefSet<BArgument,
DungSignature>
-
prettyPrint
Pretty print of the framework.- Returns:
- the pretty print of the framework.
-
getMinimalSignature
Description copied from interface:BeliefBase
Returns the signature of the language of this knowledge base.- Specified by:
getMinimalSignature
in interfaceBeliefBase
- Returns:
- the signature of the language of this knowledge base.
-
add
Description copied from interface:Graph
Adds the given edge to this graph. If at least one of the nodes the given edge connects is not in the graph, an illegal argument exception is thrown. -
getNodes
Description copied from interface:Graph
Returns the nodes of this graph. -
getNumberOfNodes
public int getNumberOfNodes()Description copied from interface:Graph
Returns the number of nodes in this graph.- Specified by:
getNumberOfNodes
in interfaceGraph<BArgument>
- Returns:
- the number of nodes in this graph.
-
getNumberOfEdges
public int getNumberOfEdges()Description copied from interface:Graph
Returns the number of edges in this graph.- Specified by:
getNumberOfEdges
in interfaceGraph<BArgument>
- Returns:
- the number of edges in this graph.
-
areAdjacent
Description copied from interface:Graph
Returns "true" iff the two nodes are connected by a directed edge from a to b or an undirected edge.- Specified by:
areAdjacent
in interfaceGraph<BArgument>
- Parameters:
a
- some nodeb
- some node- Returns:
- "true" iff the two nodes are connected by a directed edge from a to b or an undirected edge.
-
getEdge
Description copied from interface:Graph
Returns the corresponding edge (a,b) if a and b are adjacent. Otherwise it returns null. -
getEdges
Description copied from interface:Graph
Returns the edges of this graph. -
getChildren
Description copied from interface:Graph
Returns the set of children (node connected via an undirected edge or a directed edge where the given node is the parent) of the given node.- Specified by:
getChildren
in interfaceGraph<BArgument>
- Parameters:
node
- some node (must be in the graph).- Returns:
- the set of children of the given node.
-
getParents
Description copied from interface:Graph
Returns the set of parents (node connected via an undirected edge or a directed edge where the given node is the child) of the given node.- Specified by:
getParents
in interfaceGraph<BArgument>
- Parameters:
node
- some node (must be in the graph).- Returns:
- the set of parents of the given node.
-
existsDirectedPath
Description copied from interface:Graph
Checks whether there is a (directed) path from node1 to node2.- Specified by:
existsDirectedPath
in interfaceGraph<BArgument>
- Parameters:
node1
- some node.node2
- some node.- Returns:
- "true" if there is a directed path from node1 to node2.
-
getNeighbors
Description copied from interface:Graph
Returns the set of neighbors of the given node.- Specified by:
getNeighbors
in interfaceGraph<BArgument>
- Parameters:
node
- some node (must be in the graph).- Returns:
- the set of neighbors of the given node.
-
getAdjacencyMatrix
Description copied from interface:Graph
Returns the adjacency matrix of this graph (the order of the nodes is the same as returned by "iterator()").- Specified by:
getAdjacencyMatrix
in interfaceGraph<BArgument>
- Returns:
- the adjacency matrix of this graph
-
getComplementGraph
Description copied from interface:Graph
Returns the complement graph of this graph, i.e. the graph on the same set of vertices as this graph that connects two vertices v and w with an edge if and only if v and w are not connected in this graph.- Specified by:
getComplementGraph
in interfaceGraph<BArgument>
- Parameters:
i
- Indicates how to deal with selfloops:
IGNORE_SELFLOOPS - ignore self loops (don't add and don't remove)
INVERT_SELFLOOPS - deal with self loops like ordinary edges (add if not present and remove if present)
REMOVE_SELFLOOPS - simple remove self loops, but don't add new ones.- Returns:
- the complement graph of this graph.
-
getStronglyConnectedComponents
Description copied from interface:Graph
Returns the strongly connected components of this graph. A set of nodes is strongly connected, if there is a path from each node to each other. A set of nodes is called strongly connected component if it is strongly connected and maximal with respect to set inclusion.- Specified by:
getStronglyConnectedComponents
in interfaceGraph<BArgument>
- Returns:
- the strongly connected components of this graph.
-
getSubgraphs
Description copied from interface:Graph
Returns the set of sub graphs of this graph.- Specified by:
getSubgraphs
in interfaceGraph<BArgument>
- Returns:
- the set of sub graphs of this graph.
-
getRestriction
Description copied from interface:GeneralGraph
Returns a copy of this graph that contains only the specified nodes and all corresponding edges between them.This method generates a subgraph (or restricted graph) from the current graph by including only the given nodes and the edges that connect them. The returned graph is a new instance and does not modify the original graph.
- Specified by:
getRestriction
in interfaceGeneralGraph<BArgument>
- Parameters:
collection
- a collection of nodes to be included in the restricted graph.- Returns:
- a `GeneralGraph` object representing the restricted graph.
-
hasSelfLoops
public boolean hasSelfLoops()Description copied from interface:Graph
Returns "true" iff the graph has a self loop (an edge from a node to itself).- Specified by:
hasSelfLoops
in interfaceGraph<BArgument>
- Returns:
- "true" iff the graph has a self loop (an edge from a node to itself).
-
isWeightedGraph
public boolean isWeightedGraph()Description copied from interface:Graph
Checks whether this graph only contains weighted edges.- Specified by:
isWeightedGraph
in interfaceGraph<BArgument>
- Returns:
- "true" if all edges are weighted in this graph.
-