<?xml version="1.0"?>
<!--

Open Annotation Data Model 0.9.20130208
http://www.w3.org/ns/oa

Copyright © 2012-2013 the Contributors to the Open Annotation Core Data Model
Specification, published by the Open Annotation Community Group under the W3C
Community Contributor License Agreement (CLA). A human-readable summary is
available.      

http://www.w3.org/community/about/agreements/cla/

-->

<!DOCTYPE rdf:RDF [
    <!ENTITY oa "http://www.w3.org/ns/oa#" >
    <!ENTITY dcterms "http://purl.org/dc/terms/" >
    <!ENTITY prov "http://www.w3.org/ns/prov#" >
    <!ENTITY foaf "http://xmlns.com/foaf/0.1/" >
    <!ENTITY dctypes "http://purl.org/dc/dcmitype/" >
    <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
    <!ENTITY cnt "http://www.w3.org/2011/content#" >
    <!ENTITY dc "http://purl.org/dc/elements/1.1/" >
    <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
    <!ENTITY skos "http://www.w3.org/2004/02/skos/core#" >
    <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
    <!ENTITY trig "http://www.w3.org/2004/03/trix/rdfg-1/" >
    <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
]>


<rdf:RDF xmlns="http://www.w3.org/ns/oa"
     xml:base="http://www.w3.org/ns/oa"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:trig="http://www.w3.org/2004/03/trix/rdfg-1/"
     xmlns:prov="http://www.w3.org/ns/prov#"
     xmlns:foaf="http://xmlns.com/foaf/0.1/"
     xmlns:cnt="http://www.w3.org/2011/content#"
     xmlns:dcterms="http://purl.org/dc/terms/"
     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
     xmlns:oa="http://www.w3.org/ns/oa#"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
     xmlns:owl="http://www.w3.org/2002/07/owl#"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:dctypes="http://purl.org/dc/dcmitype/"
     xmlns:skos="http://www.w3.org/2004/02/skos/core#">
    <owl:Ontology rdf:about="http://www.w3.org/ns/oa#">
        <dcterms:modified rdf:datatype="&xsd;dateTime">2013-02-22T21:40:51+01:00</dcterms:modified>
        <owl:versionInfo>0.9.20130208</owl:versionInfo>
        <dc:title xml:lang="en">Open Annotation Data Model</dc:title>
        <dc:creator xml:lang="en">Robert Sanderson</dc:creator>
        <dc:creator xml:lang="it">Paolo Ciccarese</dc:creator>
        <dc:creator xml:lang="vls">Herbert Van de Sompel</dc:creator>
        <dc:contributor xml:lang="en">Stian Soiland-Reyes</dc:contributor>
        <rdfs:comment xml:lang="en">The Open Annotation Core Data Model specifies an interoperable framework for creating associations between related resources, annotations, using a methodology that conforms to the Architecture of the World Wide Web.

This ontology is a non-normative OWL formalization of the textual OA specification at http://www.openannotation.org/spec/core/20130208/index.html

Note that OWL imports are disabled in the published version in order to reduce external implications, improve OWL 2 Profile conformity and increase interoperability. Some OWL tools might thus misleadingly show this ontology as (re)defining properties like skos:prefLabel.</rdfs:comment>
        <dc:description xml:lang="en">The Open Annotation Core Data Model specifies an interoperable framework for creating associations between related resources, annotations, using a methodology that conforms to the Architecture of the World Wide Web. Open Annotations can easily be shared between platforms, with sufficient richness of expression to satisfy complex requirements while remaining simple enough to also allow for the most common use cases, such as attaching a piece of text to a single web resource.

An Annotation is considered to be a set of connected resources, typically including a body and target, where the body is somehow about the target. The full model supports additional functionality, enabling semantic annotations, embedding content, selecting segments of resources, choosing the appropriate representation of a resource and providing styling hints for consuming clients.</dc:description>
        <rdfs:seeAlso rdf:resource="http://www.openannotation.org/spec/core/20130208/index.html"/>
        <owl:versionIRI rdf:resource="http://www.openannotation.org/spec/core/20130208/oa.owl"/>
        <!-- Disabled to reduce implications from external ontologies
        <owl:imports rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
        <owl:imports rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/>
        <owl:imports rdf:resource="http://www.w3.org/2004/02/skos/core"/>
        <owl:imports rdf:resource="http://www.w3.org/ns/prov-o#"/>
        -->
    </owl:Ontology>
    
    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Object Properties
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->

    


    <!-- http://www.w3.org/ns/oa#annotatedBy -->

    <owl:ObjectProperty rdf:about="&oa;annotatedBy">
        <rdfs:label xml:lang="en">annotatedBy</rdfs:label>
        <rdfs:comment xml:lang="en">The object of the relationship is a resource that identifies the agent responsible for creating the Annotation. This may be either a human or software agent. 

There SHOULD be exactly 1 oa:annotatedBy relationship per Annotation, but MAY be 0 or more than 1, as the Annotation may be anonymous, or multiple agents may have worked together on it.

