org.semanticweb.HermiT.existentials
Class AbstractExpansionStrategy

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

public abstract class AbstractExpansionStrategy
extends java.lang.Object
implements ExistentialExpansionStrategy, java.io.Serializable

Implements the common bits of an ExistentialsExpansionStrategy, leaving only actual processing of existentials in need of expansion to subclasses.

See Also:
Serialized Form

Nested Class Summary
protected static class AbstractExpansionStrategy.SatType
           
 
Field Summary
protected  java.util.List<Node> m_auxiliaryNodes1
           
protected  java.util.List<Node> m_auxiliaryNodes2
           
protected  BlockingStrategy m_blockingStrategy
           
protected  DescriptionGraphManager m_descriptionGraphManager
           
protected  ExistentialExpansionManager m_existentialExpansionManager
           
protected  boolean m_expandNodeAtATime
           
protected  ExtensionManager m_extensionManager
           
protected  InterruptFlag m_interruptFlag
           
protected  java.util.List<ExistentialConcept> m_processedExistentials
           
protected  Tableau m_tableau
           
protected  ExtensionTable.Retrieval m_ternaryExtensionTableSearch01Bound
           
protected  ExtensionTable.Retrieval m_ternaryExtensionTableSearch02Bound
           
 
Constructor Summary
AbstractExpansionStrategy(BlockingStrategy blockingStrategy, boolean expandNodeAtATime)
           
 
Method Summary
 void additionalDLOntologyCleared()
           
 void additionalDLOntologySet(DLOntology additionalDLOntology)
           
 void assertionAdded(AtomicRole atomicRole, Node nodeFrom, Node nodeTo, boolean isCore)
           
 void assertionAdded(Concept concept, Node node, boolean isCore)
           
 void assertionAdded(DataRange range, Node node, boolean isCore)
           
 void assertionCoreSet(AtomicRole atomicRole, Node nodeFrom, Node nodeTo)
           
 void assertionCoreSet(Concept concept, Node node)
           
 void assertionCoreSet(DataRange range, Node node)
           
 void assertionRemoved(AtomicRole atomicRole, Node nodeFrom, Node nodeTo, boolean isCore)
           
 void assertionRemoved(Concept concept, Node node, boolean isCore)
           
 void assertionRemoved(DataRange range, Node node, boolean isCore)
           
 void backtrack()
           
 void branchingPointPushed()
           
 void clear()
           
protected  boolean containsSubsetOfNUnequalNodes(Node forNode, java.util.List<Node> nodes, int startAt, java.util.List<Node> selectedNodes, int cardinality)
           
 void dlClauseBodyCompiled(java.util.List<DLClauseEvaluator.Worker> workers, DLClause dlClause, java.util.List<Variable> variables, java.lang.Object[] valuesBuffer, boolean[] coreVariables)
           
protected abstract  void expandExistential(AtLeast atLeast, Node forNode)
          This method performs the actual expansion.
 boolean expandExistentials(boolean finalChance)
           
 void initialize(Tableau tableau)
           
 boolean isExact()
           
protected  boolean isPermanentSatisfier(Node forNode, Node toNode)
           
protected  AbstractExpansionStrategy.SatType isSatisfied(AtLeast atLeast, Node forNode)
           
 void modelFound()
           
 void nodeDestroyed(Node node)
           
 void nodeInitialized(Node node)
           
 void nodesMerged(Node mergeFrom, Node mergeInto)
           
 void nodeStatusChanged(Node node)
           
 void nodesUnmerged(Node mergeFrom, Node mergeInto)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.semanticweb.HermiT.existentials.ExistentialExpansionStrategy
isDeterministic
 

Field Detail

m_blockingStrategy

protected final BlockingStrategy m_blockingStrategy

m_expandNodeAtATime

protected final boolean m_expandNodeAtATime

m_processedExistentials

protected final java.util.List<ExistentialConcept> m_processedExistentials

m_auxiliaryNodes1

protected final java.util.List<Node> m_auxiliaryNodes1

m_auxiliaryNodes2

protected final java.util.List<Node> m_auxiliaryNodes2

m_tableau

protected Tableau m_tableau

m_interruptFlag

protected InterruptFlag m_interruptFlag

m_extensionManager

protected ExtensionManager m_extensionManager

m_ternaryExtensionTableSearch01Bound

protected ExtensionTable.Retrieval m_ternaryExtensionTableSearch01Bound

m_ternaryExtensionTableSearch02Bound

protected ExtensionTable.Retrieval m_ternaryExtensionTableSearch02Bound

m_existentialExpansionManager

protected ExistentialExpansionManager m_existentialExpansionManager

m_descriptionGraphManager

