org.semanticweb.HermiT.hierarchy
Class InstanceManager
java.lang.Object
org.semanticweb.HermiT.hierarchy.InstanceManager
public class InstanceManager
- extends java.lang.Object
Method Summary |
protected void |
addKnownConceptInstance(HierarchyNode<AtomicConcept> currentNode,
AtomicConceptElement element,
Individual instance)
|
protected void |
addKnownConceptSubsumption(Graph<AtomicConcept> knownSubsumptions,
AtomicConcept subConcept,
AtomicConcept superConcept)
|
protected void |
addKnownRoleInstance(RoleElementManager.RoleElement element,
Individual individual1,
Individual individual2)
|
protected void |
addKnownRoleSubsumption(Graph<Role> knownSubsumptions,
Role subRole,
Role superRole)
|
protected void |
addPossibleConceptInstance(HierarchyNode<AtomicConcept> currentNode,
AtomicConceptElement element,
Individual instance)
|
protected void |
addPossibleRoleInstance(RoleElementManager.RoleElement element,
Individual individual1,
Individual individual2)
|
boolean |
areClassesInitialised()
|
boolean |
arePropertiesInitialised()
|
protected Hierarchy<AtomicConcept> |
buildTransitivelyReducedConceptHierarchy(Graph<AtomicConcept> knownSubsumptions)
|
protected Hierarchy<RoleElementManager.RoleElement> |
buildTransitivelyReducedRoleHierarchy(Graph<Role> knownSubsumptions)
|
void |
computeSameAsEquivalenceClasses(org.semanticweb.owlapi.reasoner.ReasonerProgressMonitor progressMonitor)
|
protected void |
findNextHierarchyNodeWithAtomic(java.util.Set<Role> atomicRepresentatives,
HierarchyNode<Role> current)
|
org.semanticweb.owlapi.model.OWLAxiom[] |
getAxiomsForReadingOffCompexProperties(org.semanticweb.owlapi.model.OWLDataFactory factory,
org.semanticweb.owlapi.reasoner.ReasonerProgressMonitor monitor,
int completedSteps,
int steps)
|
HierarchyNode<AtomicConcept> |
getBottomConceptNode()
|
RoleElementManager.RoleElement |
getBottomRoleElement()
|
HierarchyNode<RoleElementManager.RoleElement> |
getBottomRoleNode()
|
int |
getCurrentIndividualIndex()
|
java.util.Set<Individual> |
getInstances(AtomicConcept atomicConcept,
boolean direct)
|
java.util.Set<Individual> |
getInstances(HierarchyNode<AtomicConcept> node,
boolean direct)
|
protected void |
getInstancesForNode(HierarchyNode<AtomicConcept> node,
java.util.Set<Individual> result,
boolean direct)
|
java.util.Map<Individual,Node> |
getNodesForIndividuals()
|
int[] |
getNumberOfInstances(AtomicConcept concept)
|
int[] |
getNumberOfInstances(AtomicRole role)
|
protected int[] |
getNumberOfInstances(HierarchyNode<AtomicConcept> node,
int[] result)
|
int[] |
getNumberOfPredecessors(AtomicRole role,
Individual individual)
|
int[] |
getNumberOfPropertyInstances(AtomicRole role)
|
protected int[] |
getNumberOfRoleInstances(HierarchyNode<RoleElementManager.RoleElement> node,
int[] result)
|
protected int[] |
getNumberOfRolePredecessors(HierarchyNode<RoleElementManager.RoleElement> node,
Individual individual,
int[] result)
|
protected int[] |
getNumberOfRoleSuccessors(HierarchyNode<RoleElementManager.RoleElement> node,
Individual individual,
int[] result)
|
int[] |
getNumberOfSameAs(Individual individual)
|
int[] |
getNumberOfSuccessors(AtomicRole role,
Individual individual)
|
int[] |
getNumberOfTypes(Individual individual)
|
java.util.Map<Individual,java.util.Set<Individual>> |
getObjectPropertyInstances(AtomicRole role)
|
protected void |
getObjectPropertyInstances(HierarchyNode<RoleElementManager.RoleElement> node,
java.util.Map<Individual,java.util.Set<Individual>> result)
|
protected void |
getObjectPropertySubjects(HierarchyNode<RoleElementManager.RoleElement> node,
Individual object,
java.util.Set<Individual> result)
|
protected void |
getObjectPropertyValues(HierarchyNode<RoleElementManager.RoleElement> node,
Individual subject,
java.util.Set<Individual> result)
|
java.util.Set<Individual> |
getObjectPropertyValues(Role role,
Individual individual)
|
java.util.Set<Individual> |
getSameAsIndividuals(Individual individual)
|
HierarchyNode<AtomicConcept> |
getTopConceptNode()
|
RoleElementManager.RoleElement |
getTopRoleElement()
|
HierarchyNode<RoleElementManager.RoleElement> |
getTopRoleNode()
|
java.util.Set<HierarchyNode<AtomicConcept>> |
getTypes(Individual individual,
boolean direct)
|
boolean |
hasObjectRoleRelationship(AtomicRole role,
Individual individual1,
Individual individual2)
|
boolean |
hasObjectRoleRelationship(HierarchyNode<RoleElementManager.RoleElement> node,
Individual individual1,
Individual individual2)
|
protected boolean[] |
hasRoleSuccessor(HierarchyNode<RoleElementManager.RoleElement> node,
Individual individual1,
Individual individual2)
|
boolean[] |
hasSuccessor(AtomicRole role,
Individual individual1,
Individual individual2)
|
boolean |
hasType(Individual individual,
AtomicConcept atomicConcept,
boolean direct)
|
boolean |
hasType(Individual individual,
HierarchyNode<AtomicConcept> node,
boolean direct)
|
protected void |
initializeIndividualsForNodes()
|
void |
initializeKnowAndPossibleClassInstances(Tableau tableau,
org.semanticweb.owlapi.reasoner.ReasonerProgressMonitor monitor,
int completedSteps,
int steps)
|
int |
initializeKnowAndPossiblePropertyInstances(Tableau tableau,
org.semanticweb.owlapi.reasoner.ReasonerProgressMonitor monitor,
int startIndividualIndex,
int completedSteps,
int steps)
|
protected void |
initializeSameAs()
|
protected boolean |
isInstance(Individual individual,
AtomicConcept atomicConcept)
|
protected static boolean |
isResultRelevantIndividual(Individual individual)
|
protected boolean |
isRoleInstance(Role role,
Individual individual1,
Individual individual2)
|
boolean |
isSameIndividual(Individual individual1,
Individual individual2)
|
boolean |
objectPropertyRealizationCompleted()
|
protected int |
readOffClassInstancesByIndividual(Tableau tableau,
org.semanticweb.owlapi.reasoner.ReasonerProgressMonitor monitor,
int completedSteps,
int steps)
|
protected int |
readOffComplexRoleSuccessors(Individual ind,
Node nodeForIndividual,
org.semanticweb.owlapi.reasoner.ReasonerProgressMonitor monitor,
int completedSteps,
int steps)
|
protected void |
readOffPropertyInstances(Individual ind,
Node nodeForIndividual)
|
protected int |
readOffPropertyInstancesByIndividual(Tableau tableau,
java.util.Map<Node,Individual> individualsForNodes,
org.semanticweb.owlapi.reasoner.ReasonerProgressMonitor monitor,
int completedSteps,
int steps,
int startIndividualIndex)
|
protected boolean |
readOffTypes(Individual ind,
Node nodeForIndividual)
|
boolean |
realizationCompleted()
|
void |
realize(org.semanticweb.owlapi.reasoner.ReasonerProgressMonitor monitor)
|
void |
realizeObjectRoles(org.semanticweb.owlapi.reasoner.ReasonerProgressMonitor monitor)
|
protected Hierarchy<Role> |
removeInverses(Hierarchy<Role> hierarchy)
|
boolean |
sameAsIndividualsComputed()
|
void |
setInconsistent()
|
void |
setToClassifiedConceptHierarchy(Hierarchy<AtomicConcept> atomicConceptHierarchy)
|
void |
setToClassifiedRoleHierarchy(Hierarchy<Role> roleHierarchy)
|
Hierarchy<RoleElementManager.RoleElement> |
transformRoleHierarchy(Hierarchy<Role> roleHierarchy)
Removes the inverses from the given hierarchy and then converts Role hierarchy nodes to RoleElement hierarchy nodes, which can store
known and possible instances. |
protected void |
updateKnownSubsumptionsUsingToldSubsumers(java.util.Set<DLClause> dlClauses,
Graph<AtomicConcept> knownConceptSubsumptions,
java.util.Set<AtomicConcept> concepts,
Graph<Role> knownRoleSubsumptions,
java.util.Set<Role> roles)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
thresholdForAdditionalAxioms
public static final int thresholdForAdditionalAxioms
- See Also:
- Constant Field Values
m_interruptFlag
protected final InterruptFlag m_interruptFlag
m_reasoner
protected final Reasoner m_reasoner
m_tableau
protected final Tableau m_tableau
m_individuals
protected final Individual[] m_individuals
m_complexRoles
protected final java.util.HashSet<AtomicRole> m_complexRoles
m_conceptToElement
protected final java.util.Map<AtomicConcept,AtomicConceptElement> m_conceptToElement
m_topConcept
protected final AtomicConcept m_topConcept
m_bottomConcept
protected final AtomicConcept m_bottomConcept
m_currentConceptHierarchy
protected Hierarchy<AtomicConcept> m_currentConceptHierarchy
m_roleElementManager
protected final RoleElementManager m_roleElementManager
m_topRoleElement
protected final RoleElementManager.RoleElement m_topRoleElement
m_bottomRoleElement
protected final RoleElementManager.RoleElement m_bottomRoleElement
m_currentRoleHierarchy
protected Hierarchy<RoleElementManager.RoleElement> m_currentRoleHierarchy
m_usesInverseRoles
protected final boolean m_usesInverseRoles
m_nodesForIndividuals
protected final java.util.Map<Individual,Node> m_nodesForIndividuals
m_individualsForNodes
protected final java.util.Map<Node,Individual> m_individualsForNodes
m_isInconsistent
protected boolean m_isInconsistent
m_realizationCompleted
protected boolean m_realizationCompleted
m_roleRealizationCompleted
protected boolean m_roleRealizationCompleted
m_usesClassifiedConceptHierarchy
protected boolean m_usesClassifiedConceptHierarchy
m_usesClassifiedObjectRoleHierarchy
protected boolean m_usesClassifiedObjectRoleHierarchy
m_classesInitialised
protected boolean m_classesInitialised
m_propertiesInitialised
protected boolean m_propertiesInitialised
m_readingOffFoundPossibleConceptInstance
protected boolean m_readingOffFoundPossibleConceptInstance
m_readingOffFoundPossiblePropertyInstance
protected boolean m_readingOffFoundPossiblePropertyInstance
m_individualToEquivalenceClass
protected final java.util.Map<Individual,java.util.Set<Individual>> m_individualToEquivalenceClass
m_individualToPossibleEquivalenceClass
protected java.util.Map<java.util.Set<Individual>,java.util.Set<java.util.Set<Individual>>> m_individualToPossibleEquivalenceClass
m_binaryRetrieval0Bound
protected final ExtensionTable.Retrieval m_binaryRetrieval0Bound
m_binaryRetrieval1Bound
protected final ExtensionTable.Retrieval m_binaryRetrieval1Bound
m_binaryRetrieval01Bound
protected final ExtensionTable.Retrieval m_binaryRetrieval01Bound
m_ternaryRetrieval1Bound
protected final ExtensionTable.Retrieval m_ternaryRetrieval1Bound
m_ternaryRetrieval0Bound
protected final ExtensionTable.Retrieval m_ternaryRetrieval0Bound
m_ternaryRetrieval012Bound
protected final ExtensionTable.Retrieval m_ternaryRetrieval012Bound
m_currentIndividualIndex
protected int m_currentIndividualIndex
InstanceManager
public InstanceManager(InterruptFlag interruptFlag,
Reasoner reasoner,
Tableau tableau,
Hierarchy<AtomicConcept> atomicConceptHierarchy,
Hierarchy<Role> objectRoleHierarchy)
addKnownConceptSubsumption
protected void addKnownConceptSubsumption(Graph<AtomicConcept> knownSubsumptions,
AtomicConcept subConcept,
AtomicConcept superConcept)
addKnownRoleSubsumption
protected void addKnownRoleSubsumption(Graph<Role> knownSubsumptions,
Role subRole,
Role superRole)
updateKnownSubsumptionsUsingToldSubsumers
protected void updateKnownSubsumptionsUsingToldSubsumers(java.util.Set<DLClause> dlClauses,
Graph<AtomicConcept> knownConceptSubsumptions,
java.util.Set<AtomicConcept> concepts,
Graph<Role> knownRoleSubsumptions,
java.util.Set<Role> roles)
buildTransitivelyReducedConceptHierarchy
protected Hierarchy<AtomicConcept> buildTransitivelyReducedConceptHierarchy(Graph<AtomicConcept> knownSubsumptions)
setToClassifiedConceptHierarchy
public void setToClassifiedConceptHierarchy(Hierarchy<AtomicConcept> atomicConceptHierarchy)
buildTransitivelyReducedRoleHierarchy
protected Hierarchy<RoleElementManager.RoleElement> buildTransitivelyReducedRoleHierarchy(Graph<Role> knownSubsumptions)
transformRoleHierarchy
public Hierarchy<RoleElementManager.RoleElement> transformRoleHierarchy(Hierarchy<Role> roleHierarchy)
- Removes the inverses from the given hierarchy and then converts Role hierarchy nodes to RoleElement hierarchy nodes, which can store
known and possible instances.
- Parameters:
roleHierarchy
-
- Returns:
- a hierarchy containing role element nodes and no inverses
removeInverses
protected Hierarchy<Role> removeInverses(Hierarchy<Role> hierarchy)
setToClassifiedRoleHierarchy
public void setToClassifiedRoleHierarchy(Hierarchy<Role> roleHierarchy)
findNextHierarchyNodeWithAtomic
protected void findNextHierarchyNodeWithAtomic(java.util.Set<Role> atomicRepresentatives,
HierarchyNode<Role> current)
getAxiomsForReadingOffCompexProperties
public org.semanticweb.owlapi.model.OWLAxiom[] getAxiomsForReadingOffCompexProperties(org.semanticweb.owlapi.model.OWLDataFactory factory,
org.semanticweb.owlapi.reasoner.ReasonerProgressMonitor monitor,
int completedSteps,
int steps)
initializeKnowAndPossibleClassInstances
public void initializeKnowAndPossibleClassInstances(Tableau tableau,
org.semanticweb.owlapi.reasoner.ReasonerProgressMonitor monitor,
int completedSteps,
int steps)
readOffClassInstancesByIndividual
protected int readOffClassInstancesByIndividual(Tableau tableau,
org.semanticweb.owlapi.reasoner.ReasonerProgressMonitor monitor,
int completedSteps,
int steps)
initializeKnowAndPossiblePropertyInstances
public int initializeKnowAndPossiblePropertyInstances(Tableau tableau,
org.semanticweb.owlapi.reasoner.ReasonerProgressMonitor monitor,
int startIndividualIndex,
int completedSteps,
int steps)
readOffPropertyInstancesByIndividual
protected int readOffPropertyInstancesByIndividual(Tableau tableau,
java.util.Map<Node,Individual> individualsForNodes,
org.semanticweb.owlapi.reasoner.ReasonerProgressMonitor monitor,
int completedSteps,
int steps,
int startIndividualIndex)
initializeIndividualsForNodes
protected void initializeIndividualsForNodes()
initializeSameAs
protected void initializeSameAs()
readOffTypes
protected boolean readOffTypes(Individual ind,
Node nodeForIndividual)
readOffPropertyInstances
protected void readOffPropertyInstances(Individual ind,
Node nodeForIndividual)
readOffComplexRoleSuccessors
protected int readOffComplexRoleSuccessors(Individual ind,
Node nodeForIndividual,
org.semanticweb.owlapi.reasoner.ReasonerProgressMonitor monitor,
int completedSteps,
int steps)
addKnownConceptInstance
protected void addKnownConceptInstance(HierarchyNode<AtomicConcept> currentNode,
AtomicConceptElement element,
Individual instance)
addPossibleConceptInstance
protected void addPossibleConceptInstance(HierarchyNode<AtomicConcept> currentNode,
AtomicConceptElement element,
Individual instance)
addKnownRoleInstance
protected void addKnownRoleInstance(RoleElementManager.RoleElement element,
Individual individual1,
Individual individual2)
addPossibleRoleInstance
protected void addPossibleRoleInstance(RoleElementManager.RoleElement element,
Individual individual1,
Individual individual2)
setInconsistent
public void setInconsistent()
realize
public void realize(org.semanticweb.owlapi.reasoner.ReasonerProgressMonitor monitor)
realizeObjectRoles
public void realizeObjectRoles(org.semanticweb.owlapi.reasoner.ReasonerProgressMonitor monitor)
getTypes
public java.util.Set<HierarchyNode<AtomicConcept>> getTypes(Individual individual,
boolean direct)
hasType
public boolean hasType(Individual individual,
AtomicConcept atomicConcept,
boolean direct)
hasType
public boolean hasType(Individual individual,
HierarchyNode<AtomicConcept> node,
boolean direct)
getInstances
public java.util.Set<Individual> getInstances(AtomicConcept atomicConcept,
boolean direct)
getInstances
public java.util.Set<Individual> getInstances(HierarchyNode<AtomicConcept> node,
boolean direct)
getInstancesForNode
protected void getInstancesForNode(HierarchyNode<AtomicConcept> node,
java.util.Set<Individual> result,
boolean direct)
hasObjectRoleRelationship
public boolean hasObjectRoleRelationship(AtomicRole role,
Individual individual1,
Individual individual2)
hasObjectRoleRelationship
public boolean hasObjectRoleRelationship(HierarchyNode<RoleElementManager.RoleElement> node,
Individual individual1,
Individual individual2)
getObjectPropertyInstances
public java.util.Map<Individual,java.util.Set<Individual>> getObjectPropertyInstances(AtomicRole role)
getObjectPropertyInstances
protected void getObjectPropertyInstances(HierarchyNode<RoleElementManager.RoleElement> node,
java.util.Map<Individual,java.util.Set<Individual>> result)
getObjectPropertyValues
public java.util.Set<Individual> getObjectPropertyValues(Role role,
Individual individual)
getObjectPropertySubjects
protected void getObjectPropertySubjects(HierarchyNode<RoleElementManager.RoleElement> node,
Individual object,
java.util.Set<Individual> result)
getObjectPropertyValues
protected void getObjectPropertyValues(HierarchyNode<RoleElementManager.RoleElement> node,
Individual subject,
java.util.Set<Individual> result)
getSameAsIndividuals
public java.util.Set<Individual> getSameAsIndividuals(Individual individual)
isSameIndividual
public boolean isSameIndividual(Individual individual1,
Individual individual2)
computeSameAsEquivalenceClasses
public void computeSameAsEquivalenceClasses(org.semanticweb.owlapi.reasoner.ReasonerProgressMonitor progressMonitor)
isInstance
protected boolean isInstance(Individual individual,
AtomicConcept atomicConcept)
isRoleInstance
protected boolean isRoleInstance(Role role,
Individual individual1,
Individual individual2)
isResultRelevantIndividual
protected static boolean isResultRelevantIndividual(Individual individual)
realizationCompleted
public boolean realizationCompleted()
objectPropertyRealizationCompleted
public boolean objectPropertyRealizationCompleted()
sameAsIndividualsComputed
public boolean sameAsIndividualsComputed()
areClassesInitialised
public boolean areClassesInitialised()
arePropertiesInitialised
public boolean arePropertiesInitialised()
getCurrentIndividualIndex
public int getCurrentIndividualIndex()
getNodesForIndividuals
public java.util.Map<Individual,Node> getNodesForIndividuals()
getTopConceptNode
public HierarchyNode<AtomicConcept> getTopConceptNode()
getBottomConceptNode
public HierarchyNode<AtomicConcept> getBottomConceptNode()
getTopRoleElement
public RoleElementManager.RoleElement getTopRoleElement()
getBottomRoleElement
public RoleElementManager.RoleElement getBottomRoleElement()
getTopRoleNode
public HierarchyNode<RoleElementManager.RoleElement> getTopRoleNode()
getBottomRoleNode
public HierarchyNode<RoleElementManager.RoleElement> getBottomRoleNode()
getNumberOfInstances
public int[] getNumberOfInstances(AtomicConcept concept)
getNumberOfInstances
protected int[] getNumberOfInstances(HierarchyNode<AtomicConcept> node,
int[] result)
getNumberOfInstances
public int[] getNumberOfInstances(AtomicRole role)
getNumberOfRoleInstances
protected int[] getNumberOfRoleInstances(HierarchyNode<RoleElementManager.RoleElement> node,
int[] result)
getNumberOfSuccessors
public int[] getNumberOfSuccessors(AtomicRole role,
Individual individual)
getNumberOfRoleSuccessors
protected int[] getNumberOfRoleSuccessors(HierarchyNode<RoleElementManager.RoleElement> node,
Individual individual,
int[] result)
hasSuccessor
public boolean[] hasSuccessor(AtomicRole role,
Individual individual1,
Individual individual2)
hasRoleSuccessor
protected boolean[] hasRoleSuccessor(HierarchyNode<RoleElementManager.RoleElement> node,
Individual individual1,
Individual individual2)
getNumberOfPredecessors
public int[] getNumberOfPredecessors(AtomicRole role,
Individual individual)
getNumberOfRolePredecessors
protected int[] getNumberOfRolePredecessors(HierarchyNode<RoleElementManager.RoleElement> node,
Individual individual,
int[] result)
getNumberOfSameAs
public int[] getNumberOfSameAs(Individual individual)
getNumberOfPropertyInstances
public int[] getNumberOfPropertyInstances(AtomicRole role)
- Parameters:
role
-
- Returns:
- 0: number of known instances
1: number of possible instances
2: number of individuals with at least one known or possible successor
getNumberOfTypes
public int[] getNumberOfTypes(Individual individual)