It is RECOMMENDED to use these and other FOAF terms to describe agents: foaf:Person, prov:SoftwareAgent, foaf:Organization, foaf:name, foaf:mbox, foaf:openid, foaf:homepage</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
        <rdfs:domain rdf:resource="&oa;Annotation"/>
        <rdfs:subPropertyOf rdf:resource="&prov;wasAttributedTo"/>
    </owl:ObjectProperty>
    


    <!-- http://www.w3.org/ns/oa#cachedSource -->

    <owl:ObjectProperty rdf:about="&oa;cachedSource">
        <rdfs:label xml:lang="en">cachedSource</rdfs:label>
        <rdfs:comment xml:lang="en">A link to a copy of the Source resource&apos;s representation appropriate for the Annotation, typically a copy of the original at the time that the Annotation was created</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
        <rdfs:domain rdf:resource="&oa;TimeState"/>
    </owl:ObjectProperty>
    


    <!-- http://www.w3.org/ns/oa#default -->

    <owl:ObjectProperty rdf:about="&oa;default">
        <rdfs:label xml:lang="en">default</rdfs:label>
        <rdfs:comment xml:lang="en">The constituent resource of a oa:Choice to use as a default option, if there is no other means to determine which would be most appropriate.

There SHOULD be exactly 1 default relationship for each Choice.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
        <rdfs:domain rdf:resource="&oa;Choice"/>
        <rdfs:subPropertyOf rdf:resource="&oa;item"/>
    </owl:ObjectProperty>
    


    <!-- http://www.w3.org/ns/oa#equivalentTo -->

    <owl:ObjectProperty rdf:about="&oa;equivalentTo">
        <rdfs:label xml:lang="en">equivalentTo</rdfs:label>
        <rdfs:comment xml:lang="en">The subject and object resources of the oa:equivalentTo relationship represent the same resource, but potentially have different metadata such as oa:serializedBy, oa:serializedAt and serialization format.  oa:equivalentTo is a symmetrical and transitive relationship; if A oa:equivalentTo B, then it is also true that B oa:equivalent A; and that if B oa:equivalentTo C, then it is also true that A oa:equivalentTo C. 

The Annotation MAY include 0 or more instances of the oa:equivalentTo relationship between copies of the Annotation or other resources, and SHOULD include as many as are available.

If a system publishes an embedded resource (a cnt:Content) at a new HTTP URI, then it SHOULD express the oa:equivalentTo relationship between the resource&apos;s URN and the new URI from which it is available.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
        <rdfs:subPropertyOf rdf:resource="&prov;alternateOf"/>
    </owl:ObjectProperty>
    


    <!-- http://www.w3.org/ns/oa#hasBody -->

    <owl:ObjectProperty rdf:about="&oa;hasBody">
        <rdfs:label xml:lang="en">hasBody</rdfs:label>
        <rdfs:comment xml:lang="en">The relationship between oa:Annotation and body. The body is somehow &quot;about&quot; the oa:hasTarget of the annotation.

The Body may be of any media type, and contain any type of content. The Body SHOULD be identified by HTTP URIs unless they are embedded within the Annotation.

Embedded bodies SHOULD be instances of cnt:ContentAsText and embed their content with cnt:chars. They SHOULD declare their media type with dc:format, and MAY indicate their language using dc:language and a RFC-3066 language tag. 

There is no OA class provided for &quot;Body&quot; as a body might be a target of a different annotation. However, there SHOULD be 1 or more content-based classes associated with the body resources of an Annotation, and the dctypes: vocabulary is recommended for this purpose, for instance dctypes:Text to declare textual content.
</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
        <rdfs:domain rdf:resource="&oa;Annotation"/>
    </owl:ObjectProperty>
    


    <!-- http://www.w3.org/ns/oa#hasScope -->

    <owl:ObjectProperty rdf:about="&oa;hasScope">
        <rdfs:label xml:lang="en">hasScope</rdfs:label>
        <rdfs:comment xml:lang="en">The relationship between a Specific Resource and the resource that provides the scope or context for it in this Annotation.

There MAY be 0 or more hasScope relationships for each Specific Resource.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
        <rdfs:domain rdf:resource="&oa;SpecificResource"/>
    </owl:ObjectProperty>
    


    <!-- http://www.w3.org/ns/oa#hasSelector -->

    <owl:ObjectProperty rdf:about="&oa;hasSelector">
        <rdfs:label xml:lang="en">hasSelector</rdfs:label>
        <rdfs:comment xml:lang="en">The relationship between a oa:SpecificResource and a oa:Selector.

There MUST be exactly 0 or 1 oa:hasSelector relationship associated with a 
Specific Resource. 

If multiple Selectors are required, either to express a choice between different optional, equivalent selectors, or a chain of selectors that should all be processed, it is necessary to use oa:Choice, oa:Composite or oa:List as a selector.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
        <rdfs:range rdf:resource="&oa;Selector"/>
        <rdfs:domain rdf:resource="&oa;SpecificResource"/>
    </owl:ObjectProperty>
    


    <!-- http://www.w3.org/ns/oa#hasSource -->

    <owl:ObjectProperty rdf:about="&oa;hasSource">
        <rdfs:label xml:lang="en">hasSource</rdfs:label>
        <rdfs:comment xml:lang="en">The relationship between a oa:SpecificResource and the resource that it is a more specific representation of. 

There MUST be exactly 1 oa:hasSource relationship associated with a Specific Resource.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
        <rdfs:domain rdf:resource="&oa;SpecificResource"/>
    </owl:ObjectProperty>
    


    <!-- http://www.w3.org/ns/oa#hasState -->

    <owl:ObjectProperty rdf:about="&oa;hasState">
        <rdfs:label xml:lang="en">hasState</rdfs:label>
        <rdfs:comment xml:lang="en">The relationship between a oa:SpecificResource and a oa:State resource.

There MAY be 0 or 1 oa:hasState relationship for each SpecificResource.

