Interface OntAnnotationProperty

All Superinterfaces:
org.apache.jena.graph.FrontsNode, OntEntity, OntNamedProperty<OntAnnotationProperty>, OntObject, OntProperty, org.apache.jena.rdf.model.Property, org.apache.jena.rdf.model.RDFNode, org.apache.jena.rdf.model.Resource
All Known Implementing Classes:
OntAnnotationPropertyImpl

public interface OntAnnotationProperty extends OntProperty, OntNamedProperty<OntAnnotationProperty>
Interface encapsulating a {named} Annotation Property. This is an extension to the standard jena Property, the OWL Entity and the abstract property expression interfaces. In OWL2, an Annotation Property cannot be anonymous.
See Also:
  • Method Details

    • subProperties

      Stream<OntAnnotationProperty> subProperties(boolean direct)
      Answers a Stream over all the properties that are declared to be sub-properties of this property. Each element of the Stream will have the same type as this property instance: if it is datatype property the method will return only data properties, etc. The parameter direct controls selectivity over the properties that appear in the Stream. Consider the following scenario:
      
        :D rdfs:subPropertyOf :C .
        :C rdfs:subPropertyOf :A .
        :B rdfs:subPropertyOf :A .
       
      (so A has two sub-properties, B and C, and C has sub-property D) In a raw model, with no inference support, listing the sub-property of A will answer B and C. In an inferencing model, rdfs:subPropertyOf is known to be transitive, so the sub-properties iterator will include D. The direct sub-properties are those members of the closure of the subPropertyOf relation, restricted to properties that cannot be reached by a longer route, i.e., the ones that are directly adjacent to the given root. Thus, the direct sub-properties of A are B and C only, and not D - even in an inferencing graph. Note that this is different from the entailments from the raw graph. Suppose we add to this example:
      
         :D rdfs:subPropertyOf :A.
       
      Now, in the raw graph, A has sub-property C. But the direct sub-properties of A remain B and C, since there is a longer path A-C-D that means that D is not a direct sub-property of A. The assertion in the raw graph that A has sub-property D is essentially redundant, since this can be inferred from the closure of the graph.
      Specified by:
      subProperties in interface OntProperty
      Parameters:
      direct - boolean if true answers the directly adjacent properties in the sub-property relation: i.e. eliminate any properties for which there is a longer route to reach that parent under the super-property relation
      Returns:
      distinct Stream of annotation properties
      See Also:
    • superProperties

      Stream<OntAnnotationProperty> superProperties(boolean direct)
      Answers a Stream over all the properties that are declared to be super-properties of this property. Each element of the Stream will have the same type as this property instance: if it is datatype property the method will return only data properties, etc. The parameter direct controls selectivity over the properties that appear in the Stream. Consider the following scenario:
      
        :A rdfs:subPropertyOf :B .
        :A rdfs:subPropertyOf :C .
        :C rdfs:subPropertyOf :D .
        
      (so A has super-property B and C, and C has super-property D) In a raw model, with no inference support, listing the super-property of A will answer B and C. In an inferencing model, rdfs:subPropertyOf is known to be transitive, so the super-property iterator will include D. The direct super-properties are those members of the closure of the inverse-subPropertyOf relation, restricted to properties that cannot be reached by a longer route, i.e., the ones that are directly adjacent to the given root. Thus, the direct super-property of A are B and C only, and not D - even in an inferencing graph. Note that this is different from the entailments from the raw graph. Suppose we add to this example:
      
         :A rdfs:subPropertyOf :D .
       
      Now, in the raw graph, A has super-property B, C, D. But the direct super-property of A remain only B and C, since there is a longer path A-C-D that means that D is not a direct super-property of A. The assertion in the raw graph that A has super-property D is essentially redundant, since this can be inferred from the closure of the graph.
      Specified by:
      superProperties in interface OntProperty
      Parameters:
      direct - boolean: if true answers the directly adjacent properties in the super-property relation, i.e. eliminate any property for which there is a longer route to reach that parent under the super-property relation; if false answers all super-properties found by inferencer, which usually means entire hierarchy up the tree; this instance is not included
      Returns:
      distinct Stream of annotation properties
      See Also:
    • domains

      Stream<org.apache.jena.rdf.model.Resource> domains()
      Lists all valid annotation property domains in the form of java Stream.
      Specified by:
      domains in interface OntProperty
      Returns:
      Stream of uri-Resources
      See Also:
    • ranges

      Stream<org.apache.jena.rdf.model.Resource> ranges()
      Lists all valid annotation property ranges.
      Specified by:
      ranges in interface OntProperty
      Returns:
      Stream of uri-Resources
      See Also:
    • subProperties

      default Stream<OntAnnotationProperty> subProperties()
      Lists all the properties that are declared to be sub-properties of this property (directly or indirectly). Note: the return elements have the same type as this instance.

      Equivalent to this.subProperties(false).

      The pattern is Ai rdfs:subPropertyOf Aj, where Ai, Aj are annotation properties.

      Specified by:
      subProperties in interface OntProperty
      Returns:
      Stream of OntAnnotationPropertys
      See Also:
    • superProperties

      default Stream<OntAnnotationProperty> superProperties()
      Lists all the properties that are declared to be super-properties of this property (directly or indirectly). Note: the return elements have the same type as this instance.

      Equivalent to this.superProperties(false).

      The pattern is Ai rdfs:subPropertyOf Aj, where Ai, Aj are annotation properties.

      Specified by:
      superProperties in interface OntProperty
      Returns:
      Stream of OntAnnotationPropertys
      See Also:
    • addRange

      default OntAnnotationProperty addRange(org.apache.jena.rdf.model.Resource uri)
      Adds a statement with the RDFS.range as predicate and the specified uri as an object.
      Parameters:
      uri - a URI-Resource, not null
      Returns:
      this instance to allow cascading calls
      See Also:
    • addDomain

      default OntAnnotationProperty addDomain(org.apache.jena.rdf.model.Resource uri)
      Adds a statement with the RDFS.domain as predicate and the specified uri as an object.
      Parameters:
      uri - a URI-Resource, not null
      Returns:
      this instance to allow cascading calls
      See Also:
    • removeDomain

      default OntAnnotationProperty removeDomain(org.apache.jena.rdf.model.Resource domain)
      Removes the specified domain resource (predicate is rdfs:domain), including the corresponding statement's annotations. No-op in case no such domain is found. Removes all domains if null is specified.
      Specified by:
      removeDomain in interface OntProperty
      Parameters:
      domain - Resource, or null to remove all domains
      Returns:
      this instance to allow cascading calls
    • removeRange

      default OntAnnotationProperty removeRange(org.apache.jena.rdf.model.Resource range)
      Removes the specified range resource (predicate is rdfs:range), including the corresponding statement's annotations. No-op in case no such range is found. Removes all ranges if null is specified.
      Specified by:
      removeRange in interface OntProperty
      Parameters:
      range - Resource, or null to remove all ranges
      Returns:
      this instance to allow cascading calls
    • addSuperProperty

      default OntAnnotationProperty addSuperProperty(OntAnnotationProperty property)
      Adds the given property as super property returning this property itself.
      Parameters:
      property - OntAnnotationProperty, not null
      Returns:
      this instance to allow cascading calls
      See Also:
    • addSubProperty

      default OntAnnotationProperty addSubProperty(OntAnnotationProperty property)
      Adds the given property as sub property returning this property itself.
      Parameters:
      property - OntAnnotationProperty, not null
      Returns:
      this instance to allow cascading calls
      See Also:
    • removeSuperProperty

      default OntAnnotationProperty removeSuperProperty(org.apache.jena.rdf.model.Resource property)
      Removes the specified super property (predicate is rdfs:subPropertyOf), including the corresponding statement's annotations. No-op in case no such super-property is found. If null is specified, the method removes all triples with predicate rdfs:subPropertyOf and this property as a subject.
      Specified by:
      removeSuperProperty in interface OntProperty
      Parameters:
      property - Resource or null to remove all direct super properties
      Returns:
      this instance to allow cascading calls
    • removeSubProperty

      default OntAnnotationProperty removeSubProperty(org.apache.jena.rdf.model.Resource property)
      Removes the specified sub property (predicate is rdfs:subPropertyOf), including the corresponding statement's annotations. No-op in case no such super-property is found. If null is specified, the method removes all triples with predicate rdfs:subPropertyOf and this property as an object.
      Specified by:
      removeSubProperty in interface OntProperty
      Parameters:
      property - Resource or null to remove all direct super properties
      Returns:
      this instance to allow cascading calls
    • getModel

      OntModel getModel()
      Returns the ontology model associated with this resource. If the Resource was not created by a Model, the result may be null.
      Specified by:
      getModel in interface org.apache.jena.rdf.model.RDFNode
      Returns:
      OntModel
    • isLocal

      boolean isLocal()
      Determines if this Ontology Resource is locally defined. This means that the resource definition (i.e., a the root statement) belongs to the base ontology graph. If the ontology contains subgraphs (which should match owl:imports in OWL) and the resource is defined in one of them, than this method called from top-level interface will return false.
      Returns:
      true if this resource is local to the base model graph.
    • getAs

      default <X extends org.apache.jena.rdf.model.RDFNode> X getAs(Class<X> type)
      Safely converts this RDF resource to the given type interface, if it is possible. Otherwise, returns null. A calling of this method is effectively equivalent to the expression this.canAs(type) ? this.as(type) : null.
      Type Parameters:
      X - any subtype of RDFNode
      Parameters:
      type - a Class-type of the desired RDF view (interface)
      Returns:
      an instance of the type X or null
      See Also:
      • RDFNode.as(Class)
      • RDFNode.canAs(Class)