Class OntPropertyImpl

    • Field Detail

      • factory

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

      • OntPropertyImpl

        public OntPropertyImpl​(Node n,
                               EnhGraph g)

        Construct an ontology property 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 Detail

      • getOrdinal

        public int getOrdinal()
        Description copied from interface: Property
        Returns the ordinal value of a containment property.

        RDF containers use properties of the form _1, _2, _3 etc to represent the containment relationship between the container and the objects it contains. When invoked on such a containment property, this method returns the integer part of the property name. When invoked on other properties, it returns 0.

        Specified by:
        getOrdinal in interface Property
        Returns:
        The ordinal value of a containment property, or 0 otherwise.
        See Also:
        Property.getOrdinal()
      • setSuperProperty

        public void setSuperProperty​(Property prop)

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

        Specified by:
        setSuperProperty in interface OntProperty
        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.
      • getSuperProperty

        public 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.

        Specified by:
        getSuperProperty in interface OntProperty
        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

        public ExtendedIterator<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.

        Specified by:
        listSuperProperties in interface 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

        public boolean hasSuperProperty​(Property prop,
                                        boolean direct)

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

        Specified by:
        hasSuperProperty in interface OntProperty
        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.
      • removeSuperProperty

        public 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.

        Specified by:
        removeSuperProperty in interface OntProperty
        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

        public 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.

        Specified by:
        setSubProperty in interface OntProperty
        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.
      • getSubProperty

        public 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.

        Specified by:
        getSubProperty in interface OntProperty
        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

        public ExtendedIterator<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.

        Specified by:
        listSubProperties in interface OntProperty
        Parameters:
        direct - If true, only answer the direcly 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

        public boolean hasSubProperty​(Property prop,
                                      boolean direct)

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

        Specified by:
        hasSubProperty in interface OntProperty
        Parameters:
        prop - A property to test.
        direct - If true, only consider the direcly adjacent properties in the property hierarchy
        Returns:
        True if the given property is a sub-property of this property.
      • removeSubProperty

        public 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.

        Specified by:
        removeSubProperty in interface OntProperty
        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

        public 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.

        Specified by:
        setDomain in interface OntProperty
        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

        public void addDomain​(Resource res)

        Add a resource representing the domain of this property.

        Specified by:
        addDomain in interface OntProperty
        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

        public 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.

        Specified by:
        getDomain in interface OntProperty
        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.
      • hasDomain

        public boolean hasDomain​(Resource res)

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

        Specified by:
        hasDomain in interface OntProperty
        Parameters:
        res - A resource representing a class
        Returns:
        True if the given resource is one of the domain classes of this property.
      • removeDomain

        public 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.

        Specified by:
        removeDomain in interface OntProperty
        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

        public 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 removed.

        Specified by:
        setRange in interface OntProperty
        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

        public void addRange​(Resource res)

        Add a resource representing the range of this property.

        Specified by:
        addRange in interface OntProperty
        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

        public 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.

        Specified by:
        getRange in interface OntProperty
        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.
      • hasRange

        public boolean hasRange​(Resource res)

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

        Specified by:
        hasRange in interface OntProperty
        Parameters:
        res - A resource representing a class
        Returns:
        True if the given resource is one of the range classes of this property.
      • removeRange

        public 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.

        Specified by:
        removeRange in interface OntProperty
        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

        public void setEquivalentProperty​(Property prop)

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

        Specified by:
        setEquivalentProperty in interface OntProperty
        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.
      • hasEquivalentProperty

        public boolean hasEquivalentProperty​(Property prop)

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

        Specified by:
        hasEquivalentProperty in interface OntProperty
        Parameters:
        prop - A property to test for
        Returns:
        True if the given property is equivalent to this property.
      • removeEquivalentProperty

        public 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.

        Specified by:
        removeEquivalentProperty in interface OntProperty
        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

        public void setInverseOf​(Property prop)

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

        Specified by:
        setInverseOf in interface OntProperty
        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

        public void addInverseOf​(Property prop)

        Add a property that is the inverse of this property.

        Specified by:
        addInverseOf in interface OntProperty
        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

        public OntProperty getInverseOf()

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

        Specified by:
        getInverseOf in interface OntProperty
        Returns:
        A property inverse to this property
        Throws:
        ProfileException - If the Profile.INVERSE_OF() property is not supported in the current language profile.
      • isInverseOf

        public boolean isInverseOf​(Property prop)

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

        Specified by:
        isInverseOf in interface OntProperty
        Parameters:
        prop - A property to test for
        Returns:
        True if the this property is the inverse of the the given property.
      • removeInverseProperty

        public 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.

        Specified by:
        removeInverseProperty in interface OntProperty
        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

        public FunctionalProperty asFunctionalProperty()

        Answer a view of this property as a functional property

        Specified by:
        asFunctionalProperty in interface OntProperty
        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.
      • asTransitiveProperty

        public TransitiveProperty asTransitiveProperty()

        Answer a view of this property as a transitive property

        Specified by:
        asTransitiveProperty in interface OntProperty
        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

        public InverseFunctionalProperty asInverseFunctionalProperty()

        Answer a view of this property as an inverse functional property

        Specified by:
        asInverseFunctionalProperty in interface OntProperty
        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

        public SymmetricProperty asSymmetricProperty()

        Answer a view of this property as a symmetric property

        Specified by:
        asSymmetricProperty in interface OntProperty
        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

        public FunctionalProperty convertToFunctionalProperty()

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

        Specified by:
        convertToFunctionalProperty in interface OntProperty
        Returns:
        This property, but converted to a FunctionalProperty facet
      • convertToDatatypeProperty

        public DatatypeProperty convertToDatatypeProperty()

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

        Specified by:
        convertToDatatypeProperty in interface OntProperty
        Returns:
        This property, but converted to a DatatypeProperty facet
      • convertToObjectProperty

        public ObjectProperty convertToObjectProperty()

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

        Specified by:
        convertToObjectProperty in interface OntProperty
        Returns:
        This property, but converted to an ObjectProperty facet
      • convertToTransitiveProperty

        public TransitiveProperty convertToTransitiveProperty()

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

        Specified by:
        convertToTransitiveProperty in interface OntProperty
        Returns:
        This property, but converted to a TransitiveProperty facet
      • convertToInverseFunctionalProperty

        public InverseFunctionalProperty convertToInverseFunctionalProperty()

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

        Specified by:
        convertToInverseFunctionalProperty in interface OntProperty
        Returns:
        This property, but converted to an InverseFunctionalProperty facet
      • convertToSymmetricProperty

        public SymmetricProperty convertToSymmetricProperty()

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

        Specified by:
        convertToSymmetricProperty in interface OntProperty
        Returns:
        This property, but converted to a SymmetricProperty facet
      • isFunctionalProperty

        public boolean isFunctionalProperty()

        Answer true if this property is a functional property

        Specified by:
        isFunctionalProperty in interface OntProperty
        Returns:
        True if this this property has an rdf:type that defines it as a functional property.
      • isTransitiveProperty

        public boolean isTransitiveProperty()

        Answer true if this property is a transitive property

        Specified by:
        isTransitiveProperty in interface OntProperty
        Returns:
        True if this this property has an rdf:type that defines it as a transitive property.
      • isInverseFunctionalProperty

        public boolean isInverseFunctionalProperty()

        Answer true if this property is an inverse functional property

        Specified by:
        isInverseFunctionalProperty in interface OntProperty
        Returns:
        True if this this property has an rdf:type that defines it as an inverse functional property.
      • isSymmetricProperty

        public boolean isSymmetricProperty()

        Answer true if this property is a symmetric property

        Specified by:
        isSymmetricProperty in interface OntProperty
        Returns:
        True if this this property has an rdf:type that defines it as a symmetric property.
      • getInverse

        public OntProperty getInverse()

        Answer the property that is the inverse of this property. If no such property is defined, return null. If more than one inverse is defined, return an arbitrary selection.

        Specified by:
        getInverse in interface OntProperty
        Returns:
        The property that is the inverse of this property, or null.
      • listInverse

        public ExtendedIterator<OntProperty> listInverse()

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

        Specified by:
        listInverse in interface OntProperty
        Returns:
        An iterator over the properties that declare themselves the inverseOf this property.
      • hasInverse

        public boolean hasInverse()

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

        Specified by:
        hasInverse in interface OntProperty
        Returns:
        True if property has an inverse.
      • listDeclaringClasses

        public ExtendedIterator<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 howto.

        Specified by:
        listDeclaringClasses in interface OntProperty
        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

        public 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.

        Specified by:
        listReferringRestrictions in interface OntProperty
        Returns:
        An iterator whose values are the restrictions from the local model that reference this property.
      • inModel

        public Property inModel​(Model m)

        Answer a property that is attached to the given model, which will either be this property or a new property object with the same URI in the given model. If the given model is an ontology model, make the new property object an ontproperty.

        Specified by:
        inModel in interface Property
        Specified by:
        inModel in interface RDFNode
        Specified by:
        inModel in interface Resource
        Overrides:
        inModel in class ResourceImpl
        Parameters:
        m - A model
        Returns:
        A property equal to this property that is attached to m.