If there are multiple State resources that must be associated with the specific resource, then the use of the Multiplicity Constructs oa:Choice, oa:Composite or oa:List is RECOMMENDED.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
        <rdfs:domain rdf:resource="&oa;SpecificResource"/>
        <rdfs:range rdf:resource="&oa;State"/>
    </owl:ObjectProperty>
    


    <!-- http://www.w3.org/ns/oa#hasTarget -->

    <owl:ObjectProperty rdf:about="&oa;hasTarget">
        <rdfs:label xml:lang="en">hasTarget</rdfs:label>
        <rdfs:comment xml:lang="en">The relationship between oa:Annotation and target. The target resource is what the oa:hasBody is somewhat &quot;about&quot;.

The target may be of any media type, and contain any type of content. The target SHOULD be identified by HTTP URIs unless they are embedded within the Annotation.

Embedded targets SHOULD be instances of cnt:ContentAsText and embed their content with cnt:chars. They SHOULD declare their media type with dc:format, and MAY indicate their language using dc:language and a RFC-3066 language tag. 

There is no OA class provided for &quot;Target&quot; as a target might be a body in a different annotation. However, there SHOULD be 1 or more content-based classes associated with the target resources of an Annotation, and the dctypes: vocabulary is recommended for this purpose, for instance dctypes:Text to declare textual content.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
        <rdfs:domain rdf:resource="&oa;Annotation"/>
    </owl:ObjectProperty>
    


    <!-- http://www.w3.org/ns/oa#item -->

    <owl:ObjectProperty rdf:about="&oa;item">
        <rdfs:label xml:lang="en">item</rdfs:label>
        <rdfs:comment xml:lang="en">The relationship between a multiplicity construct node and its constituent resources.

There MUST be 1 or more item relationships for each multiplicity construct oa:Choice, oa:Composite and oa:List.</rdfs:comment>
        <rdfs:subPropertyOf rdf:resource="&rdfs;member"/>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
    </owl:ObjectProperty>
    


    <!-- http://www.w3.org/ns/oa#motivatedBy -->

    <owl:ObjectProperty rdf:about="&oa;motivatedBy">
        <rdfs:label xml:lang="en">motivatedBy</rdfs:label>
        <rdfs:comment xml:lang="en">The relationship between an Annotation and a Motivation, indicating the reasons why the Annotation was created.

Each Annotation SHOULD have at least one oa:motivatedBy relationship, and MAY be more than 1.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
        <rdfs:domain rdf:resource="&oa;Annotation"/>
        <rdfs:range rdf:resource="&oa;Motivation"/>
    </owl:ObjectProperty>
    


    <!-- http://www.w3.org/ns/oa#serializedBy -->

    <owl:ObjectProperty rdf:about="&oa;serializedBy">
        <rdfs:label xml:lang="en">serializedBy</rdfs:label>
        <rdfs:comment xml:lang="en">The object of the relationship is the agent, likely software, responsible for generating the serialization of the Annotation&apos;s serialization. 

It is RECOMMENDED to use these and other FOAF terms to describe agents: foaf:Person, prov:SoftwareAgent, foaf:Organization, foaf:name, foaf:mbox, foaf:openid, foaf:homepage

There MAY be 0 or more oa:serializedBy relationships per Annotation.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
        <rdfs:domain rdf:resource="&oa;Annotation"/>
        <rdfs:subPropertyOf rdf:resource="&prov;wasAttributedTo"/>
    </owl:ObjectProperty>
    


    <!-- http://www.w3.org/ns/oa#styledBy -->

    <owl:ObjectProperty rdf:about="&oa;styledBy">
        <rdfs:label xml:lang="en">styledBy</rdfs:label>
        <rdfs:comment xml:lang="en">The relationship between a oa:Annotation and a oa:Style.

There MAY be 0 or 1 styledBy relationships for each Annotation.

If there are multiple Style resources that must be associated with the Annotation, then the use of the Multiplicity Constructs oa:Choice, oa:Composite or oa:List is RECOMMENDED.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
        <rdfs:domain rdf:resource="&oa;Annotation"/>
        <rdfs:range rdf:resource="&oa;Style"/>
    </owl:ObjectProperty>
    


    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Data properties
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->

    


    <!-- http://www.w3.org/ns/oa#annotatedAt -->

    <owl:DatatypeProperty rdf:about="&oa;annotatedAt">
        <rdfs:label xml:lang="en">annotatedAt</rdfs:label>
        <rdfs:comment xml:lang="en">The time at which the Annotation was created. 

There SHOULD be exactly 1 oa:annotatedAt property per Annotation, and MUST NOT be more than 1. The datetime MUST be expressed in the xsd:dateTime format, and SHOULD have a timezone specified.</rdfs:comment>
        <rdfs:range rdf:resource="&xsd;dateTimeStamp"/>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
        <rdfs:domain rdf:resource="&oa;Annotation"/>
    </owl:DatatypeProperty>
    


    <!-- http://www.w3.org/ns/oa#end -->

    <owl:DatatypeProperty rdf:about="&oa;end">
        <rdfs:label xml:lang="en">end</rdfs:label>
        <rdfs:comment xml:lang="en">The end position of the segment of text or bytes. The first character/byte in the full text/stream is position 0. The character/byte indicated at position oa:end is NOT included within the selected segment. 

