Class ArgumentationReasoner

  • All Implemented Interfaces:
    QualitativeReasoner<ArgumentationKnowledgeBase,​Argument>, Reasoner<java.lang.Boolean,​ArgumentationKnowledgeBase,​Argument>
    Direct Known Subclasses:
    LiteralReasoner

    public class ArgumentationReasoner
    extends java.lang.Object
    implements QualitativeReasoner<ArgumentationKnowledgeBase,​Argument>
    This class models a reasoner for extended logic programming based arguments using the fixpoint semantics from [1] parameterised by a notion of attack x for the opponent and another notion of attack y as a defense for the proponent. This base implementation only allows to query whether an argument A is x/y-justified in a ELP P. A is called x/y-acceptable wrt. a set of arguments S if for every argument B in P such that (B,A) \in x there exists an argument C \in S such that (C,B) \in y. The set of acceptable arguments for P is defined as the fixpoint J_{P,x/y} of the function F_{P,x/y}(S) = { A | A is x/y-acceptable with regard to S} In [1] it is shown that J_{a/u} equals Dung's grounded semantics, J_{u/su} equals the well founded semantics for normal logic programs and J_{u/a} equals the well-founded semantics for logic programs with explicit negation. [1] Ralf Schweimeier and Michael Schroeder: A Parameterised Hierarchy of Argumentation Semantics for Extended Logic Programming and its Application to the Well-founded Semantics. In: Theory and Practice of Logic Programming, 5(1-2):207-242, 2003.
    Author:
    Sebastian Homann
    • Constructor Detail

      • ArgumentationReasoner

        public ArgumentationReasoner​(AttackStrategy attack,
                                     AttackStrategy defence)
        Creates a new ArgumentationReasoner parameterised by a notion of attack for the opponent and another notion of attack for the defense
        Parameters:
        attack - some attack strategy
        defence - some attack strategy
    • Method Detail

      • isOverruled

        public boolean isOverruled​(ArgumentationKnowledgeBase kb,
                                   Argument arg)
        An argument is called x/y-overruled, if it is attacked by an x/y-justified argument.
        Parameters:
        kb - a knowledge base
        arg - an argument
        Returns:
        true iff arg is x-attacked by an x/y-justified argument
      • isDefensible

        public boolean isDefensible​(ArgumentationKnowledgeBase kb,
                                    Argument arg)
        An argument is called x/y-defensible if it is neither x/y-justified nor x/y-overruled.
        Parameters:
        kb - a knowledge base
        arg - an argument
        Returns:
        true iff arg is neither x/y-justified nor x/y-overruled.
      • getJustifiedArguments

        public java.util.Set<Argument> getJustifiedArguments​(ArgumentationKnowledgeBase kb)
        Returns the set of x/y-justified arguments using a bottom-up fixpoint calculation
        Parameters:
        kb - a knowledge base
        Returns:
        the set of x/y-justified arguments
      • getOverruledArguments

        public java.util.Set<Argument> getOverruledArguments​(ArgumentationKnowledgeBase kb)
        Returns the set of overruled arguments, i.e. the set of arguments, which are attacked by a justified argument.
        Parameters:
        kb - a knowledge base
        Returns:
        the set of overruled arguments.
      • getDefensibleArguments

        public java.util.Set<Argument> getDefensibleArguments​(ArgumentationKnowledgeBase kb)
        Returns the set of defensible arguments, i.e. the set of arguments, that are neither justified nor overruled.
        Parameters:
        kb - a knowledge base
        Returns:
        the set of defensible arguments.