Interface OntProperty

All Superinterfaces:
FrontsNode, OntResource, Property, RDFNode, Resource
All Known Subinterfaces:
AnnotationProperty, DatatypeProperty, FunctionalProperty, InverseFunctionalProperty, ObjectProperty, SymmetricProperty, TransitiveProperty
All Known Implementing Classes:
AnnotationPropertyImpl, DatatypePropertyImpl, FunctionalPropertyImpl, InverseFunctionalPropertyImpl, ObjectPropertyImpl, OntPropertyImpl, SymmetricPropertyImpl, TransitivePropertyImpl

public interface OntProperty extends OntResource, Property

Interface encapsulating a property in an ontology. This is an extension to the standard Property interface, adding a collection of convenience methods for accessing the additional semantic features of properties in OWL and RDFS such as domain, range, inverse, etc. Not all such capabilities exist in all supported ontology languages.

  • Method Details

    • setSuperProperty

      void setSuperProperty(Property prop)

      Assert that this property is sub-property of the given property. Any existing statements for subPropertyOf will be removed.

      Parameters:
      prop - The property that this property is a sub-property of
      Throws:
      ProfileException - If the Profile.SUB_PROPERTY_OF() property is not supported in the current language profile.
    • addSuperProperty

      void addSuperProperty(Property prop)

      Add a super-property of this property.

      Parameters:
      prop - A property that is a super-property of this property.
      Throws:
      ProfileException - If the Profile.SUB_PROPERTY_OF() property is not supported in the current language profile.
    • getSuperProperty

      OntProperty getSuperProperty()

      Answer a property that is the super-property of this property. If there is more than one such property, an arbitrary selection is made.

      Returns:
      A super-property of this property
      Throws:
      ProfileException - If the Profile.SUB_PROPERTY_OF() property is not supported in the current language profile.
    • listSuperProperties

      ExtendedIterator<? extends OntProperty> listSuperProperties()

      Answer an iterator over all of the properties that are declared to be super-properties of this property. Each element of the iterator will be an OntProperty.

      Returns:
      An iterator over the super-properties of this property.
      Throws:
      ProfileException - If the Profile.SUB_PROPERTY_OF() property is not supported in the current language profile.
    • listSuperProperties

      ExtendedIterator<? extends OntProperty> listSuperProperties(boolean direct)

      Answer an iterator over all of the properties that are declared to be super-properties of this property. Each element of the iterator will be an OntProperty.

      Parameters:
      direct - If true, only answer the directly adjacent properties in the property hierarchy: i.e. eliminate any property for which there is a longer route to reach that child under the super-property relation.
      Returns:
      An iterator over the super-properties of this property.
      Throws:
      ProfileException - If the Profile.SUB_PROPERTY_OF() property is not supported in the current language profile.
    • hasSuperProperty

      boolean hasSuperProperty(Property prop, boolean direct)

      Answer true if the given property is a super-property of this property.

      Parameters:
      prop - A property to test.
      direct - If true, only consider the directly adjacent properties in the property hierarchy
      Returns:
      True if the given property is a super-property of this property.
      Throws:
      ProfileException - If the Profile.SUB_PROPERTY_OF() property is not supported in the current language profile.
    • removeSuperProperty

      void removeSuperProperty(Property prop)

      Remove the given property from the super-properties of this property. If this statement is not true of the current model, nothing happens.

      Parameters:
      prop - A property to be removed from the super-properties of this property
      Throws:
      ProfileException - If the Profile.SUB_PROPERTY_OF() property is not supported in the current language profile.
    • setSubProperty

      void setSubProperty(Property prop)

      Assert that this property is super-property of the given property. Any existing statements for subPropertyOf on prop will be removed.

      Parameters:
      prop - The property that is a sub-property of this property
      Throws:
      ProfileException - If the Profile.SUB_PROPERTY_OF() property is not supported in the current language profile.
    • addSubProperty

      void addSubProperty(Property prop)

      Add a sub-property of this property.

      Parameters:
      prop - A property that is a sub-property of this property.
      Throws:
      ProfileException - If the Profile.SUB_PROPERTY_OF() property is not supported in the current language profile.
    • getSubProperty

      OntProperty getSubProperty()

      Answer a property that is the sub-property of this property. If there is more than one such property, an arbitrary selection is made.

      Returns:
      A sub-property of this property
      Throws:
      ProfileException - If the Profile.SUB_PROPERTY_OF() property is not supported in the current language profile.
    • listSubProperties

      ExtendedIterator<? extends OntProperty> listSubProperties()

      Answer an iterator over all of the properties that are declared to be sub-properties of this property. Each element of the iterator will be an OntProperty.

      Returns:
      An iterator over the sub-properties of this property.
      Throws:
      ProfileException - If the Profile.SUB_PROPERTY_OF() property is not supported in the current language profile.
    • listSubProperties

      ExtendedIterator<? extends OntProperty> listSubProperties(boolean direct)

      Answer an iterator over all of the properties that are declared to be sub-properties of this property. Each element of the iterator will be an OntProperty.

      Parameters:
      direct - If true, only answer the directly adjacent properties in the property hierarchy: i.e. eliminate any property for which there is a longer route to reach that child under the sub-property relation.
      Returns:
      An iterator over the sub-properties of this property.
      Throws:
      ProfileException - If the Profile.SUB_PROPERTY_OF() property is not supported in the current language profile.
    • hasSubProperty

      boolean hasSubProperty(Property prop, boolean direct)

      Answer true if the given property is a sub-property of this property.

      Parameters:
      prop - A property to test.
      direct - If true, only consider the directly adjacent properties in the property hierarchy
      Returns:
      True if the given property is a sub-property of this property.
      Throws:
      ProfileException - If the Profile.SUB_PROPERTY_OF() property is not supported in the current language profile.
    • removeSubProperty

      void removeSubProperty(Property prop)

      Remove the given property from the sub-properties of this property. If this statement is not true of the current model, nothing happens.

      Parameters:
      prop - A property to be removed from the sub-properties of this property
      Throws:
      ProfileException - If the Profile.SUB_PROPERTY_OF() property is not supported in the current language profile.
    • setDomain

      void setDomain(Resource res)

      Assert that the given resource represents the class of individuals that form the domain of this property. Any existing domain statements for this property are removed.

      Parameters:
      res - The resource that represents the domain class for this property.
      Throws:
      ProfileException - If the Profile.DOMAIN() property is not supported in the current language profile.
    • addDomain

      void addDomain(Resource res)

      Add a resource representing the domain of this property.

      Parameters:
      res - A resource that represents a domain class for this property.
      Throws:
      ProfileException - If the Profile.DOMAIN() property is not supported in the current language profile.
    • getDomain

      OntResource getDomain()

      Answer a resource that represents the domain class of this property. If there is more than one such resource, an arbitrary selection is made.

      Returns:
      An resource representing the class that forms the domain of this property
      Throws:
      ProfileException - If the Profile.DOMAIN() property is not supported in the current language profile.
    • listDomain

      ExtendedIterator<? extends OntResource> listDomain()

      Answer an iterator over all of the declared domain classes of this property. Each element of the iterator will be an OntResource.

      Returns:
      An iterator over the classes that form the domain of this property.
      Throws:
      ProfileException - If the Profile.DOMAIN() property is not supported in the current language profile.
    • hasDomain

      boolean hasDomain(Resource res)

      Answer true if the given resource a class specifying the domain of this property.

      Parameters:
      res - A resource representing a class
      Returns:
      True if the given resource is one of the domain classes of this property.
      Throws:
      ProfileException - If the Profile.DOMAIN() property is not supported in the current language profile.
    • removeDomain

      void removeDomain(Resource cls)

      Remove the given class from the stated domain(s) of this property. If this statement is not true of the current model, nothing happens.

      Parameters:
      cls - A class to be removed from the declared domain(s) of this property
      Throws:
      ProfileException - If the Profile.DOMAIN() property is not supported in the current language profile.
    • setRange

      void setRange(Resource res)

      Assert that the given resource represents the class of individuals that form the range of this property. Any existing range statements for this property are first removed. Therefore, if the property is known not to have a range declaration, it is more efficient to use addRange(org.apache.jena.rdf.model.Resource) since no removal step is necessary. See addRange(org.apache.jena.rdf.model.Resource) for additional usage notes on the value of res.

      Parameters:
      res - The resource that represents the range class for this property.
      Throws:
      ProfileException - If the Profile.RANGE() property is not supported in the current language profile.
    • addRange

      void addRange(Resource res)

      Add a resource representing the range of this property. The resource denotes the class or datatype that objects of statements using this property as predicate should belong to. For datatype properties, XML Schema Datatype names are pre-declared as resources in the XSD vocabulary class. For object properties, the resource should be represent the range class. Note that OntClass is a Java sub-class of Resource, so OntClass objects can be passed directly.

      Parameters:
      res - A resource that represents a range class for this property.
      Throws:
      ProfileException - If the Profile.RANGE() property is not supported in the current language profile.
    • getRange

      OntResource getRange()

      Answer a resource that represents the range class of this property. If there is more than one such resource, an arbitrary selection is made.

      Returns:
      An resource representing the class that forms the range of this property
      Throws:
      ProfileException - If the Profile.RANGE() property is not supported in the current language profile.
    • listRange

      ExtendedIterator<? extends OntResource> listRange()

      Answer an iterator over all of the declared range classes of this property. Each element of the iterator will be an OntResource.

      Returns:
      An iterator over the classes that form the range of this property.
      Throws:
      ProfileException - If the Profile.RANGE() property is not supported in the current language profile.
    • hasRange

      boolean hasRange(Resource res)

      Answer true if the given resource a class specifying the range of this property.

      Parameters:
      res - A resource representing a class
      Returns:
      True if the given resource is one of the range classes of this property.
      Throws:
      ProfileException - If the Profile.RANGE() property is not supported in the current language profile.
    • removeRange

      void removeRange(Resource cls)

      Remove the given class from the stated range(s) of this property. If this statement is not true of the current model, nothing happens.

      Parameters:
      cls - A class to be removed from the declared range(s) of this property
      Throws:
      ProfileException - If the Profile.RANGE() property is not supported in the current language profile.
    • setEquivalentProperty

      void setEquivalentProperty(Property prop)

      Assert that the given property is equivalent to this property. Any existing statements for equivalentProperty will be removed.

      Parameters:
      prop - The property that this property is a equivalent to.
      Throws:
      ProfileException - If the Profile.EQUIVALENT_PROPERTY() property is not supported in the current language profile.
    • addEquivalentProperty

      void addEquivalentProperty(Property prop)

      Add a property that is equivalent to this property.

      Parameters:
      prop - A property that is equivalent to this property.
      Throws:
      ProfileException - If the Profile.EQUIVALENT_PROPERTY() property is not supported in the current language profile.
    • getEquivalentProperty

      OntProperty getEquivalentProperty()

      Answer a property that is equivalent to this property. If there is more than one such property, an arbitrary selection is made.

      Returns:
      A property equivalent to this property
      Throws:
      ProfileException - If the Profile.EQUIVALENT_PROPERTY() property is not supported in the current language profile.
    • listEquivalentProperties

      ExtendedIterator<? extends OntProperty> listEquivalentProperties()

      Answer an iterator over all of the properties that are declared to be equivalent properties to this property. Each element of the iterator will be an OntProperty.

      Returns:
      An iterator over the properties equivalent to this property.
      Throws:
      ProfileException - If the Profile.EQUIVALENT_PROPERTY() property is not supported in the current language profile.
    • hasEquivalentProperty

      boolean hasEquivalentProperty(Property prop)

      Answer true if the given property is equivalent to this property.

      Parameters:
      prop - A property to test for
      Returns:
      True if the given property is equivalent to this property.
      Throws:
      ProfileException - If the Profile.EQUIVALENT_PROPERTY() property is not supported in the current language profile.
    • removeEquivalentProperty

      void removeEquivalentProperty(Property prop)

      Remove the statement that this property and the given property are equivalent. If this statement is not true of the current model, nothing happens.

      Parameters:
      prop - A property that may be declared to be equivalent to this property
      Throws:
      ProfileException - If the Profile.EQUIVALENT_PROPERTY() property is not supported in the current language profile.
    • setInverseOf

      void setInverseOf(Property prop)

      Assert that this property is the inverse of the given property. Any existing statements for inverseOf will be removed.

      Parameters:
      prop - The property that this property is a inverse to.
      Throws:
      ProfileException - If the Profile.INVERSE_OF() property is not supported in the current language profile.
    • addInverseOf

      void addInverseOf(Property prop)

      Add a property that this property is the inverse of.

      Parameters:
      prop - A property that is the inverse of this property.
      Throws:
      ProfileException - If the Profile.INVERSE_OF() property is not supported in the current language profile.
    • getInverseOf

      OntProperty getInverseOf()

      Answer a property of which this property is the inverse, if known, or null if there is no such property. If there is more than one such property, an arbitrary selection is made.

      Note that this method is slightly different to getInverse(). See the Javadoc on getInverse() for a detailed explanation.

      Returns:
      A property which this property is the inverse of, or null.
      Throws:
      ProfileException - If the Profile.INVERSE_OF() property is not supported in the current language profile.
    • listInverseOf

      ExtendedIterator<? extends OntProperty> listInverseOf()

      Answer an iterator over all of the properties that this property is declared to be the inverse of. Each element of the iterator will be an OntProperty.

      Returns:
      An iterator over the properties inverse to this property.
      Throws:
      ProfileException - If the Profile.INVERSE_OF() property is not supported in the current language profile.
    • isInverseOf

      boolean isInverseOf(Property prop)

      Answer true if this property is the inverse of the given property.

      Parameters:
      prop - A property to test for
      Returns:
      True if the this property is the inverse of the the given property.
      Throws:
      ProfileException - If the Profile.INVERSE_OF() property is not supported in the current language profile.
    • removeInverseProperty

      void removeInverseProperty(Property prop)

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

      Parameters:
      prop - A property that may be declared to be inverse to this property
      Throws:
      ProfileException - If the Profile.INVERSE_OF() property is not supported in the current language profile.
    • asFunctionalProperty

      FunctionalProperty asFunctionalProperty()

      Answer a view of this property as a functional property

      Returns:
      This property, but viewed as a FunctionalProperty node
      Throws:
      ConversionException - if the resource cannot be converted to a functional property given the language profile and the current state of the underlying model.
    • asDatatypeProperty

      DatatypeProperty asDatatypeProperty()

      Answer a view of this property as a datatype property

      Specified by:
      asDatatypeProperty in interface OntResource
      Returns:
      This property, but viewed as a DatatypeProperty node
      Throws:
      ConversionException - if the resource cannot be converted to a datatype property given the language profile and the current state of the underlying model.
    • asObjectProperty

      ObjectProperty asObjectProperty()

      Answer a view of this property as an object property

      Specified by:
      asObjectProperty in interface OntResource
      Returns:
      This property, but viewed as an ObjectProperty node
      Throws:
      ConversionException - if the resource cannot be converted to an object property given the language profile and the current state of the underlying model.
    • asTransitiveProperty

      TransitiveProperty asTransitiveProperty()

      Answer a view of this property as a transitive property

      Returns:
      This property, but viewed as a TransitiveProperty node
      Throws:
      ConversionException - if the resource cannot be converted to a transitive property given the language profile and the current state of the underlying model.
    • asInverseFunctionalProperty

      InverseFunctionalProperty asInverseFunctionalProperty()

      Answer a view of this property as an inverse functional property

      Returns:
      This property, but viewed as an InverseFunctionalProperty node
      Throws:
      ConversionException - if the resource cannot be converted to an inverse functional property given the language profile and the current state of the underlying model.
    • asSymmetricProperty

      SymmetricProperty asSymmetricProperty()

      Answer a view of this property as a symmetric property

      Returns:
      This property, but viewed as a SymmetricProperty node
      Throws:
      ConversionException - if the resource cannot be converted to a symmetric property given the language profile and the current state of the underlying model.
    • convertToFunctionalProperty

      FunctionalProperty convertToFunctionalProperty()

      Answer a facet of this property as a functional property, adding additional information to the model if necessary.

      Returns:
      This property, but converted to a FunctionalProperty facet
    • convertToDatatypeProperty

      DatatypeProperty convertToDatatypeProperty()

      Answer a facet of this property as a datatype property, adding additional information to the model if necessary.

      Returns:
      This property, but converted to a DatatypeProperty facet
    • convertToObjectProperty

      ObjectProperty convertToObjectProperty()

      Answer a facet of this property as an object property, adding additional information to the model if necessary.

      Returns:
      This property, but converted to an ObjectProperty facet
    • convertToTransitiveProperty

      TransitiveProperty convertToTransitiveProperty()

      Answer a facet of this property as a transitive property, adding additional information to the model if necessary.

      Returns:
      This property, but converted to a TransitiveProperty facet
    • convertToInverseFunctionalProperty

      InverseFunctionalProperty convertToInverseFunctionalProperty()

      Answer a facet of this property as an inverse functional property, adding additional information to the model if necessary.

      Returns:
      This property, but converted to an InverseFunctionalProperty facet
    • convertToSymmetricProperty

      SymmetricProperty convertToSymmetricProperty()

      Answer a facet of this property as a symmetric property, adding additional information to the model if necessary.

      Returns:
      This property, but converted to a SymmetricProperty facet
    • isFunctionalProperty

      boolean isFunctionalProperty()

      Answer true if this property is a functional property

      Returns:
      True if this this property has an rdf:type that defines it as a functional property.
    • isDatatypeProperty

      boolean isDatatypeProperty()

      Answer true if this property is a datatype property

      Specified by:
      isDatatypeProperty in interface OntResource
      Returns:
      True if this this property has an rdf:type that defines it as a datatype property.
    • isObjectProperty

      boolean isObjectProperty()

      Answer true if this property is an object property

      Specified by:
      isObjectProperty in interface OntResource
      Returns:
      True if this this property has an rdf:type that defines it as an object property.
    • isTransitiveProperty

      boolean isTransitiveProperty()

      Answer true if this property is a transitive property

      Returns:
      True if this this property has an rdf:type that defines it as a transitive property.
    • isInverseFunctionalProperty

      boolean isInverseFunctionalProperty()

      Answer true if this property is an inverse functional property

      Returns:
      True if this this property has an rdf:type that defines it as an inverse functional property.
    • isSymmetricProperty

      boolean isSymmetricProperty()

      Answer true if this property is a symmetric property

      Returns:
      True if this this property has an rdf:type that defines it as a symmetric property.
    • getInverse

      OntProperty getInverse()

      Answer the property that has declared itself to be the inverse of this property, if any such property is defined. If no such property is defined, return null. If more than one inverse is defined, return an arbitrary selection.

      Note that this method is slightly different from getInverseOf(). Suppose that we have:

       :p an owl:ObjectProperty.
       :q an owl:ObjectProperty.
       :p owl:inverseOf :q.
       

      Then, getInverse() called on the OntProperty corresponding to q will return p, since q declares itself to be p's inverse. However, unless an OWL reasoner is used, calling getInverse() on p will return null. Conversely, absent a reasoner, getInverseOf() on p will return q, but will return null when called on q. In the presence of an OWL reasoner, getInverse() and getInverseOf() are equivalent, since owl:inverseOf is a symmetric property.

      Returns:
      The property that is the inverse of this property, or null.
    • listInverse

      ExtendedIterator<? extends OntProperty> listInverse()

      Answer an iterator over the properties that are defined to be inverses of this property.

      Returns:
      An iterator over the properties that declare themselves the inverseOf this property.
    • hasInverse

      boolean hasInverse()

      Answer true if there is at least one inverse property for this property.

      Returns:
      True if property has an inverse.
    • listDeclaringClasses

      ExtendedIterator<? extends OntClass> listDeclaringClasses()

      Answer an iterator of all of the classes in this ontology, such that each returned class has this property as one of its properties in OntClass.listDeclaredProperties(). This simulates a frame-like view of properties and classes; for more details see the RDF frames how-to.

      Returns:
      An iterator of the classes having this property as one of their declared properties
    • listDeclaringClasses

      ExtendedIterator<? extends OntClass> listDeclaringClasses(boolean direct)

      Answer an iterator of all of the classes in this ontology, such that each returned class has this property as one of its properties in OntClass.listDeclaredProperties(boolean). This simulates a frame-like view of properties and classes; for more details see the RDF frames how-to.

      Parameters:
      direct - If true, use only direct associations between classes and properties
      Returns:
      An iterator of the classes having this property as one of their declared properties
    • listReferringRestrictions

      ExtendedIterator<Restriction> listReferringRestrictions()

      Answer an iterator over any restrictions that mention this property as the property that the restriction is adding some constraint to. For example:

      <owl:Restriction>
           <owl:onProperty rdf:resource="#childOf" />
           <owl:hasValue rdf:resource="#ian" />
       </owl:Restriction>

      Note that any such restrictions do not affect the global semantics of this property itself. Restrictions define new class expressions, and the property constraints are local to that class expression. This method is provided as a convenience to assist callers to navigate the relationships in the model.

      Returns:
      An iterator whose values are the restrictions from the local model that reference this property.