owl:AnnotationProperty is an rdfs:subClassOf of rdf:Property

OWL has the notion of annotation properties  and ontology properties. These are needed in OWL DL for semantic reasons.

OWL Full does not put any constraints on annotations in an ontology. OWL DL allows annotations on classes, properties, individuals and ontology headers, but only under the following conditions:

Five annotation properties are predefined by OWL, namely:


    <rdfs:Class rdf:ID="AnnotationProperty">

        <rdfs:subClassOf rdf:resource="&rdf;Property"/>


Example listing


Annotation properties must have an explicit typing triple of the form:

  • AnnotationPropertyID   rdf:type   owl:AnnotationProperty


    Here is an example of legal use of an annotation property in OWL DL:

        <owl:AnnotationProperty rdf:about="&dc;creator"/>

        <owl:Class rdf:about="#MusicalWork">

            <rdfs:label>Musical work</rdfs:label>



    The example assumes &dc; and dc: point respectively to the Dublin Core URI and namespace. Thus, using Dublin Core properties as annotation properties in OWL DL requires an explicit typing triple. This ensures annotations are handled in a semantically correct fashion by OWL DL reasoners (see the OWL Semantics and Abstract Syntax document [OWL S&AS] for details).

    Other information

  • Once we define dc:creator as an annotation property, OWL DL does NOT allow property axioms such as the range constraint below:

    <-- This is illegal in OWL DL -->

        <owl:AnnotationProperty rdf:about="&dc;creator">

            <rdfs:range rdf:resource="&xsd;string"/>


    Note that one can still specify the value type of a literal in an annotation-property statement:

        <Opera rdf:about="#Tosca">

            <dc:creator rdf:datatype="&xsd;string">Giacomo Puccini</dc:creator>


    Use in ISO 15926

    Do not use