See oa:DataPositionSelector and oa:oa:TextPositionSelector.</rdfs:comment>
        <rdfs:range rdf:resource="&xsd;nonNegativeInteger"/>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
        <rdfs:domain rdf:resource="&oa;Selector"/>
    </owl:DatatypeProperty>
    


    <!-- http://www.w3.org/ns/oa#exact -->

    <owl:DatatypeProperty rdf:about="&oa;exact">
        <rdfs:label xml:lang="en">exact</rdfs:label>
        <rdfs:comment xml:lang="en">A copy of the text which is being selected, after normalization.

See oa:TextQuoteSelector.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
        <rdfs:domain rdf:resource="&oa;Selector"/>
    </owl:DatatypeProperty>
    


    <!-- http://www.w3.org/ns/oa#prefix -->

    <owl:DatatypeProperty rdf:about="&oa;prefix">
        <rdfs:label xml:lang="en">prefix</rdfs:label>
        <rdfs:comment xml:lang="en">A snippet of text that occurs immediately before the text which is being selected.

See oa:TextQuoteSelector.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
        <rdfs:domain rdf:resource="&oa;Selector"/>
    </owl:DatatypeProperty>
    


    <!-- http://www.w3.org/ns/oa#serializedAt -->

    <owl:DatatypeProperty rdf:about="&oa;serializedAt">
        <rdfs:label xml:lang="en">serializedAt</rdfs:label>
        <rdfs:comment xml:lang="en">The time at which the agent referenced by oa:serializedBy generated the first serialization of the Annotation, and any subsequent substantially different one. The annotation graph MUST have changed for this property to be updated, and as such represents the last modified datestamp for the Annotation. This might be used to determine if it should be re-imported into a triplestore when discovered. 

There MAY be exactly 1 oa:serializedAt property per Annotation, and MUST NOT be more than 1. The datetime MUST be expressed in the xsd:dateTime format, and SHOULD have a timezone specified.
</rdfs:comment>
        <rdfs:range rdf:resource="&xsd;dateTimeStamp"/>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
        <rdfs:domain rdf:resource="&oa;Annotation"/>
    </owl:DatatypeProperty>
    


    <!-- http://www.w3.org/ns/oa#start -->

    <owl:DatatypeProperty rdf:about="&oa;start">
        <rdfs:label xml:lang="en">start</rdfs:label>
        <rdfs:comment xml:lang="en">The starting position of the segment of text or bytes. The first character/byte in the full text/stream is position 0. The character/byte indicated at position oa:start is included within the selected segment. 

See oa:DataPositionSelector and oa:TextPositionSelector.</rdfs:comment>
        <rdfs:range rdf:resource="&xsd;nonNegativeInteger"/>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
        <rdfs:domain rdf:resource="&oa;Selector"/>
    </owl:DatatypeProperty>
    


    <!-- http://www.w3.org/ns/oa#styleClass -->

    <owl:DatatypeProperty rdf:about="&oa;styleClass">
        <rdfs:label xml:lang="en">annotatedAt</rdfs:label>
        <rdfs:comment xml:lang="en">The string name of the class used in the CSS description that should be applied to the Specific Resource.

There MAY be 0 or more styleClass properties on a Specific Resource.

See oa:CssStyle.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
        <rdfs:domain rdf:resource="&oa;SpecificResource"/>
    </owl:DatatypeProperty>
    


    <!-- http://www.w3.org/ns/oa#suffix -->

    <owl:DatatypeProperty rdf:about="&oa;suffix">
        <rdfs:label xml:lang="en">suffix</rdfs:label>
        <rdfs:comment xml:lang="en">The snippet of text that occurs immediately after the text which is being selected. 

See oa:TextQuoteSelector.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
        <rdfs:domain rdf:resource="&oa;Selector"/>
    </owl:DatatypeProperty>
    


    <!-- http://www.w3.org/ns/oa#when -->

    <owl:DatatypeProperty rdf:about="&oa;when">
        <rdfs:label xml:lang="en">when</rdfs:label>
        <rdfs:comment xml:lang="en">The timestamp at which the Source resource should be interpreted for the Annotation, typically the time that the Annotation was created.</rdfs:comment>
        <rdfs:range rdf:resource="&xsd;dateTimeStamp"/>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
        <rdfs:domain rdf:resource="&oa;TimeState"/>
    </owl:DatatypeProperty>
    


    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Classes
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->

    


    <!-- http://www.w3.org/ns/oa#Annotation -->

    <owl:Class rdf:about="&oa;Annotation">
        <rdfs:label xml:lang="en">Annotation</rdfs:label>
        <rdfs:comment xml:lang="en">Typically an Annotation has a single Body (oa:hasBody), which is the comment or other descriptive resource, and a single Target (oa:hasTarget) that the Body is somehow &quot;about&quot;. The Body provides the information which is annotating the Target. 

This &quot;aboutness&quot; may be further clarified or extended to notions such as classifying or identifying with oa:motivatedBy.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
    </owl:Class>
    


    <!-- http://www.w3.org/ns/oa#Choice -->

    <owl:Class rdf:about="&oa;Choice">
        <rdfs:label xml:lang="en">Choice</rdfs:label>
        <rdfs:subClassOf rdf:resource="&rdf;Alt"/>
        <rdfs:comment xml:lang="en">A multiplicity construct that conveys to a consuming application that it should select one of the constituent resources to display to the user, and not render/use all of them. 

oa:Choice can be used as the object of the object of the oa:hasBody, oa:hasTarget, oa:hasSelector, oa:hasState, oa:styledBy and oa:hasScope relationships, 

There MUST be 1 or more oa:item relationships for each oa:Choice.

