Class Independence


  • public class Independence
    extends java.lang.Object
    This class implements methods for computing conditional independence of sets of arguments in abstract argumentation Rienstra, Tjitze, et al. "Independence and D-separation in Abstract Argumentation." Proceedings of the International Conference on Principles of Knowledge Representation and Reasoning. Vol. 17. No. 1. 2020.
    Author:
    Lars Bengel
    • Constructor Summary

      Constructors 
      Constructor Description
      Independence()  
    • Method Summary

      Modifier and Type Method Description
      static SimpleGraph<Argument> computeDGraph​(DungTheory theory)
      transform the given AF into a DAG (D-graph) by adding new meta argument for each strongly connected component
      static boolean isIndependent​(DungTheory theory, java.util.Collection<Argument> argsA, java.util.Collection<Argument> argsB, java.util.Collection<Argument> argsC)
      compute whether args and argsB are independent given argsC in the given AF argsA, argsB and argsC are disjoint
      static boolean isIndependent​(DungTheory theory, java.util.Collection<Argument> argsA, java.util.Collection<Argument> argsB, java.util.Collection<Argument> argsC, boolean pruneOutAttacks)
      compute whether args and argsB are independent given argsC in the given AF argsA, argsB and argsC are disjoint
      static java.util.Collection<java.util.Collection<Argument>> isIndependentGiven​(DungTheory theory, java.util.Collection<Argument> argsA, java.util.Collection<Argument> argsB)
      compute the smallest set of arguments which needs to be observed so that argsA and argsB are independent in the given AF argsA and argsB are disjoint
      static java.util.Collection<java.util.Collection<Argument>> isIndependentGiven​(DungTheory theory, java.util.Collection<Argument> argsA, java.util.Collection<Argument> argsB, boolean pruneOutAttacks)
      compute the smallest set of arguments which needs to be observed so that argsA and argsB are independent in the given AF argsA and argsB are disjoint
      static SimpleGraph<Argument> pruneDGraph​(SimpleGraph<Argument> dGraph, java.util.Collection<Argument> argsA, java.util.Collection<Argument> argsB, java.util.Collection<Argument> argsC)
      prune the given DAG by removing all leaf nodes, which are not in any of the given sets and removing all outgoing edges from nodes in argsC
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Independence

        public Independence()
    • Method Detail

      • isIndependent

        public static boolean isIndependent​(DungTheory theory,
                                            java.util.Collection<Argument> argsA,
                                            java.util.Collection<Argument> argsB,
                                            java.util.Collection<Argument> argsC,
                                            boolean pruneOutAttacks)
        compute whether args and argsB are independent given argsC in the given AF argsA, argsB and argsC are disjoint
        Parameters:
        theory - a dung theory
        argsA - a set of arguments
        argsB - a set of arguments
        argsC - a set of arguments
        pruneOutAttacks - a flag indicating if attacks from arguments that are always out should be pruned. default=false
        Returns:
        true iff argsA and argsB are independent given argsC in theory
      • isIndependent

        public static boolean isIndependent​(DungTheory theory,
                                            java.util.Collection<Argument> argsA,
                                            java.util.Collection<Argument> argsB,
                                            java.util.Collection<Argument> argsC)
        compute whether args and argsB are independent given argsC in the given AF argsA, argsB and argsC are disjoint
        Parameters:
        theory - a dung theory
        argsA - a set of arguments
        argsB - a set of arguments
        argsC - a set of arguments
        Returns:
        true iff argsA and argsB are independent given argsC in theory
      • isIndependentGiven

        public static java.util.Collection<java.util.Collection<Argument>> isIndependentGiven​(DungTheory theory,
                                                                                              java.util.Collection<Argument> argsA,
                                                                                              java.util.Collection<Argument> argsB,
                                                                                              boolean pruneOutAttacks)
        compute the smallest set of arguments which needs to be observed so that argsA and argsB are independent in the given AF argsA and argsB are disjoint
        Parameters:
        theory - a dung theory
        argsA - a set of arguments
        argsB - a set of arguments
        pruneOutAttacks - a flag indicating if attacks from arguments that are always out should be pruned. default=false
        Returns:
        the smallest set of arguments which we need to observe so that argsA and argsB are independent
      • isIndependentGiven

        public static java.util.Collection<java.util.Collection<Argument>> isIndependentGiven​(DungTheory theory,
                                                                                              java.util.Collection<Argument> argsA,
                                                                                              java.util.Collection<Argument> argsB)
        compute the smallest set of arguments which needs to be observed so that argsA and argsB are independent in the given AF argsA and argsB are disjoint
        Parameters:
        theory - a dung theory
        argsA - a set of arguments
        argsB - a set of arguments
        Returns:
        the smallest set of arguments which we need to observe so that argsA and argsB are independent
      • computeDGraph

        public static SimpleGraph<Argument> computeDGraph​(DungTheory theory)
        transform the given AF into a DAG (D-graph) by adding new meta argument for each strongly connected component
        Parameters:
        theory - a dung theory
        Returns:
        the d-graph of the given AF
      • pruneDGraph

        public static SimpleGraph<Argument> pruneDGraph​(SimpleGraph<Argument> dGraph,
                                                        java.util.Collection<Argument> argsA,
                                                        java.util.Collection<Argument> argsB,
                                                        java.util.Collection<Argument> argsC)
        prune the given DAG by removing all leaf nodes, which are not in any of the given sets and removing all outgoing edges from nodes in argsC
        Parameters:
        dGraph - a DAG
        argsA - a set of arguments
        argsB - a set of arguments
        argsC - a set of arguments
        Returns:
        the pruned DAG