Class IndividualImpl

All Implemented Interfaces:
FrontsNode, Individual, OntResource, RDFNode, Resource

public class IndividualImpl extends OntResourceImpl implements Individual

Implementation for the ontology abstraction representing ontology class descriptions.

  • Field Details

    • factory

      public static Implementation factory
      A factory for generating Individual facets from nodes in enhanced graphs. Note: should not be invoked directly by user code: use as() instead.
  • Constructor Details

    • IndividualImpl

      public IndividualImpl(Node n, EnhGraph g)

      Construct an individual represented by the given node in the given graph.

      Parameters:
      n - The node that represents the resource
      g - The enh graph that contains n
  • Method Details

    • setOntClass

      public void setOntClass(Resource cls)

      Set the ontology class for this individual, replacing any existing class membership. Class membership is encoded using the rdf:type property. Any existing statements for the RDF type will first be removed.

      Specified by:
      setOntClass in interface Individual
      Parameters:
      cls - The RDF resource denoting the new class to which this individual belongs, which will replace any existing rdf:type property.
    • addOntClass

      public void addOntClass(Resource cls)

      Add the given ontology class as one of the classes to which this individual belongs. Class membership is encoded using the rdf:type property.

      Specified by:
      addOntClass in interface Individual
      Parameters:
      cls - An RDF resource denoting an additional class to which this individual belongs.
    • getOntClass

      public OntClass getOntClass()

      Answer an ontology class to which this individual belongs. If the individual belongs to more than one class, which is common in ontology models using a reasoner, then the return value will be one of the possible values but it is not specified which one. In the case of multiple classes, callers should not rely on the return value being consistent, e.g. across runs, since it may depend on the underlying hash indexes in the model.

      This method considers any ontology class for the individual, not just direct classes. It is equivalent to getOntClass(false).

      Specified by:
      getOntClass in interface Individual
      Returns:
      A resource denoting the ontology class for this individual, or one of them if more than one is defined.
      Throws:
      ConversionException - if the return value is known to be an ontology class, assuming strict type checking is turned on for the underlying OntModel. See OntModel.setStrictMode(boolean)
    • getOntClass

      public OntClass getOntClass(boolean direct)

      Answer an ontology class to which this individual belongs. If the resource belongs to more than one class, which is common in ontology models using a reasoner, then the return value will be one of the possible values but it is not specified which one. In the case of multiple classes, callers should not rely on the return value being consistent, e.g. across runs, since it may depend on the underlying hash indexes in the model.

      Specified by:
      getOntClass in interface Individual
      Parameters:
      direct - If true, only direct classes are considered. A class is a direct class of this Individual if and only if there is no other resource is both an rdf:type of this individual and a sub-class of the candidate class.
      Returns:
      A resource denoting the ontology class for this individual, or one of them if more than one is defined.
      Throws:
      ConversionException - if the return value is known to be an ontology class, assuming strict type checking is turned on for the underlying OntModel. See OntModel.setStrictMode(boolean)
    • listOntClasses

      public <T extends OntClass> ExtendedIterator<T> listOntClasses(boolean direct)

      Answer an iterator over the ontology classes to which this individual belongs. The members of the iterator will be OntClass objects.

      Specified by:
      listOntClasses in interface Individual
      Parameters:
      direct - If true, only answer those resources that are direct types of this individual, not the super-classes of the class etc.
      Returns:
      An iterator over the set of this individual's classes. Each member of the iteration will be an OntClass.
    • hasOntClass

      public boolean hasOntClass(Resource ontClass, boolean direct)

      Answer true if this individual is a member of the class denoted by the given class resource.

      Specified by:
      hasOntClass in interface Individual
      Parameters:
      ontClass - Denotes an ontology class to which this individual may belong
      direct - If true, only consider the direct types of this individual, ignoring the super-classes of the stated types.
      Returns:
      True if this individual is a member of the given class, possibly taking the directness constraint into account.
    • hasOntClass

      public boolean hasOntClass(Resource ontClass)

      Answer true if this individual is a member of the class denoted by the given ontology class resource. Not limited to only direct class relationships, so this is equivalent to:

       hasOntClass( ontClass, false );
       

      Specified by:
      hasOntClass in interface Individual
      Parameters:
      ontClass - Denotes a class to which this individual may belong
      Returns:
      True if this individual has the given class as one of its rdf:type's.
    • hasOntClass

      public boolean hasOntClass(String uri)

      Answer true if this individual is a member of the class denoted by the given URI.

      Specified by:
      hasOntClass in interface Individual
      Parameters:
      uri - Denotes the URI of a class to which this value may belong
      Returns:
      True if this individual has the given class as one of its rdf:type's.
    • removeOntClass

      public void removeOntClass(Resource ontClass)

      Attempt to remove this individual as a member of the given ontology class. This relationship is represented by a rdf:type statement in the underlying model. If this relationship was originally asserted, then removal will always succeed. However, if the rdf:type relationship is entailed by the action of an attached reasoner, it may not be possible to directly remove it. Callers should instead update the assertions and axioms that entail the class membership relationship, and ensure the reasoner gets chance to update the entailments.

      If this individual is not a member of the given class, the operation has no effect.

      Specified by:
      removeOntClass in interface Individual
      Parameters:
      ontClass - A resource denoting a class that that is to be removed from the set of classes to which this individual belongs