There SHOULD be exactly 1 default relationship for each Choice.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
    </owl:Class>
    


    <!-- http://www.w3.org/ns/oa#Composite -->

    <owl:Class rdf:about="&oa;Composite">
        <rdfs:label>Composite</rdfs:label>
        <rdfs:subClassOf rdf:resource="&rdf;Bag"/>
        <rdfs:comment xml:lang="en">A multiplicity construct that conveys to a consuming application that all of the constituent resources are required for the Annotation to be correctly interpreted. 

oa:Composite can be used as the object of the object of the oa:hasBody, oa:hasTarget, oa:hasSelector, oa:hasState, oa:styledBy and oa:hasScope relationships, 

There MUST be 2 or more oa:item relationships for each oa:Composite.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
    </owl:Class>
    


    <!-- http://www.w3.org/ns/oa#CssStyle -->

    <owl:Class rdf:about="&oa;CssStyle">
        <rdfs:label xml:lang="en">CssStyle</rdfs:label>
        <rdfs:subClassOf rdf:resource="&oa;Style"/>
        <rdfs:comment xml:lang="en">A resource which describes styles for resources participating in the Annotation using CSS.

Specific Resources MAY be assigned a CSS style class using oa:styleClass.

The CSS resource MAY have its own dereferencable URI that provides the information. For example, &quot;Style1&quot; in the diagram below might actually have the URI &quot;http://www.example.com/styles/annotations.css&quot;. It MAY be embedded within the Annotation using the inline constructions described in Embedding Resources.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
    </owl:Class>
    


    <!-- http://www.w3.org/ns/oa#DataPositionSelector -->

    <owl:Class rdf:about="&oa;DataPositionSelector">
        <rdfs:label xml:lang="en">DataPositionSelector</rdfs:label>
        <rdfs:subClassOf rdf:resource="&oa;Selector"/>
        <rdfs:comment xml:lang="en">A Selector which describes a range of data based on its start and end positions within the byte stream of the representation.

Each DataPositionSelector MUST have exactly 1 oa:start property.

Each TextPositionSelector MUST have exactly 1 oa:end property.

See oa:TextPositionSelector for selection at normalized character level rather than bytestream level.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
    </owl:Class>
    


    <!-- http://www.w3.org/ns/oa#FragmentSelector -->

    <owl:Class rdf:about="&oa;FragmentSelector">
        <rdfs:label xml:lang="en">FragmentSelector</rdfs:label>
        <rdfs:subClassOf rdf:resource="&oa;Selector"/>
        <rdfs:comment xml:lang="en">A Selector which describes the segment of interest in a representation, through the use of the fragment identifier component of a URI.

It is RECOMMENDED to use oa:FragmentSelector as the selector on a Specific Resource rather than annotating the fragment URI directly, in order to improve discoverability of annotation on the Source.

The oa:FragmentSelector MUST have exactly 1 rdf:value property, containing the fragment identifier component of a URI that describes the segment of interest in the resource, excluding the initial &quot;#&quot;.

The Fragment Selector SHOULD have a dcterms:conformsTo relationship with the object being the specification that defines the syntax of the fragment, for instance &lt;http://tools.ietf.org/rfc/rfc3236&gt; for HTML fragments. </rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
    </owl:Class>
    


    <!-- http://www.w3.org/ns/oa#HttpRequestState -->

    <owl:Class rdf:about="&oa;HttpRequestState">
        <rdfs:label xml:lang="en">HttpRequestState</rdfs:label>
        <rdfs:subClassOf rdf:resource="&oa;State"/>
        <rdfs:comment xml:lang="en">A resource which describes how to retrieve an appropriate representation of the Source resource for the Annotation, based on the HTTP Request headers to send to the server.

There MUST be exactly 1 rdf:value property per HttpRequestState, containing HTTP request headers as a single, complete string, exactly as they would appear in an HTTP request. </rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
    </owl:Class>
    


    <!-- http://www.w3.org/ns/oa#List -->

    <owl:Class rdf:about="&oa;List">
        <rdfs:label xml:lang="en">List</rdfs:label>
        <rdfs:subClassOf rdf:resource="&oa;Composite"/>
        <rdfs:comment xml:lang="en">A multiplicity construct that conveys to a consuming application that all of the constituent resources are required for the Annotation to be correctly interpreted, and in a particular order. 

oa:List can be used as the object of the object of the oa:hasBody, oa:hasTarget, oa:hasSelector, oa:hasState, oa:styledBy and oa:hasScope relationships, 

There MUST be 2 or more oa:item relationships for each oa:List, with their order defined using the rdf:List construct of rdf:first/rdf:rest/rdf:nil.

All the elements of the list should also be declared using oa:item, and each of the oa:items should appear at least once in the list.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
    </owl:Class>
    


    <!-- http://www.w3.org/ns/oa#Motivation -->

    <owl:Class rdf:about="&oa;Motivation">
        <rdfs:label xml:lang="en">Motivation</rdfs:label>
        <rdfs:subClassOf rdf:resource="&skos;Concept"/>
        <rdfs:comment xml:lang="en">The Motivation for creating an Annotation, indicated with oa:motivatedBy, is a reason for its creation, and might include things like oa:replying to another annotation, oa:commenting on a resource, or oa:linking to a related resource.

