org.semanticweb.elk.reasoner.taxonomy
Class ConcurrentInstanceTaxonomy

java.lang.Object
  extended by org.semanticweb.elk.reasoner.taxonomy.ConcurrentInstanceTaxonomy
All Implemented Interfaces:
IndividualClassTaxonomy, InstanceTaxonomy<ElkClass,ElkNamedIndividual>, Taxonomy<ElkClass>, UpdateableInstanceTaxonomy<ElkClass,ElkNamedIndividual>, UpdateableTaxonomy<ElkClass>

public class ConcurrentInstanceTaxonomy
extends Object
implements IndividualClassTaxonomy

Class taxonomy that is suitable for concurrent processing. Taxonomy objects are only constructed for consistent ontologies, and some consequences of this are hardcoded here. This class wraps an instance of UpdateableTaxonomy and lazily generates wrappers for its nodes to store direct instances.

Author:
Yevgeny Kazakov, Frantisek Simancik, Markus Kroetzsch, Pavel Klinov

Constructor Summary
ConcurrentInstanceTaxonomy()
           
ConcurrentInstanceTaxonomy(UpdateableTaxonomy<ElkClass> classTaxonomy)
           
 
Method Summary
 boolean addToBottomNode(ElkClass member)
           
 TypeNode<ElkClass,ElkNamedIndividual> getBottomNode()
           
 IndividualNode getCreateInstanceNode(Collection<ElkNamedIndividual> members)
           
 UpdateableTaxonomyNode<ElkClass> getCreateNode(Collection<ElkClass> members)
           
 UpdateableTypeNode<ElkClass,ElkNamedIndividual> getCreateTypeNode(Collection<ElkClass> members)
           
 UpdateableInstanceNode<ElkClass,ElkNamedIndividual> getInstanceNode(ElkNamedIndividual individual)
          Obtain a TypeNode object for a given ElkClass, or null if none assigned.
 Set<? extends InstanceNode<ElkClass,ElkNamedIndividual>> getInstanceNodes()
          Obtain an unmodifiable Set of all instance nodes in this taxonomy.
 TaxonomyNode<ElkClass> getNode(ElkClass elkClass)
          Returns the TaxonomyNode containing the given ElkObject as a member or null if the input does not occur in the taxonomy.
 Set<? extends TaxonomyNode<ElkClass>> getNodes()
          Obtain an unmodifiable Set of all nodes in this taxonomy.
 UpdateableTypeNode<ElkClass,ElkNamedIndividual> getTopNode()
           
 TypeNode<ElkClass,ElkNamedIndividual> getTypeNode(ElkClass elkClass)
          Obtain a TypeNode object for a given ElkClass, or null if none assigned.
 Set<? extends TypeNode<ElkClass,ElkNamedIndividual>> getTypeNodes()
          Obtain an unmodifiable Set of all type nodes in this taxonomy.
 UpdateableBottomNode<ElkClass> getUpdateableBottomNode()
           
 UpdateableTaxonomyNode<ElkClass> getUpdateableNode(ElkClass elkObject)
           
 Set<? extends UpdateableTaxonomyNode<ElkClass>> getUpdateableNodes()
           
 UpdateableTypeNode<ElkClass,ElkNamedIndividual> getUpdateableTopNode()
           
 UpdateableTypeNode<ElkClass,ElkNamedIndividual> getUpdateableTypeNode(ElkClass elkClass)
           
 boolean removeInstanceNode(ElkNamedIndividual instance)
           
 boolean removeNode(UpdateableTaxonomyNode<ElkClass> node)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ConcurrentInstanceTaxonomy

public ConcurrentInstanceTaxonomy()

ConcurrentInstanceTaxonomy

public ConcurrentInstanceTaxonomy(UpdateableTaxonomy<ElkClass> classTaxonomy)
Method Detail

getTypeNode

public TypeNode<ElkClass,ElkNamedIndividual> getTypeNode(ElkClass elkClass)
Obtain a TypeNode object for a given ElkClass, or null if none assigned.

Specified by:
getTypeNode in interface InstanceTaxonomy<ElkClass,ElkNamedIndividual>
Parameters:
elkClass -
Returns:
type node object for elkClass, possibly still incomplete

getInstanceNode

public UpdateableInstanceNode<ElkClass,ElkNamedIndividual> getInstanceNode(ElkNamedIndividual individual)
Obtain a TypeNode object for a given ElkClass, or null if none assigned.

Specified by:
getInstanceNode in interface InstanceTaxonomy<ElkClass,ElkNamedIndividual>
Specified by:
getInstanceNode in interface UpdateableInstanceTaxonomy<ElkClass,ElkNamedIndividual>
Parameters:
individual -
Returns:
instance node object for elkClass, possibly still incomplete

getNode

