@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix sc: <http://iiif.io/api/presentation/2#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix oa: <http://www.w3.org/ns/oa#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://iiif.io/api/presentation/2#>
    a owl:Ontology ;
    owl:versionInfo "2015-12-13 23:00:00Z" .

sc:AnnotationList
    a rdfs:Class ;
    rdfs:comment "AnnotationLists are an ordered list of Annotation objects. Typically all Annnotations in a list target the same Canvas" ;
    rdfs:isDefinedBy <http://iiif.io/api/presentation/2#> ;
    rdfs:label "AnnotationList" .

sc:Canvas
    a rdfs:Class ;
    rdfs:comment "The canvas represents an individual page or view and acts as a central point for laying out the different content resources that make up the display." ;
    rdfs:isDefinedBy <http://iiif.io/api/presentation/2#> ;
    rdfs:label "Canvas" .

sc:Collection
    a rdfs:Class ;
    rdfs:comment "Collections are used to list the manifests available for viewing, and to describe the structures, hierarchies or collections that the physical objects are part of." ;
    rdfs:isDefinedBy <http://iiif.io/api/presentation/2#> ;
    rdfs:label "Collection" .

sc:Layer
    a rdfs:Class ;
    rdfs:comment "Layers are lists of AnnotationLists to group them together, for example to create the set of lists that make up a particular translation/edition of a text" ;
    rdfs:isDefinedBy <http://iiif.io/api/presentation/2#> ;
    rdfs:label "Layer" .

sc:Manifest
    a rdfs:Class ;
    rdfs:comment "The manifest resource represents a single object and any intellectual work or works embodied within that object" ;
    rdfs:isDefinedBy <http://iiif.io/api/presentation/2#> ;
    rdfs:label "Manifest" .

sc:Range
    a rdfs:Class ;
    rdfs:comment "Ranges describe additional structure within an object, such as newspaper articles that span pages, the range of non-content-bearing pages at the beginning of a work, or chapters within a book" ;
    rdfs:isDefinedBy <http://iiif.io/api/presentation/2#> ;
    rdfs:label "Range" .

sc:Sequence
    a rdfs:Class ;
    rdfs:comment "The sequence conveys the ordering of the views of the object." ;
    rdfs:isDefinedBy <http://iiif.io/api/presentation/2#> ;
    rdfs:label "Sequence" .

sc:ViewingDirection
    a rdfs:Class ;
    rdfs:isDefinedBy <http://iiif.io/api/presentation/2#> ;
    rdfs:label "ViewingDirection" .

sc:ViewingHint
    a rdfs:Class ;
    rdfs:isDefinedBy <http://iiif.io/api/presentation/2#> ;
    rdfs:label "ViewingHint" .

sc:Zone
    a rdfs:Class ;
    rdfs:comment "Used to group annotations together in an area of a Canvas, for example to model columns, foldouts or palimpsests; Note that Zones are not currently used in the IIIF Presentation API." ;
    rdfs:isDefinedBy <http://iiif.io/api/presentation/2#> ;
    rdfs:label "Zone" ;
    rdfs:subClassOf sc:Canvas .

sc:attributionLabel
    a rdf:Property ;
    rdfs:comment "A string containing an attribution description that must be displayed when using the resource" ;
    rdfs:isDefinedBy <http://iiif.io/api/presentation/2#> ;
    rdfs:label "attributionLabel" .

sc:bottomToTopDirection
    a sc:ViewingDirection ;
    rdfs:comment "Bottom-to-Top Viewing Direction" .

sc:continuousHint
    a sc:ViewingHint ;
    rdfs:comment "Each canvas represents a segment of a continuous object such as a long scroll" .

sc:facingPagesHint
    a sc:ViewingHint ;
    rdfs:comment "Canvases with this hint depict both parts of an opening." .

sc:hasAnnotations
    a rdf:Property ;
    rdfs:isDefinedBy <http://iiif.io/api/presentation/2#> ;
    rdfs:label "hasAnnotations" ;
    rdfs:range rdf:List .

sc:hasCanvases
    a rdf:Property ;
    rdfs:isDefinedBy <http://iiif.io/api/presentation/2#> ;
    rdfs:label "hasCanvases" ;
    rdfs:range rdf:List .

sc:hasCollections
    a rdf:Property ;
    rdfs:domain sc:Collection ;
    rdfs:isDefinedBy <http://iiif.io/api/presentation/2#> ;
    rdfs:label "hasCollections" ;
    rdfs:range rdf:List .