Each Annotation SHOULD have at least one oa:motivatedBy relationship to an instance of oa:Motivation, which is a subClass of skos:Concept.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
    </owl:Class>
    


    <!-- http://www.w3.org/ns/oa#Selector -->

    <owl:Class rdf:about="&oa;Selector">
        <rdfs:label xml:lang="en">Selector</rdfs:label>
        <rdfs:comment xml:lang="en">A resource which describes the segment of interest in a representation of a Source resource, indicated with oa:hasSelector from the Specific Resource. 

This class is not used directly in Annotations, only its subclasses are.

The nature of the Selector will be dependent on the type of the representation for which the segment is conveyed. The specific type of selector should be indicated using a subclass of oa:Selector.

The Specifier&apos;s description MAY be conveyed as an external or embedded resource (cnt:Content), or as RDF properties within the graph. The description SHOULD use existing standards whenever possible. If the Specifier has an HTTP URI, then its description, and only its description, MUST be returned when the URI is dereferenced.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
    </owl:Class>
    


    <!-- http://www.w3.org/ns/oa#SemanticTag -->

    <owl:Class rdf:about="&oa;SemanticTag">
        <rdfs:label xml:lang="en">SemanticTag</rdfs:label>
        <rdfs:subClassOf rdf:resource="&oa;Tag"/>
        <rdfs:comment xml:lang="en">A class assigned to the Body when it is a semantic tagging resource; a URI that identifies a concept, rather than an embedded string, frequently a term from a controlled vocabulary.

It is NOT RECOMMENDED to use the URI of a document as a Semantic Tag, as it might also be used as a regular Body in other Annotations which would inherit the oa:SemanticTag class assignment. Instead it is more appropriate to create a new URI and link it to the document, using the foaf:page predicate.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
    </owl:Class>
    


    <!-- http://www.w3.org/ns/oa#SpecificResource -->

    <owl:Class rdf:about="&oa;SpecificResource">
        <rdfs:label xml:lang="en">SpecificResource</rdfs:label>
        <rdfs:comment xml:lang="en">A resource identifies part of another Source resource, a particular representation of a resource, a resource with styling hints for renders, or any combination of these. 

The Specific Resource takes the role of oa:hasBody or oa:hasTarget in an oa:Annotation instead of the Source resource.

There MUST be exactly 1 oa:hasSource relationship associated with a Specific Resource.

There MUST be exactly 0 or 1 oa:hasSelector relationship associated with a Specific Resource.

There MAY be 0 or 1 oa:hasState relationship for each Specific Resource.

If the Specific Resource has an HTTP URI, then the exact segment of the Source resource that it identifies, and only the segment, MUST be returned when the URI is dereferenced. For example, if the segment of interest is a region of an image and the Specific Resource has an HTTP URI, then dereferencing it MUST return the selected region of the image as it was at the time when the annotation was created. Typically this would be a burden to support, and thus the Specific Resource SHOULD be identified by a globally unique URI, such as a UUID URN. If it is not considered important to allow other Annotations or systems to refer to the Specific Resource, then a blank node MAY be used instead.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
    </owl:Class>
    


    <!-- http://www.w3.org/ns/oa#State -->

    <owl:Class rdf:about="&oa;State">
        <rdfs:label xml:lang="en">State</rdfs:label>
        <rdfs:comment xml:lang="en">A resource which describes how to retrieve an appropriate representation of the Source resource, indicated with oa:hasState from the Specific Resource.

This class is not used directly in Annotations, only its subclasses are.

The Specifier&apos;s description MAY be conveyed as an external or embedded resource (cnt:Content), or as RDF properties within the graph. The description SHOULD use existing standards whenever possible. If the Specifier has an HTTP URI, then its description, and only its description, MUST be returned when the URI is dereferenced.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
    </owl:Class>
    


    <!-- http://www.w3.org/ns/oa#Style -->

    <owl:Class rdf:about="&oa;Style">
        <rdfs:label xml:lang="en">Style</rdfs:label>
        <rdfs:comment xml:lang="en">A resource which describes the style in which the selection or resource should be rendered, indicated with oa:styledBy from an oa:Annotation.

This class is not used directly in Annotations, only its subclasses are.

The content of the resource provides the rendering hints about the Annotation&apos;s constituent resources. 

The Specifier&apos;s description MAY be conveyed as an external or embedded resource (cnt:Content), or as RDF properties within the graph. The description SHOULD use existing standards whenever possible. If the Specifier has an HTTP URI, then its description, and only its description, MUST be returned when the URI is dereferenced.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
    </owl:Class>
    


    <!-- http://www.w3.org/ns/oa#SvgSelector -->

    <owl:Class rdf:about="&oa;SvgSelector">
        <rdfs:label xml:lang="en">SvgSelector</rdfs:label>
        <rdfs:subClassOf rdf:resource="&oa;Selector"/>
        <rdfs:comment xml:lang="en">A Selector which selects an area specified as an SVG shape.

The SVG document should either be retrievable by resolving the URI of this resource, or be included as an Embedded Resource using cnt:Content.

It is RECOMMENDED that the document contain only a single shape element and that element SHOULD be one of: path, rect, circle, ellipse, polyline, polygon or g. The g element SHOULD ONLY be used to construct a multi-element group, for example to define a donut shape requiring an outer circle and a clipped inner circle.

The dimensions of both the shape and the SVG canvas MUST be relative to the dimensions of the Source resource. For example, given an image which is 600 pixels by 400 pixels, and the desired section is a circle of 100 pixel radius at the center of the image, then the SVG element would be: &lt;circle cx=&quot;300&quot; cy=&quot;200&quot; r=&quot;100&quot;/&gt;

