Class ConditionalStructure
java.lang.Object
org.tweetyproject.logics.cl.semantics.ConditionalStructure
- All Implemented Interfaces:
Comparator<NicePossibleWorld>
Represents a conditional structure as introduced in Section 3.5
"Conditionals in Nonmonotonic Reasoning and Belief Revision" of
Gabrielle Kern-Isberner
Internally it saves the data to two nested Maps. The first map maps to each PossibleWorld
a map of Conditionals to Generators and the second map maps to each Conditional
a map of PossibleWorlds to Generators. Those two maps allow fast access to
the data of the ConditionalStructure. The first map can be used to support
a nice representation of the ConditionalStructure and the second map can
be used for further processing depending on the Conditionals (for Kappa
values in C-Representation for example).
To change the representation of the ConditionalStructure the user can
provide a Comparator<NicePossibleWorld> implementation that changes the
sort behavior of the world data map or he/she can provide a
Comparator<Pair<Proposition, Boolean>> to change the ordering of the literals
in the NicePossibleWorld representation.
The later approach will fit for most situations.
The default sorting behavior depends on the representation behavior of NicePossibleWorld
that can also be adapt because it uses the toString method() and sorts this string alphabetically
so that all possible worlds for a,b,c are represented in the following order:
a b c
a b-c
a-b c
a-b-c
-a b c
-a b-c
-a-b c
-a-b-c
The default Sorting provides a clean binary switching of true/false like counting a bit string. If
the user wants another ordering like c a b the Sorting behavior of the NicePossibleWorld
shall be adapted by providing a Comparator<Pair<Proposition, Boolean>> implementation that
implements the relation "c < a < b" by using the setWorldRepresentation() method.
If the user wants to use a sorting depending on the Generator count for the worlds the
setWorldSorting() method can be used to provide the correct sorting method.
- Author:
- Tim Janus
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic enum
The possible values of a conditional for a possible world -
Constructor Summary
ConstructorDescriptionDefault-Ctor generates empty Conditional structureConditionalStructure
(Collection<Conditional> conditionals) Ctor: generates a conditional structure containing the given conditionalsConditionalStructure
(Collection<Conditional> conditionals, Comparator<NicePossibleWorld> comparator) Ctor: Generates a ConditionalStructure containing the given conditionals and using the given comparator to sort the worldData map.ConditionalStructure
(Comparator<NicePossibleWorld> comparator) Ctor: Generates an empty ConditionalStructure that uses the given Comparator to sort its worldData map. -
Method Summary
Modifier and TypeMethodDescriptionboolean
addConditional
(Conditional cond) Adds the given Conditional to the ConditionalStructure and updates the structure.void
clear()
Clears the ConditionalStructure, after calling this method the Structure is empty.int
getConditionalGenerators
(Conditional conditional) Processes the Map form PossibleWorlds to the Generators of the given ConditionalProcesses the map from Conditionals to Generators for a given PossibleWorldboolean
removeConditional
(Conditional cond) Removes the given Conditional from the ConditionalStructure and updates the structure.void
setWorldRepresentation
(Comparator<Pair<Proposition, Boolean>> comparator) Changes the internal representations of the worlds, normally the propositions of a world are ordered alphabetically but this behavior can be changed using this method.void
setWorldSorting
(Comparator<NicePossibleWorld> comparator) Changes the ordering of the PossibleWorlds for representation purposes, before using this method proof if the goal can be easier achieved using the setWorldRepresentation() method that allows changing the ordering of the literals in the world representation.toString()
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Comparator
equals, reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
-
Constructor Details
-
ConditionalStructure
public ConditionalStructure()Default-Ctor generates empty Conditional structure -
ConditionalStructure
Ctor: Generates an empty ConditionalStructure that uses the given Comparator to sort its worldData map.- Parameters:
comparator
- An implementation for sorting the world data if null is given the default sorting behavior is used.
-
ConditionalStructure
Ctor: generates a conditional structure containing the given conditionals- Parameters:
conditionals
- A collection of conditionals that shall form the ConditionalStructure
-
ConditionalStructure
public ConditionalStructure(Collection<Conditional> conditionals, Comparator<NicePossibleWorld> comparator) Ctor: Generates a ConditionalStructure containing the given conditionals and using the given comparator to sort the worldData map.- Parameters:
conditionals
- A collection of conditionals that shall form the ConditionalStructurecomparator
- An implementation for sorting the world data
-
-
Method Details
-
getConditionals
- Returns:
- An unmodifiable set of all conditionals in this ConditionalStructure
-
getPossibleWorlds
- Returns:
- An unmodifiable set of all possible worlds in this ConditionalStructure
-
getFalsifiyingWorlds
-
getVerifyingWorlds
-
getWorldGenerators
Processes the map from Conditionals to Generators for a given PossibleWorld- Parameters:
world
- The PossibleWorld thats Generators shall be returned- Returns:
- A map containing all Generators for the world as values and the associated conditionals as key.
-
getConditionalGenerators
public Map<NicePossibleWorld,ConditionalStructure.Generator> getConditionalGenerators(Conditional conditional) Processes the Map form PossibleWorlds to the Generators of the given Conditional- Parameters:
conditional
- The Conditional- Returns:
- null if no such map exists or the map mapping the PossibleWorlds to Generators for the given Conditional
-
getSignature
- Returns:
- An unmodifiable Collection containing all propositions that altogether form the signature of the ConditionalStructure
-
setWorldSorting
Changes the ordering of the PossibleWorlds for representation purposes, before using this method proof if the goal can be easier achieved using the setWorldRepresentation() method that allows changing the ordering of the literals in the world representation.- Parameters:
comparator
- The implementation sorting the possible worlds
-
setWorldRepresentation
Changes the internal representations of the worlds, normally the propositions of a world are ordered alphabetically but this behavior can be changed using this method.- Parameters:
comparator
- The new implementation of a Comparator that provides the new sorting behavior for the Propositions in a PossibleWorld.
-
addConditional
Adds the given Conditional to the ConditionalStructure and updates the structure.- Parameters:
cond
- The new Conditional- Returns:
- True if the conditional is added and ConditionalStructure is updated, false if the Conditional is already part of the ConditionalStructure
-
removeConditional
Removes the given Conditional from the ConditionalStructure and updates the structure.- Parameters:
cond
- The Conditional that shall be removed- Returns:
- True if the Conditional is part of the ConditionalStructure and was removed, false if the Conditional is not part of the ConditionalStructure and nothing happened.
-
clear
public void clear()Clears the ConditionalStructure, after calling this method the Structure is empty. -
toString
-
compare
- Specified by:
compare
in interfaceComparator<NicePossibleWorld>
-