Package net.sf.tweety.arg.delp.syntax
Class DefeasibleLogicProgram
 java.lang.Object

 net.sf.tweety.commons.BeliefSet<DelpRule,FolSignature>

 net.sf.tweety.arg.delp.syntax.DefeasibleLogicProgram

 All Implemented Interfaces:
java.lang.Iterable<DelpRule>
,java.util.Collection<DelpRule>
,BeliefBase
public class DefeasibleLogicProgram extends BeliefSet<DelpRule,FolSignature>
This class models a defeasible logic program (DeLP). Author:
 Matthias Thimm


Field Summary

Fields inherited from class net.sf.tweety.commons.BeliefSet
EQUALS_USES_SIGNATURE


Constructor Summary
Constructors Constructor Description DefeasibleLogicProgram()
Default constructor; initializes empty delpFacts, strict and defeasible rules and empty comparison criterion.DefeasibleLogicProgram(DefeasibleLogicProgram delp)
constructor; initializes this program with the given program

Method Summary
Modifier and Type Method Description boolean
disagree(java.util.Set<FolFormula> literals)
Checks whether the given set of literals disagree with respect to the strict part of this program.java.util.Set<DelpArgument>
getArguments()
Returns the set of all possible arguments, that can be built in this delp.DungTheory
getDungTheory()
This method translates this delp into an abstract Dung theory.Signature
getMinimalSignature()
Returns the signature of the language of this knowledge base.java.util.Set<DelpRule>
getRulesWithHead(FolFormula l)
Returns all defeasible and strict rules appearing in this program with the given literal as headjava.util.Set<FolFormula>
getStrictClosure()
Computes the strict closure of the program, i.e., the set of all strictly derivable literals.java.util.Set<FolFormula>
getStrictClosure(java.util.Set<FolFormula> literals)
Computes the strict closure of the program, i.e., the set of all strictly derivable literals.java.util.Set<FolFormula>
getStrictClosure(java.util.Set<FolFormula> literals, java.util.Set<DefeasibleRule> defeasibleRules)
Computes the strict closure of the program, i.e., the set of all strictly derivable literals.java.util.Set<FolFormula>
getStrictClosure(java.util.Set<FolFormula> literals, java.util.Set<DefeasibleRule> defeasibleRules, boolean usefacts)
Computes the strict closure of the program, i.e., the set of all strictly derivable literals.DefeasibleLogicProgram
ground()
In general, a delp comprises of rule schemes with variables.DefeasibleLogicProgram
ground(java.util.Set<Constant> constants)
In general, a delp comprises of rule schemes with variables.boolean
isConsistent(java.util.Set<DefeasibleRule> rules)
Checks whether the given set of defeasible rules are consistent given the strict part of this program.boolean
isGround()
static void
main(java.lang.String[] args)
Parsing DeLP from given file and performing given query against it.java.lang.String
toString()

Methods inherited from class net.sf.tweety.commons.BeliefSet
add, add, addAll, clear, contains, containsAll, equals, getSignature, hashCode, isEmpty, iterator, remove, removeAll, retainAll, setSignature, size, toArray, toArray




Constructor Detail

DefeasibleLogicProgram
public DefeasibleLogicProgram()
Default constructor; initializes empty delpFacts, strict and defeasible rules and empty comparison criterion.

DefeasibleLogicProgram
public DefeasibleLogicProgram(DefeasibleLogicProgram delp)
constructor; initializes this program with the given program Parameters:
delp
 a defeasible logic program


Method Detail

ground
public DefeasibleLogicProgram ground()
In general, a delp comprises of rule schemes with variables. This methods returns the corresponding grounded theory, i.e., all schematic elements are replaced with all their grounded instances, where all occurring variables are replaced with constants in every possible way. The set of constants used is the set of constants appearing in this delp. Returns:
 the grounded version of
this

