Class ArgumentationBasedCausalReasoner

All Implemented Interfaces:
ModelProvider<PlFormula,CausalKnowledgeBase,CausalInterpretation>, QualitativeReasoner<CausalKnowledgeBase,PlFormula>, Reasoner<Boolean,CausalKnowledgeBase,PlFormula>

public class ArgumentationBasedCausalReasoner extends AbstractArgumentationBasedCausalReasoner
Implements the approach to argumentation-based causal reasoning as described in

Lars Bengel, Lydia Blümel, Tjitze Rienstra and Matthias Thimm, 'Argumentation-based Causal and Counterfactual Reasoning', 1st International Workshop on Argumentation for eXplainable AI (ArgXAI), (2022)
Author:
Lars Bengel
  • Constructor Details

    • ArgumentationBasedCausalReasoner

      public ArgumentationBasedCausalReasoner()
  • Method Details

    • getInducedTheory

      public DungTheory getInducedTheory(CausalKnowledgeBase cbase, Collection<PlFormula> observations, Map<Proposition,Boolean> interventions)
      Description copied from class: AbstractArgumentationBasedCausalReasoner
      Constructs a logical argumentation framework from a given causal knowledge base and some observations
      Specified by:
      getInducedTheory in class AbstractArgumentationBasedCausalReasoner
      Parameters:
      cbase - some causal knowledge base
      observations - some logical formulae representing the observations of causal atoms
      interventions - a set of interventions on causal atoms
      Returns:
      the argumentation framework induced from the causal knowledge base and the observations
    • query

      public boolean query(CausalKnowledgeBase cbase, CausalStatement statement)
      Determines whether the given causal statements holds under the causal knowledge base
      Parameters:
      cbase - some causal knowledge base
      statement - some causal statement
      Returns:
      TRUE iff the causal statement holds under the causal knowledge base
    • query

      public boolean query(CausalKnowledgeBase cbase, InterventionalStatement statement)
      Determines whether the given causal statements holds under the causal knowledge base
      Parameters:
      cbase - some causal knowledge base
      statement - some causal statement with interventions
      Returns:
      TRUE iff the causal statement holds under the causal knowledge base
    • getSignificantAtoms

      public Map<Proposition,Collection<Proposition>> getSignificantAtoms(CausalKnowledgeBase cbase, Collection<PlFormula> observations, Map<Proposition,Boolean> interventions, Collection<Proposition> atomFilter)
      Computes, for each atom that appears in the knowledge base, the set of atoms that are significant for establishing that conclusion under the given observations and interventions.

      This method:

      • Induces an argumentation theory from the given knowledge base, observations, and interventions.
      • Groups arguments by the (single) atom occurring in their conclusion (positive or negated).
      • Collects, per atom, all arguments concluding that atom (or its negation) and all their ancestors in the attack graph.
      • For each of these arguments, retrieves kernels for the argument’s conclusion under a belief set extended with the argument’s premises, and gathers all atoms that appear in those kernels.
      Parameters:
      cbase - some causal knowledge base
      observations - some logical formulae representing the observations of causal atoms
      interventions - a set of interventions on causal atoms
      atomFilter - atoms for which to get the significant atoms. If null, the filter is not applied.
      Returns:
      the argumentation framework induced from the causal knowledge base and the observations
    • getPerAtomArgumentsWithAtomInConclusion

      public Map<Proposition,Collection<CausalArgument>> getPerAtomArgumentsWithAtomInConclusion(DungTheory theory, Collection<Proposition> atomFilter)
      Returns, for each atom, the set of arguments whose conclusion is the atom or its negation.
      Parameters:
      theory - the theory containing the arguments
      atomFilter - atoms for which to get the significant atoms. If null, the filter is not applied.
      Returns:
      a map from atom to the set of matching arguments