public TaxonomyNode<ElkClass> getNode(ElkClass elkClass)
Description copied from interface: Taxonomy
Returns the TaxonomyNode containing the given ElkObject as a member or null if the input does not occur in the taxonomy.

Specified by:
getNode in interface Taxonomy<ElkClass>
Parameters:
elkClass - the ElkObject for which to return the TaxonomyNode
Returns:
the TaxonomyNode for the specified input ElkObject

getTypeNodes

public Set<? extends TypeNode<ElkClass,ElkNamedIndividual>> getTypeNodes()
Description copied from interface: InstanceTaxonomy
Obtain an unmodifiable Set of all type nodes in this taxonomy.

Specified by:
getTypeNodes in interface InstanceTaxonomy<ElkClass,ElkNamedIndividual>
Returns:
an unmodifiable Set

getInstanceNodes

public Set<? extends InstanceNode<ElkClass,ElkNamedIndividual>> getInstanceNodes()
Description copied from interface: InstanceTaxonomy
Obtain an unmodifiable Set of all instance nodes in this taxonomy.

Specified by:
getInstanceNodes in interface InstanceTaxonomy<ElkClass,ElkNamedIndividual>
Returns:
an unmodifiable Set

getNodes

public Set<? extends TaxonomyNode<ElkClass>> getNodes()
Description copied from interface: Taxonomy
Obtain an unmodifiable Set of all nodes in this taxonomy.

Specified by:
getNodes in interface Taxonomy<ElkClass>
Returns:
an unmodifiable Collection

getCreateInstanceNode

public IndividualNode getCreateInstanceNode(Collection<ElkNamedIndividual> members)
Specified by:
getCreateInstanceNode in interface UpdateableInstanceTaxonomy<ElkClass,ElkNamedIndividual>

removeInstanceNode

public boolean removeInstanceNode(ElkNamedIndividual instance)
Specified by:
removeInstanceNode in interface UpdateableInstanceTaxonomy<ElkClass,ElkNamedIndividual>

getUpdateableTypeNode

public UpdateableTypeNode<ElkClass,ElkNamedIndividual> getUpdateableTypeNode(ElkClass elkClass)
Specified by:
getUpdateableTypeNode in interface UpdateableInstanceTaxonomy<ElkClass,ElkNamedIndividual>

getCreateTypeNode

public UpdateableTypeNode<ElkClass,ElkNamedIndividual> getCreateTypeNode(Collection<ElkClass> members)
Specified by:
getCreateTypeNode in interface UpdateableInstanceTaxonomy<ElkClass,ElkNamedIndividual>

getTopNode

public UpdateableTypeNode<ElkClass,ElkNamedIndividual> getTopNode()
Specified by:
getTopNode in interface InstanceTaxonomy<ElkClass,ElkNamedIndividual>
Specified by:
getTopNode in interface Taxonomy<ElkClass>
Returns:
the node of this taxonomy that has no parent nodes

getUpdateableTopNode

public UpdateableTypeNode<ElkClass,ElkNamedIndividual> getUpdateableTopNode()
Specified by:
getUpdateableTopNode in interface UpdateableInstanceTaxonomy<ElkClass,ElkNamedIndividual>
Specified by:
getUpdateableTopNode in interface UpdateableTaxonomy<ElkClass>

getBottomNode

public TypeNode<ElkClass,ElkNamedIndividual> getBottomNode()
Specified by:
getBottomNode in interface InstanceTaxonomy<ElkClass,ElkNamedIndividual>
Specified by:
getBottomNode in interface Taxonomy<ElkClass>
Returns:
the node of this taxonomy that has no child nodes

getUpdateableBottomNode

public UpdateableBottomNode<ElkClass> getUpdateableBottomNode()
Specified by:
getUpdateableBottomNode in interface UpdateableTaxonomy<ElkClass>

getCreateNode

public UpdateableTaxonomyNode<ElkClass> getCreateNode(Collection<ElkClass> members)
Specified by:
getCreateNode in interface UpdateableTaxonomy<ElkClass>

addToBottomNode

public boolean addToBottomNode(ElkClass member)
Specified by:
addToBottomNode in interface UpdateableTaxonomy<ElkClass>

removeNode

public boolean removeNode(UpdateableTaxonomyNode<ElkClass> node)
Specified by:
removeNode in interface UpdateableTaxonomy<ElkClass>

getUpdateableNode

public UpdateableTaxonomyNode<ElkClass> getUpdateableNode(ElkClass elkObject)
Specified by:
getUpdateableNode in interface UpdateableTaxonomy<ElkClass>

getUpdateableNodes

public Set<? extends UpdateableTaxonomyNode<ElkClass>> getUpdateableNodes()
Specified by:
getUpdateableNodes in interface UpdateableTaxonomy<ElkClass>


Copyright © 2011-2013 Department of Computer Science, University of Oxford. All Rights Reserved.