org.semanticweb.HermiT.hierarchy
Class InstanceManager

java.lang.Object
  extended by org.semanticweb.HermiT.hierarchy.InstanceManager

public class InstanceManager
extends java.lang.Object


Nested Class Summary
protected  class InstanceManager.DFSTypeCounter
           
protected static interface InstanceManager.DFSVisitor<E>
           
 
Field Summary
protected  ExtensionTable.Retrieval m_binaryRetrieval01Bound
           
protected  ExtensionTable.Retrieval m_binaryRetrieval0Bound
           
protected  ExtensionTable.Retrieval m_binaryRetrieval1Bound
           
protected  AtomicConcept m_bottomConcept
           
protected  RoleElementManager.RoleElement m_bottomRoleElement
           
protected  boolean m_classesInitialised
           
protected  java.util.HashSet<AtomicRole> m_complexRoles
           
protected  java.util.Map<AtomicConcept,AtomicConceptElement> m_conceptToElement
           
protected  Hierarchy<AtomicConcept> m_currentConceptHierarchy
           
protected  int m_currentIndividualIndex
           
protected  Hierarchy<RoleElementManager.RoleElement> m_currentRoleHierarchy
           
protected  Individual[] m_individuals
           
protected  java.util.Map<Node,Individual> m_individualsForNodes
           
protected  java.util.Map<Individual,java.util.Set<Individual>> m_individualToEquivalenceClass
           
protected  java.util.Map<java.util.Set<Individual>,java.util.Set<java.util.Set<Individual>>> m_individualToPossibleEquivalenceClass
           
protected  InterruptFlag m_interruptFlag
           
protected  boolean m_isInconsistent
           
protected  java.util.Map<Individual,Node> m_nodesForIndividuals
           
protected  boolean m_propertiesInitialised
           
protected  boolean m_readingOffFoundPossibleConceptInstance
           
protected  boolean m_readingOffFoundPossiblePropertyInstance
           
protected  boolean m_realizationCompleted
           
protected  Reasoner m_reasoner
           
protected  RoleElementManager m_roleElementManager
           
protected  boolean m_roleRealizationCompleted
           
protected  Tableau m_tableau
           
protected  ExtensionTable.Retrieval m_ternaryRetrieval012Bound
           
protected  ExtensionTable.Retrieval m_ternaryRetrieval0Bound
           
protected  ExtensionTable.Retrieval m_ternaryRetrieval1Bound
           
protected  AtomicConcept m_topConcept
           
protected  RoleElementManager.RoleElement m_topRoleElement
           
protected  boolean m_usesClassifiedConceptHierarchy
           
protected  boolean m_usesClassifiedObjectRoleHierarchy
           
protected  boolean m_usesInverseRoles
           
static int thresholdForAdditionalAxioms
           
 
Constructor Summary
InstanceManager(InterruptFlag interruptFlag, Reasoner reasoner, Tableau tableau, Hierarchy<AtomicConcept> atomicConceptHierarchy, Hierarchy<Role> objectRoleHierarchy)
           
 
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
 

Field Detail

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
Constructor Detail

InstanceManager

public InstanceManager(InterruptFlag interruptFlag,
                       Reasoner reasoner,
                       Tableau tableau,
                       Hierarchy<AtomicConcept> atomicConceptHierarchy,
                       Hierarchy<Role> objectRoleHierarchy)
Method Detail

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)