protected DescriptionGraphManager m_descriptionGraphManager
Constructor Detail

AbstractExpansionStrategy

public AbstractExpansionStrategy(BlockingStrategy blockingStrategy,
                                 boolean expandNodeAtATime)
Method Detail

initialize

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

additionalDLOntologySet

public void additionalDLOntologySet(DLOntology additionalDLOntology)
Specified by:
additionalDLOntologySet in interface ExistentialExpansionStrategy

additionalDLOntologyCleared

public void additionalDLOntologyCleared()
Specified by:
additionalDLOntologyCleared in interface ExistentialExpansionStrategy

clear

public void clear()
Specified by:
clear in interface ExistentialExpansionStrategy

expandExistentials

public boolean expandExistentials(boolean finalChance)
Specified by:
expandExistentials in interface ExistentialExpansionStrategy

assertionAdded

public void assertionAdded(Concept concept,
                           Node node,
                           boolean isCore)
Specified by:
assertionAdded in interface ExistentialExpansionStrategy

assertionCoreSet

public void assertionCoreSet(Concept concept,
                             Node node)
Specified by:
assertionCoreSet in interface ExistentialExpansionStrategy

assertionRemoved

public void assertionRemoved(Concept concept,
                             Node node,
                             boolean isCore)
Specified by:
assertionRemoved in interface ExistentialExpansionStrategy

assertionAdded

public void assertionAdded(DataRange range,
                           Node node,
                           boolean isCore)
Specified by:
assertionAdded in interface ExistentialExpansionStrategy

assertionCoreSet

public void assertionCoreSet(DataRange range,
                             Node node)
Specified by:
assertionCoreSet in interface ExistentialExpansionStrategy

assertionRemoved

public void assertionRemoved(DataRange range,
                             Node node,
                             boolean isCore)
Specified by:
assertionRemoved in interface ExistentialExpansionStrategy

assertionAdded

public void assertionAdded(AtomicRole atomicRole,
                           Node nodeFrom,
                           Node nodeTo,
                           boolean isCore)
Specified by:
assertionAdded in interface ExistentialExpansionStrategy

assertionCoreSet

public void assertionCoreSet(AtomicRole atomicRole,
                             Node nodeFrom,
                             Node nodeTo)
Specified by:
assertionCoreSet in interface ExistentialExpansionStrategy

assertionRemoved

public void assertionRemoved(AtomicRole atomicRole,
                             Node nodeFrom,
                             Node nodeTo,
                             boolean isCore)
Specified by:
assertionRemoved in interface ExistentialExpansionStrategy

nodesMerged

public void nodesMerged(Node mergeFrom,
                        Node mergeInto)
Specified by:
nodesMerged in interface ExistentialExpansionStrategy

nodesUnmerged

public void nodesUnmerged(Node mergeFrom,
                          Node mergeInto)
Specified by:
nodesUnmerged in interface ExistentialExpansionStrategy

nodeStatusChanged

public void nodeStatusChanged(Node node)
Specified by:
nodeStatusChanged in interface ExistentialExpansionStrategy

nodeInitialized

public void nodeInitialized(Node node)
Specified by:
nodeInitialized in interface ExistentialExpansionStrategy

nodeDestroyed

public void nodeDestroyed(Node node)
Specified by:
nodeDestroyed in interface ExistentialExpansionStrategy

branchingPointPushed

public void branchingPointPushed()
Specified by:
branchingPointPushed in interface ExistentialExpansionStrategy

backtrack

public void backtrack()
Specified by:
backtrack in interface ExistentialExpansionStrategy

modelFound

public void modelFound()
Specified by:
modelFound in interface ExistentialExpansionStrategy

isExact

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

dlClauseBodyCompiled

public void dlClauseBodyCompiled(java.util.List<DLClauseEvaluator.Worker> workers,
                                 DLClause dlClause,
                                 java.util.List<Variable> variables,
                                 java.lang.Object[] valuesBuffer,
                                 boolean[] coreVariables)
Specified by:
dlClauseBodyCompiled in interface ExistentialExpansionStrategy

isSatisfied

protected AbstractExpansionStrategy.SatType isSatisfied(AtLeast atLeast,
                                                        Node forNode)

isPermanentSatisfier

protected boolean isPermanentSatisfier(Node forNode,
                                       Node toNode)

containsSubsetOfNUnequalNodes

protected boolean containsSubsetOfNUnequalNodes(Node forNode,
                                                java.util.List<Node> nodes,
                                                int startAt,
                                                java.util.List<Node> selectedNodes,
                                                int cardinality)

expandExistential

protected abstract void expandExistential(AtLeast atLeast,
                                          Node forNode)
This method performs the actual expansion.