org.semanticweb.HermiT.existentials
Class IndividualReuseStrategy

java.lang.Object
  extended by org.semanticweb.HermiT.existentials.AbstractExpansionStrategy
      extended by org.semanticweb.HermiT.existentials.IndividualReuseStrategy
All Implemented Interfaces:
java.io.Serializable, ExistentialExpansionStrategy

public class IndividualReuseStrategy
extends AbstractExpansionStrategy
implements java.io.Serializable

See Also:
Serialized Form

Nested Class Summary
protected  class IndividualReuseStrategy.IndividualReuseBranchingPoint
           
protected static class IndividualReuseStrategy.NodeBranchingPointPair
           
 
Nested classes/interfaces inherited from class org.semanticweb.HermiT.existentials.AbstractExpansionStrategy
AbstractExpansionStrategy.SatType
 
Field Summary
protected  java.lang.Object[] m_auxiliaryBuffer
           
protected  java.util.Set<AtomicConcept> m_dontReuseConceptsEver
           
protected  java.util.Set<AtomicConcept> m_dontReuseConceptsThisRun
           
protected  java.util.Set<AtomicConcept> m_doReuseConceptsAlways
           
protected  int[] m_indicesByBranchingPoint
           
protected  boolean m_isDeterministic
           
protected  TupleTable m_reuseBacktrackingTable
           
protected  java.util.Map<AtomicConcept,IndividualReuseStrategy.NodeBranchingPointPair> m_reusedNodes
           
 
Fields inherited from class org.semanticweb.HermiT.existentials.AbstractExpansionStrategy
m_auxiliaryNodes1, m_auxiliaryNodes2, m_blockingStrategy, m_descriptionGraphManager, m_existentialExpansionManager, m_expandNodeAtATime, m_extensionManager, m_interruptFlag, m_processedExistentials, m_tableau, m_ternaryExtensionTableSearch01Bound, m_ternaryExtensionTableSearch02Bound
 
Constructor Summary
IndividualReuseStrategy(BlockingStrategy strategy, boolean isDeterministic)
           
 
Method Summary
 void backtrack()
           
 void branchingPointPushed()
           
 void clear()
           
protected  void expandExistential(AtLeast atLeast, Node forNode)
          This method performs the actual expansion.
protected  boolean expandWithModelReuse(AtLeastConcept atLeastConcept, Node node)
           
 AtomicConcept getConceptForNode(Node node)
           
 java.util.Set<AtomicConcept> getDontReuseConceptsEver()
           
 void initialize(Tableau tableau)
           
 boolean isDeterministic()
           
 void modelFound()
           
protected  boolean tryParentReuse(AtLeastConcept atLeastConcept, Node node)
           
 
Methods inherited from class org.semanticweb.HermiT.existentials.AbstractExpansionStrategy
additionalDLOntologyCleared, additionalDLOntologySet, assertionAdded, assertionAdded, assertionAdded, assertionCoreSet, assertionCoreSet, assertionCoreSet, assertionRemoved, assertionRemoved, assertionRemoved, containsSubsetOfNUnequalNodes, dlClauseBodyCompiled, expandExistentials, isExact, isPermanentSatisfier, isSatisfied, nodeDestroyed, nodeInitialized, nodesMerged, nodeStatusChanged, nodesUnmerged
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_isDeterministic

protected final boolean m_isDeterministic

m_reusedNodes

protected final java.util.Map<AtomicConcept,IndividualReuseStrategy.NodeBranchingPointPair> m_reusedNodes

m_doReuseConceptsAlways

protected final java.util.Set<AtomicConcept> m_doReuseConceptsAlways

m_dontReuseConceptsThisRun

protected final java.util.Set<AtomicConcept> m_dontReuseConceptsThisRun

m_dontReuseConceptsEver

protected final java.util.Set<AtomicConcept> m_dontReuseConceptsEver

m_reuseBacktrackingTable

protected final TupleTable m_reuseBacktrackingTable

m_auxiliaryBuffer

protected final java.lang.Object[] m_auxiliaryBuffer

m_indicesByBranchingPoint

protected int[] m_indicesByBranchingPoint
Constructor Detail

IndividualReuseStrategy

public IndividualReuseStrategy(BlockingStrategy strategy,
                               boolean isDeterministic)
Method Detail

initialize

public void initialize(Tableau tableau)
Specified by:
initialize in interface ExistentialExpansionStrategy
Overrides:
initialize in class AbstractExpansionStrategy

clear

public void clear()
Specified by:
clear in interface ExistentialExpansionStrategy
Overrides:
clear in class AbstractExpansionStrategy

branchingPointPushed

public void branchingPointPushed()
Specified by:
branchingPointPushed in interface ExistentialExpansionStrategy
Overrides:
branchingPointPushed in class AbstractExpansionStrategy

backtrack

public void backtrack()
Specified by:
backtrack in interface ExistentialExpansionStrategy
Overrides:
backtrack in class AbstractExpansionStrategy

modelFound

public void modelFound()
Specified by:
modelFound in interface ExistentialExpansionStrategy
Overrides:
modelFound in class AbstractExpansionStrategy

isDeterministic

public boolean isDeterministic()
Specified by:
isDeterministic in interface ExistentialExpansionStrategy

getConceptForNode

public AtomicConcept getConceptForNode(Node node)

getDontReuseConceptsEver

public java.util.Set<AtomicConcept> getDontReuseConceptsEver()

expandExistential

protected void expandExistential(AtLeast atLeast,
                                 Node forNode)
Description copied from class: AbstractExpansionStrategy
This method performs the actual expansion.

Specified by:
expandExistential in class AbstractExpansionStrategy

tryParentReuse

protected boolean tryParentReuse(AtLeastConcept atLeastConcept,
                                 Node node)

expandWithModelReuse

protected boolean expandWithModelReuse(AtLeastConcept atLeastConcept,
                                       Node node)