Interface OntResource

All Superinterfaces:
FrontsNode, RDFNode, Resource
All Known Subinterfaces:
AllDifferent, AllValuesFromRestriction, AnnotationProperty, BooleanClassDescription, CardinalityQRestriction, CardinalityRestriction, ComplementClass, DataRange, DatatypeProperty, EnumeratedClass, FunctionalProperty, HasValueRestriction, Individual, IntersectionClass, InverseFunctionalProperty, MaxCardinalityQRestriction, MaxCardinalityRestriction, MinCardinalityQRestriction, MinCardinalityRestriction, ObjectProperty, OntClass, Ontology, OntProperty, QualifiedRestriction, Restriction, SomeValuesFromRestriction, SymmetricProperty, TransitiveProperty, UnionClass
All Known Implementing Classes:
AllDifferentImpl, AllValuesFromRestrictionImpl, AnnotationPropertyImpl, BooleanClassDescriptionImpl, CardinalityQRestrictionImpl, CardinalityRestrictionImpl, ComplementClassImpl, DataRangeImpl, DatatypePropertyImpl, EnumeratedClassImpl, FunctionalPropertyImpl, HasValueRestrictionImpl, IndividualImpl, IntersectionClassImpl, InverseFunctionalPropertyImpl, MaxCardinalityQRestrictionImpl, MaxCardinalityRestrictionImpl, MinCardinalityQRestrictionImpl, MinCardinalityRestrictionImpl, ObjectPropertyImpl, OntClassImpl, OntologyImpl, OntPropertyImpl, OntResourceImpl, QualifiedRestrictionImpl, RestrictionImpl, SomeValuesFromRestrictionImpl, SymmetricPropertyImpl, TransitivePropertyImpl, UnionClassImpl

public interface OntResource extends Resource