It is NOT RECOMMENDED to include style information within the SVG element, nor Javascript, animation, text or other non shape oriented information. Clients SHOULD ignore such information if present.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
    </owl:Class>
    


    <!-- http://www.w3.org/ns/oa#Tag -->

    <owl:Class rdf:about="&oa;Tag">
        <rdfs:label xml:lang="en">Tag</rdfs:label>
        <rdfs:comment xml:lang="en">A class assigned to the Body when it is a tag, such as a embedded text string with cnt:chars.

Tags are typically keywords or labels, and used for organization, description or discovery of the resource being tagged. In the Semantic Web, URIs are used instead of strings to avoid the issue of polysemy where one word has multiple meanings, such usage MUST be indicated using the subclass oa:SemanticTag.

Annotations that tag resources, either with text or semantic tags, SHOULD also have the oa:tagging motivation to make the reason for the Annotation more clear to applications, and MAY have other motivations as well.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
    </owl:Class>
    


    <!-- http://www.w3.org/ns/oa#TextPositionSelector -->

    <owl:Class rdf:about="&oa;TextPositionSelector">
        <rdfs:label xml:lang="en">TextPositionSelector</rdfs:label>
        <rdfs:subClassOf rdf:resource="&oa;Selector"/>
        <rdfs:comment xml:lang="en">An oa:Selector which describes a range of text based on its start and end positions.

The text MUST be normalized before counting characters. For a Selector that works from the bitstream rather than the rendered characters, see oa:DataPositionSelector.

Each oa:TextPositionSelector MUST have exactly 1 oa:start property.

Each oa:TextPositionSelector MUST have exactly 1 oa:end property.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
    </owl:Class>
    


    <!-- http://www.w3.org/ns/oa#TextQuoteSelector -->

    <owl:Class rdf:about="&oa;TextQuoteSelector">
        <rdfs:label xml:lang="en">TextQuoteSelector</rdfs:label>
        <rdfs:subClassOf rdf:resource="&oa;Selector"/>
        <rdfs:comment xml:lang="en">A Selector that describes a textual segment by means of quoting it, plus passages before or after it.

For example, if the document were &quot;abcdefghijklmnopqrstuvwxyz&quot;, one could select &quot;efg&quot; by a oa:prefix of &quot;abcd&quot;, the quotation of oa:exact &quot;efg&quot; and a oa:suffix of &quot;hijk&quot;.

The text MUST be normalized before recording.

Each TextQuoteSelector MUST have exactly 1 oa:exact property.

Each TextQuoteSelector SHOULD have exactly 1 oa:prefix property, and MUST NOT have more than 1.

Each TextQuoteSelector SHOULD have exactly 1 oa:suffix property, and MUST NOT have more than 1.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
    </owl:Class>
    


    <!-- http://www.w3.org/ns/oa#TimeState -->

    <owl:Class rdf:about="&oa;TimeState">
        <rdfs:label xml:lang="en">TimeState</rdfs:label>
        <rdfs:subClassOf rdf:resource="&oa;State"/>
        <rdfs:comment xml:lang="en">A resource which describes how to retrieve a representation of the Source resource that is temporally appropriate for the Annotation.

