Class DefeasibleLogicProgram
java.lang.Object
org.tweetyproject.commons.BeliefSet<DelpRule,FolSignature>
org.tweetyproject.arg.delp.syntax.DefeasibleLogicProgram
- All Implemented Interfaces:
Iterable<DelpRule>
,Collection<DelpRule>
,BeliefBase
This class models a defeasible logic program (DeLP).
- Author:
- Matthias Thimm
-
Field Summary
Fields inherited from class org.tweetyproject.commons.BeliefSet
EQUALS_USES_SIGNATURE
-
Constructor Summary
ConstructorDescriptionDefault constructor; initializes empty delpFacts, strict and defeasible rules and empty comparison criterion.constructor; initializes this program with the given program -
Method Summary
Modifier and TypeMethodDescriptionboolean
disagree
(Set<FolFormula> literals) Checks whether the given set of literals disagree with respect to the strict part of this program.Returns the set of all possible arguments, that can be built in this delp.This method translates this delp into an abstract Dung theory.Returns the signature of the language of this knowledge base.Returns all defeasible and strict rules appearing in this program with the given literal as headComputes the strict closure of the program, i.e., the set of all strictly derivable literals.getStrictClosure
(Set<FolFormula> literals) Computes the strict closure of the program, i.e., the set of all strictly derivable literals.getStrictClosure
(Set<FolFormula> literals, Set<DefeasibleRule> defeasibleRules) Computes the strict closure of the program, i.e., the set of all strictly derivable literals.getStrictClosure
(Set<FolFormula> literals, Set<DefeasibleRule> defeasibleRules, boolean usefacts) Computes the strict closure of the program, i.e., the set of all strictly derivable literals.ground()
In general, a delp comprises of rule schemes with variables.In general, a delp comprises of rule schemes with variables.boolean
isConsistent
(Set<DefeasibleRule> rules) Checks whether the given set of defeasible rules are consistent given the strict part of this program.boolean
isGround()
Checks if all the rules in the current collection are grounded.static void
Parsing DeLP from given file and performing given query against it.toString()
Returns a string representation of the collection of rules.Methods inherited from class org.tweetyproject.commons.BeliefSet
add, add, addAll, clear, contains, containsAll, equals, getSignature, hashCode, isEmpty, iterator, remove, removeAll, retainAll, setSignature, size, toArray, toArray, toString
Methods inherited from interface java.util.Collection
parallelStream, removeIf, spliterator, stream, toArray
-
Constructor Details
-
DefeasibleLogicProgram
public DefeasibleLogicProgram()Default constructor; initializes empty delpFacts, strict and defeasible rules and empty comparison criterion. -
DefeasibleLogicProgram
constructor; initializes this program with the given program- Parameters:
delp
- a defeasible logic program
-
-
Method Details
-
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
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
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
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 Set<FolFormula> getStrictClosure(Set<FolFormula> literals, 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 Set<FolFormula> getStrictClosure(Set<FolFormula> literals, 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
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
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
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
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()Checks if all the rules in the current collection are grounded.A rule is considered grounded if it has no uninstantiated variables, meaning that all its variables have been assigned concrete values. This method verifies this condition for all the rules in the collection.
- Returns:
true
if all rules in the collection are grounded;false
otherwise.
-
toString
Returns a string representation of the collection of rules.This method converts each rule in the collection to its string representation and concatenates them, separated by newline characters. The final result is a single string where each rule is displayed on a new line.
- Specified by:
toString
in interfaceBeliefBase
- Overrides:
toString
in classBeliefSet<DelpRule,
FolSignature> - Returns:
- A string representation of the collection of rules, with each rule on a new line.
-
getRulesWithHead
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
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
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:
IOException
- if an IO issue occurs.org.kohsuke.args4j.CmdLineException
- if there is some problem parsing the command line
-