ground
public DefeasibleLogicProgram ground(java.util.Set<Constant> constants)
In general, a delp comprises of rule schemes with variables. This methods returns the corresponding grounded theory, i.e., all schematic elements are replaced with all their grounded instances, where all occurring variables are replaced with constants in every possible way. Parameters:
constants
 some set of constants. Returns:
 the grounded version of
this

getDungTheory
public DungTheory getDungTheory()
This method translates this delp into an abstract Dung theory. All arguments, that can be built in this theory are interpreted as abstract arguments. The attack relation is built using the dialectical proof theory of delp. Returns:
 the abstract Dung theory induced by this delp.

getArguments
public java.util.Set<DelpArgument> getArguments()
Returns the set of all possible arguments, that can be built in this delp. Returns:
 the set of all possible arguments, that can be built in this delp.

getStrictClosure
public java.util.Set<FolFormula> getStrictClosure(java.util.Set<FolFormula> literals, java.util.Set<DefeasibleRule> defeasibleRules, boolean usefacts)
Computes the strict closure of the program, i.e., the set of all strictly derivable literals. For this computation the program may be extended by the given parameters Parameters:
literals
 a set of literalsdefeasibleRules
 a set of defeasible rulesusefacts
 set totrue
iff the delpFacts of this program shall be used in computing the closure Returns:
 the closure of this program and the given parameters

getStrictClosure
public java.util.Set<FolFormula> getStrictClosure(java.util.Set<FolFormula> literals, java.util.Set<DefeasibleRule> defeasibleRules)
Computes the strict closure of the program, i.e., the set of all strictly derivable literals. The program is extended with delpFacts and defeasible rules (which are interpreted as strict rules here) described by the parametersliterals
anddefeasibleRules
. Parameters:
literals
 a set of literalsdefeasibleRules
 a set of defeasible rules Returns:
 the set of all strictly derivable literals.

getStrictClosure
public java.util.Set<FolFormula> getStrictClosure(java.util.Set<FolFormula> literals)
Computes the strict closure of the program, i.e., the set of all strictly derivable literals. The program is extended with delpFacts described by the parameterliterals
 Parameters:
literals
 a set of literals Returns:
 the set of all strictly derivable literals.

getStrictClosure
public java.util.Set<FolFormula> getStrictClosure()
Computes the strict closure of the program, i.e., the set of all strictly derivable literals. Returns:
 the set of all strictly derivable literals.

isConsistent
public boolean isConsistent(java.util.Set<DefeasibleRule> rules)
Checks whether the given set of defeasible rules are consistent given the strict part of this program. Parameters:
rules
 a set of defeasible rules Returns:
false
if the union of this program's delpFacts and strict rules with the given set of defeasible rules defeasibly derives two complementary literals

disagree
public boolean disagree(java.util.Set<FolFormula> literals)
Checks whether the given set of literals disagree with respect to the strict part of this program. Parameters:
literals
 a set of literals Returns:
true
if the union of this program's delpFacts and strict rules with the given set of literals defeasibly derives two complementary literals

isGround
public boolean isGround()

toString
public java.lang.String toString()
 Specified by:
toString
in interfaceBeliefBase
 Overrides:
toString
in classBeliefSet<DelpRule,FolSignature>

getRulesWithHead
public java.util.Set<DelpRule> getRulesWithHead(FolFormula l)
Returns all defeasible and strict rules appearing in this program with the given literal as head Parameters:
l
 a literal Returns:
 a set of strict and defeasible rules

getMinimalSignature
public Signature getMinimalSignature()
Description copied from interface:BeliefBase
Returns the signature of the language of this knowledge base. Returns:
 the signature of the language of this knowledge base.

main
public static void main(java.lang.String[] args) throws java.io.IOException, org.kohsuke.args4j.CmdLineException
Parsing DeLP from given file and performing given query against it. Parameters:
args
 Options and arguments (try "h" to get a help text with details) Throws:
java.io.IOException
 if an IO issue occurs.org.kohsuke.args4j.CmdLineException
 if there is some problem parsing the command line