Provides a common super-type for all of the abstractions in this ontology representation package.

  • Method Details

    • getOntModel

      OntModel getOntModel()

      Answer the model that this resource is attached to, assuming that it is an OntModel. If this resource is not attached to any model, or is (unusually) attached to a model that is not an OntModel, answer null.

      Returns:
      The ont model that this resource is attached to, or null.
    • getProfile

      Profile getProfile()

      Answer the ontology language profile that governs the ontology model to which this ontology resource is attached.

      Returns:
      The language profile for this ontology resource
      Throws:
      JenaException - if the resource is not bound to an OntModel, since that's the only way to get the profile for the resource
    • isOntLanguageTerm

      boolean isOntLanguageTerm()

      Answer true if this resource is a symbol in one of the standard ontology languages supported by Jena: RDF, RDFS or OWL. Since these languages have restricted namespaces, this check is simply a convenient way of testing whether this resource is in one of those pre-declared namespaces.

      Returns:
      True if this is a term in the language namespace for OWL, RDF or RDFS.
    • setSameAs

      void setSameAs(Resource res)

      Assert equivalence between the given resource and this resource. Any existing statements for sameAs will be removed.

      Parameters:
      res - The resource that is declared to be the same as this resource
      Throws:
      ProfileException - If the Profile.SAME_AS() property is not supported in the current language profile.
    • addSameAs

      void addSameAs(Resource res)

      Add a resource that is declared to be equivalent to this resource.

      Parameters:
      res - A resource that declared to be the same as this resource
      Throws:
      ProfileException - If the Profile.SAME_AS() property is not supported in the current language profile.
    • getSameAs

      OntResource getSameAs()

      Answer a resource that is declared to be the same as this resource. If there is more than one such resource, an arbitrary selection is made.

      Returns:
      An ont resource that declared to be the same as this resource
      Throws:
      ProfileException - If the Profile.SAME_AS() property is not supported in the current language profile.
    • listSameAs

      ExtendedIterator<? extends Resource> listSameAs()

      Answer an iterator over all of the resources that are declared to be the same as this resource. Each element of the iterator will be an OntResource.

      Returns:
      An iterator over the resources equivalent to this resource.
      Throws:
      ProfileException - If the Profile.SAME_AS() property is not supported in the current language profile.
    • isSameAs

      boolean isSameAs(Resource res)

      Answer true if this resource is the same as the given resource.

      Parameters:
      res - A resource to test against
      Returns:
      True if the resources are declared the same via a sameAs statement.
      Throws:
      ProfileException - If the Profile.SAME_AS() property is not supported in the current language profile.
    • removeSameAs

      void removeSameAs(Resource res)

      Remove the statement that this resource is the same as the given resource. If this statement is not true of the current model, nothing happens.

      Parameters:
      res - A resource that may be declared to be the sameAs this resource
    • setDifferentFrom

      void setDifferentFrom(Resource res)

      Assert that the given resource and this resource are distinct. Any existing statements for differentFrom will be removed.

      Parameters:
      res - The resource that is declared to be distinct from this resource
      Throws:
      ProfileException - If the Profile.DIFFERENT_FROM() property is not supported in the current language profile.
    • addDifferentFrom

      void addDifferentFrom(Resource res)

      Add a statement declaring that this resource is distinct from the given resource.

      Parameters:
      res - A resource that declared to be distinct from this resource
      Throws:
      ProfileException - If the Profile.DIFFERENT_FROM() property is not supported in the current language profile.
    • getDifferentFrom

      OntResource getDifferentFrom()

      Answer a resource that is declared to be distinct from this resource. If there is more than one such resource, an arbitrary selection is made.

      Returns:
      res An ont resource that declared to be different from this resource
      Throws:
      ProfileException - If the Profile.DIFFERENT_FROM() property is not supported in the current language profile.
    • listDifferentFrom

      ExtendedIterator<? extends Resource> listDifferentFrom()

      Answer an iterator over all of the resources that are declared to be different from this resource. Each element of the iterator will be an OntResource.

      Returns:
      An iterator over the resources different from this resource.
      Throws:
      ProfileException - If the Profile.DIFFERENT_FROM() property is not supported in the current language profile.
    • isDifferentFrom

      boolean isDifferentFrom(Resource res)

      Answer true if this resource is different from the given resource.

      Parameters:
      res - A resource to test against
      Returns:
      True if the resources are declared to be distinct via a differentFrom statement.
    • removeDifferentFrom

      void removeDifferentFrom(Resource res)

      Remove the statement that this resource is different the given resource. If this statement is not true of the current model, nothing happens.

      Parameters:
      res - A resource that may be declared to be differentFrom this resource
    • setSeeAlso

      void setSeeAlso(Resource res)

      Assert that the given resource provides additional information about the definition of this resource

      Parameters:
      res - A resource that can provide additional information about this resource
      Throws:
      ProfileException - If the Profile.SEE_ALSO() property is not supported in the current language profile.
    • addSeeAlso

      void addSeeAlso(Resource res)

      Add a resource that is declared to provided additional information about the definition of this resource

      Parameters:
      res - A resource that provides extra information on this resource
      Throws:
      ProfileException - If the Profile.SEE_ALSO() property is not supported in the current language profile.
    • getSeeAlso

      Resource getSeeAlso()

      Answer a resource that provides additional information about this resource. If more than one such resource is defined, make an arbitrary choice.

      Returns:
      res A resource that provides additional information about this resource
      Throws:
      ProfileException - If the Profile.SEE_ALSO() property is not supported in the current language profile.
    • listSeeAlso

      ExtendedIterator<RDFNode> listSeeAlso()

      Answer an iterator over all of the resources that are declared to provide additional information about this resource.

      Returns:
      An iterator over the resources providing additional information on this resource.
      Throws:
      ProfileException - If the Profile.SEE_ALSO() property is not supported in the current language profile.
    • hasSeeAlso

      boolean hasSeeAlso(Resource res)

      Answer true if this resource has the given resource as a source of additional information.

      Parameters:
      res - A resource to test against
      Returns:
      True if the res provides more information on this resource.
    • removeSeeAlso

      void removeSeeAlso(Resource res)

      Remove the statement indicating the given resource as a source of additional information about this resource. If this statement is not true of the current model, nothing happens.

      Parameters:
      res - A resource that may be declared to provide additional information about this resource
    • setIsDefinedBy

      void setIsDefinedBy(Resource res)

      Assert that the given resource provides a source of definitions about this resource. Any existing statements for isDefinedBy will be removed.

      Parameters:
      res - The resource that is declared to be a definition of this resource.
      Throws:
      ProfileException - If the Profile.IS_DEFINED_BY() property is not supported in the current language profile.
    • addIsDefinedBy

      void addIsDefinedBy(Resource res)

      Add a resource that is declared to provide a definition of this resource.

      Parameters:
      res - A defining resource
      Throws:
      ProfileException - If the Profile.IS_DEFINED_BY() property is not supported in the current language profile.
    • getIsDefinedBy

      Resource getIsDefinedBy()

      Answer a resource that is declared to provide a definition of this resource. If there is more than one such resource, an arbitrary selection is made.

      Returns:
      res An ont resource that is declared to provide a definition of this resource
      Throws:
      ProfileException - If the Profile.IS_DEFINED_BY() property is not supported in the current language profile.
    • listIsDefinedBy

      ExtendedIterator<RDFNode> listIsDefinedBy()

      Answer an iterator over all of the resources that are declared to define this resource.

      Returns:
      An iterator over the resources defining this resource.
      Throws:
      ProfileException - If the Profile.IS_DEFINED_BY() property is not supported in the current language profile.
    • isDefinedBy

      boolean isDefinedBy(Resource res)

      Answer true if this resource is defined by the given resource.

      Parameters:
      res - A resource to test against
      Returns:
      True if res defines this resource.
    • removeDefinedBy

      void removeDefinedBy(Resource res)

      Remove the statement that this resource is defined by the given resource. If this statement is not true of the current model, nothing happens.

      Parameters:
      res - A resource that may be declared to define this resource
    • setVersionInfo

      void setVersionInfo(String info)

      Assert that the given string is the value of the version info for this resource. Any existing statements for versionInfo will be removed.

      Parameters:
      info - The version information for this resource
      Throws:
      ProfileException - If the Profile.VERSION_INFO() property is not supported in the current language profile.
    • addVersionInfo

      void addVersionInfo(String info)

      Add the given version information to this resource.

      Parameters:
      info - A version information string for this resource
      Throws:
      ProfileException - If the Profile.VERSION_INFO() property is not supported in the current language profile.
    • getVersionInfo

      String getVersionInfo()

      Answer the version information string for this object. If there is more than one such resource, an arbitrary selection is made.

      Returns:
      A version info string
      Throws:
      ProfileException - If the Profile.VERSION_INFO() property is not supported in the current language profile.
    • listVersionInfo

      ExtendedIterator<String> listVersionInfo()

      Answer an iterator over all of the version info strings for this resource.

      Returns:
      An iterator over the version info strings for this resource.
      Throws:
      ProfileException - If the Profile.VERSION_INFO() property is not supported in the current language profile.
    • hasVersionInfo

      boolean hasVersionInfo(String info)

      Answer true if this resource has the given version information

      Parameters:
      info - Version information to test for
      Returns:
      True if this resource has info as version information.
    • removeVersionInfo

      void removeVersionInfo(String info)

      Remove the statement that the given string provides version information about this resource. If this statement is not true of the current model, nothing happens.

      Parameters:
      info - A version information string to be removed
    • setLabel

      void setLabel(String label, String lang)

      Assert that the given string is the value of the label for this resource. Any existing statements for label will be removed.

      Parameters:
      label - The label for this resource
      lang - The language attribute for this label (EN, FR, etc) or null if not specified.
      Throws:
      ProfileException - If the Profile.LABEL() property is not supported in the current language profile.
    • addLabel

      void addLabel(String label, String lang)

      Add the given label to this resource.

      Parameters:
      label - A label string for this resource
      lang - The language attribute for this label (EN, FR, etc) or null if not specified.
      Throws:
      ProfileException - If the Profile.LABEL() property is not supported in the current language profile.
    • addLabel

      void addLabel(Literal label)

      Add the given label to this resource.

      Parameters:
      label - The literal label
      Throws:
      ProfileException - If the Profile.LABEL() property is not supported in the current language profile.
    • getLabel

      String getLabel(String lang)

      Answer the label string for this object. If there is more than one such resource, an arbitrary selection is made.

      Parameters:
      lang - The language attribute for the desired label (EN, FR, etc) or null for don't care. Will attempt to retrieve the most specific label matching the given language

      Returns:
      A label string matching the given language, or null if there is no matching label.
      Throws:
      ProfileException - If the Profile.LABEL() property is not supported in the current language profile.
    • listLabels

      ExtendedIterator<RDFNode> listLabels(String lang)

      Answer an iterator over all of the label literals for this resource.

      Parameters:
      lang - The language tag to restrict the listed labels to, or null to select all labels
      Returns:
      An iterator over RDF Literal's.
      Throws:
      ProfileException - If the Profile.LABEL() property is not supported in the current language profile.
    • hasLabel

      boolean hasLabel(String label, String lang)

      Answer true if this resource has the given label

      Parameters:
      label - The label to test for
      lang - The optional language tag, or null for don't care.
      Returns:
      True if this resource has label as a label.
    • hasLabel

      boolean hasLabel(Literal label)

      Answer true if this resource has the given label

      Parameters:
      label - The label to test for
      Returns:
      True if this resource has label as a label.
    • removeLabel

      void removeLabel(String label, String lang)

      Remove the statement that the given string is a label for this resource. If this statement is not true of the current model, nothing happens.

      Parameters:
      label - A label string to be removed
      lang - A lang tag, or null if not specified
    • removeLabel

      void removeLabel(Literal label)

      Remove the statement that the given string is a label for this resource. If this statement is not true of the current model, nothing happens.

      Parameters:
      label - A label literal to be removed
    • setComment

      void setComment(String comment, String lang)

      Assert that the given string is the comment on this resource. Any existing statements for comment will be removed.

      Parameters:
      comment - The comment for this resource
      lang - The language attribute for this comment (EN, FR, etc) or null if not specified.
      Throws:
      ProfileException - If the Profile.COMMENT() property is not supported in the current language profile.
    • addComment

      void addComment(String comment, String lang)

      Add the given comment to this resource.

      Parameters:
      comment - A comment string for this resource
      lang - The language attribute for this comment (EN, FR, etc) or null if not specified.
      Throws:
      ProfileException - If the Profile.COMMENT() property is not supported in the current language profile.
    • addComment

      void addComment(Literal comment)

      Add the given comment to this resource.

      Parameters:
      comment - The literal comment
      Throws:
      ProfileException - If the Profile.COMMENT() property is not supported in the current language profile.
    • getComment

      String getComment(String lang)

      Answer the comment string for this object. If there is more than one such resource, an arbitrary selection is made.

      Parameters:
      lang - The language attribute for the desired comment (EN, FR, etc) or null for don't care. Will attempt to retrieve the most specific comment matching the given language

      Returns:
      A comment string matching the given language, or null if there is no matching comment.
      Throws:
      ProfileException - If the Profile.COMMENT() property is not supported in the current language profile.
    • listComments

      ExtendedIterator<RDFNode> listComments(String lang)

      Answer an iterator over all of the comment literals for this resource.

      Parameters:
      lang - The language tag to restrict the listed comments to, or null to select all comments
      Returns:
      An iterator over RDF Literal's.
      Throws:
      ProfileException - If the Profile.COMMENT() property is not supported in the current language profile.
    • hasComment

      boolean hasComment(String comment, String lang)

      Answer true if this resource has the given comment.

      Parameters:
      comment - The comment to test for
      lang - The optional language tag, or null for don't care.
      Returns:
      True if this resource has comment as a comment.
    • hasComment

      boolean hasComment(Literal comment)

      Answer true if this resource has the given comment.

      Parameters:
      comment - The comment to test for
      Returns:
      True if this resource has comment as a comment.
    • removeComment

      void removeComment(String comment, String lang)

      Remove the statement that the given string is a comment on this resource. If this statement is not true of the current model, nothing happens.

      Parameters:
      comment - A comment string to be removed
      lang - A lang tag, or null if not specified
    • removeComment

      void removeComment(Literal comment)

      Remove the statement that the given string is a comment on this resource. If this statement is not true of the current model, nothing happens.

      Parameters:
      comment - A comment literal to be removed
    • setRDFType

      void setRDFType(Resource cls)

      Set the RDF type (i.e. the class) for this resource, replacing any existing rdf:type property. Any existing statements for the RDF type will first be removed.

      Parameters:
      cls - The RDF resource denoting the new value for the rdf:type property, which will replace any existing type property.
      See Also:
    • addRDFType

      void addRDFType(Resource cls)

      Add the given class as one of the rdf:type's for this resource.

      Parameters:
      cls - An RDF resource denoting a new value for the rdf:type property.
      See Also:
    • getRDFType

      Resource getRDFType()

      Answer the rdf:type (i.e. the class) of this resource. If there is more than one type for this resource, the return value will be one of the values, but it is not specified which one (nor that it will consistently be the same one each time). Equivalent to getRDFType( false ).

      Returns:
      A resource that is the rdf:type for this resource, or one of them if more than one is defined.
      See Also:
    • getRDFType

      Resource getRDFType(boolean direct)

      Answer the rdf:type (i.e. the class) of this resource. If there is more than one type for this resource, the return value will be one of the values, but it is not specified which one (nor that it will consistently be the same one each time).

      Parameters:
      direct - If true, only consider the direct types of this resource, and not the super-classes of the type(s).
      Returns:
      A resource that is the rdf:type for this resource, or one of them if more than one is defined.
      See Also:
    • listRDFTypes

      ExtendedIterator<Resource> listRDFTypes(boolean direct)

      Answer an iterator over the RDF classes to which this resource belongs.

      Parameters:
      direct - If true, only answer those resources that are direct types of this resource, not the super-classes of the class etc.
      Returns:
      An iterator over the set of this resource's classes. Each member of the iteration will be an Resource. Use .as( OntClass.class ) to map this resource to an OntClass.
      See Also:
    • hasRDFType

      boolean hasRDFType(Resource ontClass, boolean direct)

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

      Parameters:
      ontClass - Denotes a class to which this value may belong
      direct - If true, only consider the direct types of this resource, ignoring the super-classes of the stated types.
      Returns:
      True if this resource has the given class as one of its rdf:type's.
      See Also:
    • hasRDFType

      boolean hasRDFType(Resource ontClass)

      Answer true if this resource is a member of the class denoted by the given class resource. Includes all available types, so is equivalent to

       hasRDF( ontClass, false );
       

      Parameters:
      ontClass - Denotes a class to which this value may belong
      Returns:
      True if this resource has the given class as one of its rdf:type's.
      See Also:
    • removeRDFType

      void removeRDFType(Resource cls)

      Remove the statement that this resource is of the given RDF type. If this statement is not true of the current model, nothing happens.

      Parameters:
      cls - A resource denoting a class that that is to be removed from the classes of this resource
      See Also:
    • hasRDFType

      boolean hasRDFType(String uri)

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

      Parameters:
      uri - Denotes the URI of a class to which this value may belong
      Returns:
      True if this resource has the given class as one of its rdf:type's.
      See Also:
    • getCardinality

      int getCardinality(Property p)

      Answer the cardinality of the given property on this resource. The cardinality is the number of distinct values there are for the property.

      Parameters:
      p - A property
      Returns:
      The cardinality for the property p on this resource, as an integer greater than or equal to zero.
    • setPropertyValue

      void setPropertyValue(Property property, RDFNode value)

      Set the value of the given property of this ontology resource to the given value, encoded as an RDFNode. Maintains the invariant that there is at most one value of the property for a given resource, so existing property values are first removed. To add multiple properties, use addProperty.

      Parameters:
      property - The property to update
      value - The new value of the property as an RDFNode, or null to effectively remove this property.
    • getPropertyValue

      RDFNode getPropertyValue(Property property)

      Answer the value of a given RDF property for this resource, or null if it doesn't have one. The value is returned as an RDFNode, from which the concrete data value can be extracted for literals. If the value is a resource, it will present the OntResource facet. If there is more than one RDF statement with the given property for the current value, it is not defined which of the values will be returned.

      Parameters:
      property - An RDF property
      Returns:
      An RDFNode whose value is the value, or one of the values, of the given property. If the property is not defined the method returns null.
    • listPropertyValues

      NodeIterator listPropertyValues(Property property)

      Answer an iterator over the values for a given RDF property. Each value in the iterator will be an RDFNode.

      Parameters:
      property - The property whose values are sought
      Returns:
      An Iterator over the values of the property
    • removeProperty

      void removeProperty(Property property, RDFNode value)

      Remove the specific property-value pair from this resource.

      Parameters:
      property - The property to be removed
      value - The specific value of the property to be removed
    • remove

      void remove()

      Removes this resource from the ontology by deleting any statements that refer to it, as either statement-subject or statement-object. If this resource is a property, this method will not remove statements whose predicate is this property.

      Caveat: Jena RDF models contain statements, not resources per se, so this method simulates removal of an object by removing all of the statements that have this resource as subject or object, with one exception. If the resource is referenced in an RDF List, i.e. as the object of an rdf:first statement in a list cell, this reference is not removed. Removing an arbitrary rdf:first statement from the midst of a list, without doing other work to repair the list, would leave an ill-formed list in the model. Therefore, if this resource is known to appear in a list somewhere in the model, it should be separately deleted from that list before calling this remove method.

    • asProperty

      OntProperty asProperty()

      Answer a view of this resource as a property

      Returns:
      This resource, but viewed as an OntProperty
      Throws:
      ConversionException - if the resource cannot be converted to a property
    • asAnnotationProperty

      AnnotationProperty asAnnotationProperty()

      Answer a view of this resource as an annotation property

      Returns:
      This resource, but viewed as an AnnotationProperty
      Throws:
      ConversionException - if the resource cannot be converted to an annotation property
    • asObjectProperty

      ObjectProperty asObjectProperty()

      Answer a view of this resource as an object property

      Returns:
      This resource, but viewed as an ObjectProperty
      Throws:
      ConversionException - if the resource cannot be converted to an object property
    • asDatatypeProperty

      DatatypeProperty asDatatypeProperty()

      Answer a view of this resource as a datatype property

      Returns:
      This resource, but viewed as a DatatypeProperty
      Throws:
      ConversionException - if the resource cannot be converted to a datatype property
    • asIndividual

      Individual asIndividual()

      Answer a view of this resource as an individual

      Returns:
      This resource, but viewed as an Individual
      Throws:
      ConversionException - if the resource cannot be converted to an individual
    • asClass

      OntClass asClass()

      Answer a view of this resource as a class

      Returns:
      This resource, but viewed as an OntClass
      Throws:
      ConversionException - if the resource cannot be converted to a class
    • asOntology

      Ontology asOntology()

      Answer a view of this resource as an ontology description node

      Returns:
      This resource, but viewed as an Ontology
      Throws:
      ConversionException - if the resource cannot be converted to an ontology description node
    • asDataRange

      DataRange asDataRange()

      Answer a view of this resource as a data range

      Returns:
      This resource, but viewed as a DataRange
      Throws:
      ConversionException - if the resource cannot be converted to a data range
    • asAllDifferent

      AllDifferent asAllDifferent()

      Answer a view of this resource as an 'all different' declaration

      Returns:
      This resource, but viewed as an AllDifferent node
      Throws:
      ConversionException - if the resource cannot be converted to an all different declaration
    • isProperty

      boolean isProperty()

      Answer true if this resource can be viewed as a property

      Returns:
      True if this resource can be viewed as an OntProperty
    • isAnnotationProperty

      boolean isAnnotationProperty()

      Answer true if this resource can be viewed as an annotation property

      Returns:
      True if this resource can be viewed as an AnnotationProperty
    • isObjectProperty

      boolean isObjectProperty()

      Answer true if this resource can be viewed as an object property

      Returns:
      True if this resource can be viewed as an ObjectProperty
    • isDatatypeProperty

      boolean isDatatypeProperty()

      Answer true if this resource can be viewed as a datatype property

      Returns:
      True if this resource can be viewed as a DatatypeProperty
    • isIndividual

      boolean isIndividual()

      Answer true if this resource can be viewed as an individual

      Returns:
      True if this resource can be viewed as an Individual
    • isClass

      boolean isClass()

      Answer true if this resource can be viewed as a class

      Returns:
      True if this resource can be viewed as an OntClass
    • isOntology

      boolean isOntology()

      Answer true if this resource can be viewed as an ontology description node

      Returns:
      True if this resource can be viewed as an Ontology
    • isDataRange

      boolean isDataRange()

      Answer true if this resource can be viewed as a data range

      Returns:
      True if this resource can be viewed as a DataRange
    • isAllDifferent

      boolean isAllDifferent()

      Answer true if this resource can be viewed as an 'all different' declaration

      Returns:
      True if this resource can be viewed as an AllDifferent node