sc:hasContentLayer
    a rdf:Property ;
    rdfs:comment "A link from a Range to a Layer that provides the content resources of that Range" ;
    rdfs:domain sc:Range ;
    rdfs:isDefinedBy <http://iiif.io/api/presentation/2#> ;
    rdfs:label "hasContentLayer" ;
    rdfs:range sc:Layer .

sc:hasImageAnnotations
    a rdf:Property ;
    rdfs:isDefinedBy <http://iiif.io/api/presentation/2#> ;
    rdfs:label "hasImageAnnotations" ;
    rdfs:range rdf:List ;
    rdfs:subPropertyOf sc:hasAnnotations .

sc:hasLists
    a rdf:Property ;
    rdfs:isDefinedBy <http://iiif.io/api/presentation/2#> ;
    rdfs:label "hasLists" ;
    rdfs:range rdf:List .

sc:hasManifests
    a rdf:Property ;
    rdfs:domain sc:Collection ;
    rdfs:isDefinedBy <http://iiif.io/api/presentation/2#> ;
    rdfs:label "hasManifests" ;
    rdfs:range rdf:List .

sc:hasRanges
    a rdf:Property ;
    rdfs:isDefinedBy <http://iiif.io/api/presentation/2#> ;
    rdfs:label "hasRanges" ;
    rdfs:range rdf:List .

sc:hasSequences
    a rdf:Property ;
    rdfs:domain sc:Manifest ;
    rdfs:isDefinedBy <http://iiif.io/api/presentation/2#> ;
    rdfs:label "hasSequences" ;
    rdfs:range rdf:List .

sc:hasStartCanvas
    a rdf:Property ;
    rdfs:comment "A link from a Manifest or Sequence to the Canvas that the rendering agent should initialize their view with." ;
    rdfs:isDefinedBy <http://iiif.io/api/presentation/2#> ;
    rdfs:label "hasStartCanvas" ;
    rdfs:range sc:Canvas .

sc:individualsHint
    a sc:ViewingHint ;
    rdfs:comment "Each canvas represents a separate individual object, and should not have transitions" .

sc:leftToRightDirection
    a sc:ViewingDirection ;
    rdfs:comment "Left-to-Right Viewing Direction" .

sc:metadataLabels
    a rdf:Property ;
    rdfs:comment "An rdf:List of label/value pairs providing descriptive metadata about the resource, intended for human audience" ;
    rdfs:isDefinedBy <http://iiif.io/api/presentation/2#> ;
    rdfs:label "metadataLabels" ;
    rdfs:range rdf:List .

sc:multiPartHint
    a sc:ViewingHint ;
    rdfs:comment "Collections with this hint consist of multiple manifests that each form part of a logical whole." .

sc:nonPagedHint
    a sc:ViewingHint ;
    rdfs:comment "Viewing Hint that the Canvas MUST NOT be presented in a page turner" .

sc:pagedHint
    a sc:ViewingHint ;
    rdfs:comment "Viewing Hint that object has canvases that represent pages that can be turned" .

sc:painting
    a oa:Motivation .

sc:rightToLeftDirection
    a sc:ViewingDirection ;
    rdfs:comment "Right-to-Left Viewing Direction" .

sc:topHint
    a sc:ViewingHint ;
    rdfs:comment "The topmost range in a nested hierarchy, such as a table of contents" .

sc:topToBottomDirection
    a sc:ViewingDirection ;
    rdfs:comment "Top-to-Bottom Viewing Direction" .

sc:viewingDirection
    a rdf:Property ;
    rdfs:comment "References the sc:ViewingDirection that defines the direction that the resource should be viewed in" ;
    rdfs:isDefinedBy <http://iiif.io/api/presentation/2#> ;
    rdfs:label "viewingDirection" ;
    rdfs:range sc:ViewingDirection .

sc:viewingHint
    a rdf:Property ;
    rdfs:comment "A hint to a user agent as to how to render the resource" ;
    rdfs:isDefinedBy <http://iiif.io/api/presentation/2#> ;
    rdfs:label "viewingHint" ;
    rdfs:range sc:ViewingHint .

<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
    a owl:Ontology .

rdf:List
    a rdfs:Class ;
    rdfs:isDefinedBy <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;
    rdfs:label "List" .