There MUST be at least one of oa:cachedSource or oa:when specified. If there is more than 1, each gives an alternative copy of the representation.</rdfs:comment>
        <rdfs:isDefinedBy rdf:resource="http://www.w3.org/ns/oa#"/>
    </owl:Class>
    


    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Individuals
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->

    


    <!-- http://www.w3.org/ns/oa#bookmarking -->

    <owl:NamedIndividual rdf:about="&oa;bookmarking">
        <rdf:type rdf:resource="&oa;Motivation"/>
        <rdfs:comment xml:lang="en">The motivation that represents the creation of a bookmark to the target resources or recorded point or points within one or more resources. For example, an Annotation that bookmarks the point in a text where the reader finished reading. Bookmark Annotations may or may not have a Body resource.</rdfs:comment>
        <skos:prefLabel xml:lang="en">bookmarking</skos:prefLabel>
        <skos:inScheme rdf:resource="&oa;motivationScheme"/>
    </owl:NamedIndividual>
    


    <!-- http://www.w3.org/ns/oa#classifying -->

    <owl:NamedIndividual rdf:about="&oa;classifying">
        <rdf:type rdf:resource="&oa;Motivation"/>
        <rdfs:comment xml:lang="en">The motivation that represents the assignment of a classification type, typically from a controlled vocabulary, to the target resource(s). For example to classify an Image resource as a Portrait.</rdfs:comment>
        <skos:prefLabel xml:lang="en">classifying</skos:prefLabel>
        <skos:inScheme rdf:resource="&oa;motivationScheme"/>
    </owl:NamedIndividual>
    


    <!-- http://www.w3.org/ns/oa#commenting -->

    <owl:NamedIndividual rdf:about="&oa;commenting">
        <rdf:type rdf:resource="&oa;Motivation"/>
        <rdfs:comment xml:lang="en">The motivation that represents a commentary about or review of the target resource(s). For example to provide a commentary about a particular PDF.</rdfs:comment>
        <skos:prefLabel xml:lang="en">commenting</skos:prefLabel>
        <skos:inScheme rdf:resource="&oa;motivationScheme"/>
    </owl:NamedIndividual>
    


    <!-- http://www.w3.org/ns/oa#describing -->

    <owl:NamedIndividual rdf:about="&oa;describing">
        <rdf:type rdf:resource="&oa;Motivation"/>
        <rdfs:comment xml:lang="en">The motivation that represents a description of the target resource(s), as opposed to a comment about them. For example describing the above PDF&apos;s contents, rather than commenting on their accuracy.</rdfs:comment>
        <skos:prefLabel xml:lang="en">describing</skos:prefLabel>
        <skos:inScheme rdf:resource="&oa;motivationScheme"/>
    </owl:NamedIndividual>
    


    <!-- http://www.w3.org/ns/oa#editing -->

    <owl:NamedIndividual rdf:about="&oa;editing">
        <rdf:type rdf:resource="&oa;Motivation"/>
        <rdfs:comment xml:lang="en">The motivation that represents a request for a modification or edit to the target resource. For example, an Annotation that requests a typo to be corrected.</rdfs:comment>
        <skos:prefLabel xml:lang="en">editing</skos:prefLabel>
        <skos:inScheme rdf:resource="&oa;motivationScheme"/>
    </owl:NamedIndividual>
    


    <!-- http://www.w3.org/ns/oa#highlighting -->

    <owl:NamedIndividual rdf:about="&oa;highlighting">
        <rdf:type rdf:resource="&oa;Motivation"/>
        <rdfs:comment xml:lang="en">The motivation that represents a highlighted section of the target resource or segment. For example to draw attention to the selected text that the annotator disagrees with. A Highlight may or may not have a Body resource</rdfs:comment>
        <skos:prefLabel xml:lang="en">highlighting</skos:prefLabel>
        <skos:inScheme rdf:resource="&oa;motivationScheme"/>
    </owl:NamedIndividual>
    


    <!-- http://www.w3.org/ns/oa#identifying -->

    <owl:NamedIndividual rdf:about="&oa;identifying">
        <rdf:type rdf:resource="&oa;Motivation"/>
        <rdfs:comment xml:lang="en">The motivation that represents the assignment of an identity to the target resource(s). For example, annotating the name of a city in a string of text with the URI that identifies it.</rdfs:comment>
        <skos:prefLabel xml:lang="en">identifying</skos:prefLabel>
        <skos:inScheme rdf:resource="&oa;motivationScheme"/>
    </owl:NamedIndividual>
    


    <!-- http://www.w3.org/ns/oa#linking -->

    <owl:NamedIndividual rdf:about="&oa;linking">
        <rdf:type rdf:resource="&oa;Motivation"/>
        <rdfs:comment xml:lang="en">The motivation that represents an untyped link to a resource related to the target.</rdfs:comment>
        <skos:prefLabel xml:lang="en">linking</skos:prefLabel>
        <skos:inScheme rdf:resource="&oa;motivationScheme"/>
    </owl:NamedIndividual>
    


    <!-- http://www.w3.org/ns/oa#moderating -->

    <owl:NamedIndividual rdf:about="&oa;moderating">
        <rdf:type rdf:resource="&oa;Motivation"/>
        <rdfs:comment xml:lang="en">The motivation that represents an assignment of value or quality to the target resource(s). For example annotating an Annotation to moderate it up in a trust network or threaded discussion.</rdfs:comment>
        <skos:prefLabel xml:lang="en">moderating</skos:prefLabel>
        <skos:inScheme rdf:resource="&oa;motivationScheme"/>
    </owl:NamedIndividual>
    


    <!-- http://www.w3.org/ns/oa#motivationScheme -->

    <owl:NamedIndividual rdf:about="&oa;motivationScheme">
        <rdf:type rdf:resource="&skos;ConceptScheme"/>
        <rdfs:label xml:lang="en">motivationScheme</rdfs:label>
        <rdfs:comment xml:lang="en">The concept scheme for Open Annotation Motivations</rdfs:comment>
    </owl:NamedIndividual>
    


    <!-- http://www.w3.org/ns/oa#questioning -->

    <owl:NamedIndividual rdf:about="&oa;questioning">
        <rdf:type rdf:resource="&oa;Motivation"/>
        <rdfs:comment xml:lang="en">The motivation that represents asking a question about the target resource(s). For example to ask for assistance with a particular section of text, or question its veracity.</rdfs:comment>
        <skos:prefLabel xml:lang="en">questioning</skos:prefLabel>
        <skos:inScheme rdf:resource="&oa;motivationScheme"/>
    </owl:NamedIndividual>
    


    <!-- http://www.w3.org/ns/oa#replying -->

    <owl:NamedIndividual rdf:about="&oa;replying">
        <rdf:type rdf:resource="&oa;Motivation"/>
        <rdfs:comment xml:lang="en">The motivation that represents a reply to a previous statement, either an Annotation or another resource. For example providing the assistance requested in the above.</rdfs:comment>
        <skos:prefLabel xml:lang="en">replying</skos:prefLabel>
        <skos:inScheme rdf:resource="&oa;motivationScheme"/>
    </owl:NamedIndividual>
    


    <!-- http://www.w3.org/ns/oa#tagging -->

    <owl:NamedIndividual rdf:about="&oa;tagging">
        <rdf:type rdf:resource="&oa;Motivation"/>
        <rdfs:comment xml:lang="en">The motivation that represents adding a Tag on the target resource(s). One or more of the bodies of the annotation should be typed as a oa:Tag or oa:SemanticTag.</rdfs:comment>
        <skos:prefLabel xml:lang="en">tagging</skos:prefLabel>
        <skos:inScheme rdf:resource="&oa;motivationScheme"/>
    </owl:NamedIndividual>
</rdf:RDF>



<!-- Generated by the OWL API (version 3.3.1957) http://owlapi.sourceforge.net -->

