Package net.sf.tweety.arg.lp.reasoner
Class ArgumentationReasoner
- java.lang.Object
-
- net.sf.tweety.arg.lp.reasoner.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 Summary
Constructors Constructor Description 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
-
Method Summary
Modifier and Type Method Description java.util.Set<Argument>
getDefensibleArguments(ArgumentationKnowledgeBase kb)
Returns the set of defensible arguments, i.e.java.util.Set<Argument>
getJustifiedArguments(ArgumentationKnowledgeBase kb)
Returns the set of x/y-justified arguments using a bottom-up fixpoint calculationjava.util.Set<Argument>
getOverruledArguments(ArgumentationKnowledgeBase kb)
Returns the set of overruled arguments, i.e.boolean
isDefensible(ArgumentationKnowledgeBase kb, Argument arg)
An argument is called x/y-defensible if it is neither x/y-justified nor x/y-overruled.boolean
isOverruled(ArgumentationKnowledgeBase kb, Argument arg)
An argument is called x/y-overruled, if it is attacked by an x/y-justified argument.java.lang.Boolean
query(ArgumentationKnowledgeBase kb, Argument query)
Queries the given belief base for the given formula.
-
-
-
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 strategydefence
- some attack strategy
-
-
Method Detail
-
query
public java.lang.Boolean query(ArgumentationKnowledgeBase kb, Argument query)
Description copied from interface:Reasoner
Queries the given belief base for the given formula.- Specified by:
query
in interfaceQualitativeReasoner<ArgumentationKnowledgeBase,Argument>
- Specified by:
query
in interfaceReasoner<java.lang.Boolean,ArgumentationKnowledgeBase,Argument>
- Parameters:
kb
- a belief basequery
- a formula- Returns:
- the answer to the query
-
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 basearg
- 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 basearg
- 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.
-
-