Class Knowledge
- All Implemented Interfaces:
TetradSerializable
,Serializable
For this class, all variable names are referenced by name only. This is because the same Knowledge object is intended to plug into different graphs with MyNodes that possibly have the same names. Thus, if the Knowledge object forbids the edge X --> Y, then it forbids any edge which connects a MyNode named "X" to a MyNode named "Y", even if the underlying MyNodes themselves named "X" and "Y", respectively, are not the same.
In place of variable names, wildcard expressions containing the wildcard '*' may be substituted. These will be matched to as many myNodes as possible. The '*' wildcard matches any string of consecutive characters up until the following character is encountered. Thus, "X*a" will match "X123a" and "X45a".
- Version:
- $Id: $Id
- Author:
- josephramsey, Kevin V. Bui (kvb2@pitt.edu)
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addKnowledgeGroup
(KnowledgeGroup group) Adds a knowledge group.void
Adds the given variable or wildcard cpdag to the given tier.void
addToTiersByVarNames
(List<String> varNames) Puts a variable into tier i if its name is xxx:ti for some xxx and some i.void
addVariable
(String varName) addVariable.void
clear()
Removes explicit knowledge and tier information.copy()
Makes a shallow copy.boolean
Compares this Knowledge object with the specified object for equality.Iterator over the KnowledgeEdge's representing forbidden edges.Getter for the fieldknowledgeGroups
.getListOfExplicitlyForbiddenEdges.getListOfExplicitlyRequiredEdges.getListOfForbiddenEdges.getListOfRequiredEdges.int
getMaxTierForbiddenWithin.int
getNumTiers.getTier
(int tier) getTier.Get a list of variables.getVariablesNotInTiers.int
hashCode()
Computes a hashcode.boolean
isDefaultToKnowledgeLayout.boolean
isEmpty()
true if there is no background knowledge recorded.boolean
isForbidden
(String var1, String var2) Determines whether the edge var1 --> var2 is forbidden.boolean
isForbiddenByGroups
(String var1, String var2) Legacy.boolean
isForbiddenByTiers
(String var1, String var2) Determines whether the edge var1 --> var2 is forbidden by the temporal tiers.int
isInWhichTier
(Node node) Returns the index of the tier of node if it's in a tier, otherwise -1.boolean
isOnlyCanCauseNextTier
(int tier) isOnlyCanCauseNextTier.boolean
isRequired
(String var1, String var2) Determines whether the edge var1 --> var2 is required.boolean
isRequiredByGroups
(String var1, String var2) Legacy.boolean
isTierForbiddenWithin
(int tier) Checks whether it is the case that any variable is forbidden by any other variable within a given tier.boolean
isViolatedBy
(Graph graph) isViolatedBy.boolean
noEdgeRequired
(String x, String y) noEdgeRequired.void
removeForbidden
(String var1, String var2) Marks the edge var1 --> var2 as not forbid.void
removeFromTiers
(String spec) Removes the given variable by name or search string from all tiers.void
removeKnowledgeGroup
(int index) Removes the knowledge group at the given index.void
removeRequired
(String var1, String var2) Marks the edge var1 --> var2 as not required.Iterator over the KnowledgeEdge's representing required edges.static Knowledge
Generates a simple exemplar of this class to test serialization.void
setDefaultToKnowledgeLayout
(boolean defaultToKnowledgeLayout) Setter for the fielddefaultToKnowledgeLayout
.void
setForbidden
(String var1, String var2) Marks the edge var1 --> var2 as forbid.void
setKnowledgeGroup
(int index, KnowledgeGroup group) Legacy, do not use.void
setOnlyCanCauseNextTier
(int tier, boolean onlyCausesNext) setOnlyCanCauseNextTier.void
setRequired
(String var1, String var2) Marks the edge var1 --> var2 as required.void
Sets the variable in a given tier to the specified list.void
setTierForbiddenWithin
(int tier, boolean forbidden) Forbids any variable from being parent of any other variable within the given tier, or cancels this forbidding.toString()
toString.
-
Constructor Details
-
Knowledge
public Knowledge()Constructor for Knowledge.
-
Knowledge
Constructor for Knowledge.
- Parameters:
nodes
- aCollection
object
-
Knowledge
Constructor for Knowledge.
- Parameters:
knowledge
- aKnowledge
object
-
-
Method Details
-
serializableInstance
Generates a simple exemplar of this class to test serialization.- Returns:
- a
Knowledge
object
-
addToTier
Adds the given variable or wildcard cpdag to the given tier. The tier is a non-negative integer.- Parameters:
tier
- a intspec
- aString
object
-
addToTiersByVarNames
Puts a variable into tier i if its name is xxx:ti for some xxx and some i.- Parameters:
varNames
- aList
object
-
addKnowledgeGroup
Adds a knowledge group. Legacy method, replaced by setForbidden, setRequired with cpdags. Needed for the interface.- Parameters:
group
- aKnowledgeGroup
object
-
addVariable
addVariable.
- Parameters:
varName
- aString
object
-
clear
public void clear()Removes explicit knowledge and tier information. -
forbiddenEdgesIterator
Iterator over the KnowledgeEdge's representing forbidden edges.- Returns:
- a
Iterator
object
-
getKnowledgeGroups
Getter for the field
knowledgeGroups
.- Returns:
- a shallow copy of the list of group rules.
-
getVariables
Get a list of variables.- Returns:
- a copy of the list of variable, in alphabetical order.
-
getVariablesNotInTiers
getVariablesNotInTiers.
- Returns:
- the list of edges not in any tier.
-
getTier
getTier.
- Parameters:
tier
- the index of the desired tier- Returns:
- a copy of this tier
-
getNumTiers
public int getNumTiers()getNumTiers.
- Returns:
- the number of temporal tiers
-
isDefaultToKnowledgeLayout
public boolean isDefaultToKnowledgeLayout()isDefaultToKnowledgeLayout.
- Returns:
- a boolean
-
setDefaultToKnowledgeLayout
public void setDefaultToKnowledgeLayout(boolean defaultToKnowledgeLayout) Setter for the field
defaultToKnowledgeLayout
.- Parameters:
defaultToKnowledgeLayout
- a boolean
-
isForbidden
Determines whether the edge var1 --> var2 is forbidden. -
isForbiddenByGroups
Legacy. -
isForbiddenByTiers
Determines whether the edge var1 --> var2 is forbidden by the temporal tiers. -
isRequired
Determines whether the edge var1 --> var2 is required. -
isRequiredByGroups
Legacy. -
isEmpty
public boolean isEmpty()true if there is no background knowledge recorded.- Returns:
- a boolean
-
isTierForbiddenWithin
public boolean isTierForbiddenWithin(int tier) Checks whether it is the case that any variable is forbidden by any other variable within a given tier.- Parameters:
tier
- a int- Returns:
- a boolean
-
isViolatedBy
isViolatedBy.
- Parameters:
graph
- aGraph
object- Returns:
- a boolean
-
noEdgeRequired
noEdgeRequired.
-
removeFromTiers
Removes the given variable by name or search string from all tiers.- Parameters:
spec
- aString
object
-
removeKnowledgeGroup
public void removeKnowledgeGroup(int index) Removes the knowledge group at the given index.- Parameters:
index
- a int
-
requiredEdgesIterator
Iterator over the KnowledgeEdge's representing required edges.- Returns:
- a
Iterator
object
-
setForbidden
Marks the edge var1 --> var2 as forbid. -
removeForbidden
Marks the edge var1 --> var2 as not forbid. -
setRequired
Marks the edge var1 --> var2 as required. -
removeRequired
Marks the edge var1 --> var2 as not required. -
setKnowledgeGroup
Legacy, do not use.- Parameters:
index
- a intgroup
- aKnowledgeGroup
object
-
setTier
Sets the variable in a given tier to the specified list.- Parameters:
tier
- a intvars
- aList
object
-
setTierForbiddenWithin
public void setTierForbiddenWithin(int tier, boolean forbidden) Forbids any variable from being parent of any other variable within the given tier, or cancels this forbidding.- Parameters:
tier
- a intforbidden
- a boolean
-
getMaxTierForbiddenWithin
public int getMaxTierForbiddenWithin()getMaxTierForbiddenWithin.
- Returns:
- the largest indes of a tier in which every variable is forbidden by every other variable, or -1 if there is not such tier.
-
copy
Makes a shallow copy.- Returns:
- a
Knowledge
object
-
isInWhichTier
Returns the index of the tier of node if it's in a tier, otherwise -1.- Parameters:
node
- aNode
object- Returns:
- a int
-
getListOfRequiredEdges
getListOfRequiredEdges.
- Returns:
- a
List
object
-
getListOfExplicitlyRequiredEdges
getListOfExplicitlyRequiredEdges.
- Returns:
- a
List
object
-
getListOfForbiddenEdges
getListOfForbiddenEdges.
- Returns:
- a
List
object
-
getListOfExplicitlyForbiddenEdges
getListOfExplicitlyForbiddenEdges.
- Returns:
- a
List
object
-
isOnlyCanCauseNextTier
public boolean isOnlyCanCauseNextTier(int tier) isOnlyCanCauseNextTier.
- Parameters:
tier
- a int- Returns:
- a boolean
-
setOnlyCanCauseNextTier
public void setOnlyCanCauseNextTier(int tier, boolean onlyCausesNext) setOnlyCanCauseNextTier.
- Parameters:
tier
- a intonlyCausesNext
- a boolean
-
hashCode
public int hashCode()Computes a hashcode. -
equals
Compares this Knowledge object with the specified object for equality. -
toString
toString.
-