@prefix : <http://www.w3.org/ns/ma-ont#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://www.w3.org/ns/ma-ont> a owl:Ontology;
    dc:date "2011-11-25"^^xsd:date;
    rdfs:comment "Created by Tobias Buerger, Jean Pierre Evain and Pierre-Antoine Champin with the RDFS Taskforce within the W3C Media Annotation Working Group.";
    owl:imports dc:;
    owl:versionInfo "R35" .

:AudioTrack a owl:Class;
    rdfs:comment "A specialisation of Track for Audio to provide a link to specific data properties such as sampleRate, etc. Specialisation is defined through object properties.";
    rdfs:subClassOf :Track .

:DataTrack a owl:Class;
    rdfs:comment "Ancillary data track e.g. ¨captioning\"  in addition to video and audio tracks. Specialisation is made through the use of appropriate object properties.";
    rdfs:subClassOf :Track .

:Organisation a owl:Class;
    rdfs:comment "An organisation or moral agent.";
    rdfs:subClassOf :Agent;
    owl:disjointWith :Person .

:VideoTrack a owl:Class;
    rdfs:comment "A specialisation of Track for Video to provide a link to specific data properties such as frameRate, etc. Signing is another possible example of video track. Specialisation is defined through object properties.";
    rdfs:subClassOf :Track .

:alternativeTitle a owl:DatatypeProperty;
    rdfs:comment "Corresponds to 'title.title' in the Ontology for Media Resources with a 'title.type' meaning \"alternative\".";
    rdfs:subPropertyOf :title .

:averageBitRate a owl:DatatypeProperty;
    rdfs:comment "Corresponds to 'averageBitRate' in the Ontology for Media Resources, expressed in kilobits/second.";
    rdfs:domain [ a owl:Class;
            owl:intersectionOf ( :MediaResource [ a owl:Class;
                        owl:complementOf :Image ] ) ];
    rdfs:range xsd:decimal .

:collectionName a owl:DatatypeProperty;
    rdfs:comment "The name by which a collection (e.g. series) is known.";
    rdfs:domain :Collection;
    rdfs:subClassOf [ rdfs:subClassOf "http://www.w3.org/2000/01/rdf-schema#label" ] .

:copyright a owl:DatatypeProperty;
    rdfs:comment "Corresponds to 'copyright.copyright' in the Ontology for Media Resources.";
    rdfs:domain :MediaResource .

:createdIn a owl:ObjectProperty;
    rdfs:comment "A subproperty of 'hasRelatedLocation\" used to specify where material shooting took place.";
    rdfs:subPropertyOf :hasRelatedLocation;
    owl:inverseOf :isCreationLocationOf .

:creationDate a owl:DatatypeProperty;
    rdfs:comment "Corresponds to 'date.date' in the Ontology for Media Resources with a 'date.type' meaning \"creationDate\".";
    rdfs:subPropertyOf :date .

:depictsFictionalLocation a owl:ObjectProperty;
    rdfs:comment "A subproperty of 'hasRelatedLocation' used to specify where the action depicted in the media is supposed to take place, as opposed to the location where shooting actually took place (see 'createdIn').";
    rdfs:subPropertyOf :hasRelatedLocation;
    owl:inverseOf :isFictionalLocationDepictedIn .

:description a owl:DatatypeProperty;
    rdfs:comment "Corresponds to 'description' in the Ontology for Media Resources. This can be specialised by using sub-properties e.g. 'summary' or 'script'.";
    rdfs:domain :MediaResource .

:duration a owl:DatatypeProperty;
    rdfs:comment "Corresponds to 'duration' in the Ontology for Media Resources.";
    rdfs:domain [ a owl:Class;
            owl:intersectionOf ( :MediaResource [ a owl:Class;
                        owl:complementOf :Image ] ) ];
    rdfs:range xsd:decimal .

:editDate a owl:DatatypeProperty;
    rdfs:comment "Corresponds to 'date.date' in the Ontology for Media Resources with a 'date.type' meaning \"editDate\".";
    rdfs:subPropertyOf :date .

:features a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'contributor.contributor' in the Ontology for Media Resources with a 'contributor.role' meaning \"actor\".";
    rdfs:range :Person;
    rdfs:subPropertyOf :hasContributor;
    owl:inverseOf :playsIn .

:frameHeight a owl:DatatypeProperty;
    rdfs:comment "Corresponds to 'frameSize.height' in the Ontology for Media Resources, measured in frameSizeUnit.";
    rdfs:domain :MediaResource;
    rdfs:range xsd:integer .

:frameRate a owl:DatatypeProperty;
    rdfs:comment "Corresponds to 'frameRate' in the Ontology for Media Resources, in frame per second.";
    rdfs:domain :MediaResource;
    rdfs:range xsd:decimal .

:frameSizeUnit a owl:DatatypeProperty;
    rdfs:comment "Corresponds to 'frameSize.unit' in the Ontology for Media Resources.";
    rdfs:domain :MediaResource .

:frameWidth a owl:DatatypeProperty;
    rdfs:comment "Corresponds to 'frameSize.width' in the Ontology for Media Resources measured in frameSizeUnit.";
    rdfs:domain :MediaResource;
    rdfs:range xsd:integer .

:hasAccessConditions a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'policy' in the Ontology for Media Resources with a 'policy.type' \"access conditions\".";
    rdfs:subPropertyOf :hasPolicy .

:hasAudioDescription a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'fragment' in the Ontology for Media Resources with a 'fragment.role' meaning \"audio-description\".";
    rdfs:subPropertyOf :hasCaptioning .

:hasChapter a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'fragment' in the Ontology for Media Resources with a 'fragment.role' meaning \"actor\".";
    rdfs:subPropertyOf :hasFragment;
    owl:inverseOf :isChapterOf .

:hasClassification a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'targetAudience.classification' in the Ontology for Media Resources. This property is used to provide a value characterising the target audience.";
    rdfs:domain :TargetAudience .

:hasClassificationSystem a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'targetAudience.identifier' in the Ontology for Media Resources. This is used to identify the reference sheme against which the target audience has been characterised.";
    rdfs:domain :TargetAudience .

:hasCompression a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'compression' in the Ontology for Media Resources.";
    rdfs:domain :MediaResource .

:hasCreator a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'creator.creator' in the Ontology for Media Resources. Subproperties can be used to distinguish different values of 'creator.role'. Note that this property is semantically a subproperty of 'hasContributor'.";
    rdfs:subPropertyOf :hasContributor;
    owl:inverseOf :hasCreated .

:hasFormat a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'format' in the Ontology for Media Resources.";
    rdfs:domain :MediaResource .

:hasGenre a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'genre' in the Ontology for Media Resources.";
    rdfs:domain :MediaResource .

:hasKeyword a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'keyword' in the Ontology for Media Resources.";
    rdfs:domain :MediaResource .

:hasLanguage a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'language' in the Ontology for Media Resources. The language used in the resource. A controlled vocabulary such as defined in BCP 47 SHOULD be used. This property can also be used to identify the presence of sign language (RFC 5646). By inheritance, the hasLanguage property applies indifferently at the media resource / fragment / track levels.  Best practice recommends to use to best possible level of granularity fo describe the usage of language within a media resource including at fragment and track levels.";
    rdfs:domain :MediaResource .

:hasLocationCoordinateSystem a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'location.coordinateSystem' in the Ontology for Media Resources.";
    rdfs:domain :Location .

:hasNamedFragment a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'namedFragment' in the Ontology for Media Resources.";
    rdfs:subPropertyOf :hasFragment;
    owl:inverseOf :isNamedFragmentOf .

:hasPermissions a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'policy' in the Ontology for Media Resources with a  'policy.type' meaning \"permissions\".";
    rdfs:subPropertyOf :hasPolicy .

:hasPublisher a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'publisher' in the Ontology for Media Resources.";
    rdfs:subPropertyOf :hasContributor;
    owl:inverseOf :hasPublished .

:hasRating a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'rating' in the Ontology for Media Resources.";
    rdfs:domain :MediaResource;
    rdfs:range :Rating;
    owl:inverseOf :IsRatingOf .

:hasRatingSystem a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'rating.type' in the Ontology for Media Resources.";
    rdfs:domain :Rating .

:hasRelatedImage a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'relation' and in the Ontology for Media Resources with a 'relation.type' meaning \"related image\".";
    rdfs:range :Image;
    rdfs:subPropertyOf :hasRelatedResource;
    owl:inverseOf :isImageRelatedTo .

:hasSigning a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'fragment' in the Ontology for Media Resources with a 'fragment.role' meaning \"signing\". This property can for example point to a spatial fragment or a VideoTrack. The sign language of the captioning track can be expressed by attaching a 'hasLanguage' property to the specific track.";
    rdfs:subPropertyOf :hasFragment;
    owl:inverseOf :isSigningOf .

:hasSource a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'relation' and in the Ontology for Media Resources with a 'relation.type' meaning \"source\".";
    rdfs:subPropertyOf :hasRelatedResource;
    owl:inverseOf :isSourceOf .

:hasSubtitling a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'fragment' in the Ontology for Media Resources with a 'fragment.role' meaning \"subtitling\".";
    rdfs:subPropertyOf :hasCaptioning .

:hasTargetAudience a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'targetAudience' in the Ontology for Media Resources.";
    rdfs:domain :MediaResource;
    rdfs:range :TargetAudience;
    owl:inverseOf :isTargetAudienceOf .

:hasTrack a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'fragment' in the Ontology for Media Resources with a 'fragment.role' meaning \"track\".";
    rdfs:range :Track;
    rdfs:subPropertyOf :hasFragment;
    owl:inverseOf :isTrackOf .

:isCopyrightedBy a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'copyright.identifier' in the Ontology for Media Resources.";
    rdfs:domain :MediaResource;
    rdfs:range :Agent;
    owl:inverseOf :hasCopyrightOver .

:isMemberOf a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'collection' in the Ontology for Media Resources.";
    rdfs:domain :MediaResource;
    rdfs:range :Collection;
    owl:inverseOf :hasMember .

:isProvidedBy a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'rating.identifier' in the Ontology for Media Resources.";
    rdfs:domain :Rating;
    rdfs:range :Agent;
    owl:inverseOf :provides .

:locationAltitude a owl:DatatypeProperty;
    rdfs:comment "Corresponds to 'location.altitude' in the Ontology for Media Resources.";
    rdfs:domain :Location;
    rdfs:range xsd:decimal .

:locationLatitude a owl:DatatypeProperty;
    rdfs:comment "Corresponds to 'location.latitude' in the Ontology for Media Resources.";
    rdfs:domain :Location;
    rdfs:range xsd:decimal .

:locationLongitude a owl:DatatypeProperty;
    rdfs:comment "Corresponds to 'location.longitude' in the Ontology for Media Resources.";
    rdfs:domain :Location;
    rdfs:range xsd:decimal .

:locationName a owl:DatatypeProperty;
    rdfs:comment "Corresponds to 'location.name' in the Ontology for Media Resources.";
    rdfs:domain :Location .

:locator a owl:DatatypeProperty;
    rdfs:comment "Corresponds to 'locator' in the Ontology for Media Resources.";
    rdfs:domain :MediaResource;
    rdfs:range xsd:anyURI .

:mainOriginalTitle a owl:DatatypeProperty;
    rdfs:comment "Corresponds to 'title.title' in the Ontology for Media Resources with a 'title.type' meaning \"original\".";
    rdfs:subPropertyOf :title .

:numberOfTracks a owl:DatatypeProperty;
    rdfs:comment "Corresponds to 'numTracks.number' in the Ontology for Media Resources. Subproperties can be used to distinguish different values of 'numTracks.type'.";
    rdfs:domain :MediaResource;
    rdfs:range xsd:integer .

:ratingScaleMax a owl:DatatypeProperty;
    rdfs:comment "Corresponds to 'rating.max' in the Ontology for Media Resources.";
    rdfs:domain :Rating;
    rdfs:range xsd:decimal .

:ratingScaleMin a owl:DatatypeProperty;
    rdfs:comment "Corresponds to 'rating.min' in the Ontology for Media Resources.";
    rdfs:domain :Rating;
    rdfs:range xsd:decimal .

:ratingValue a owl:DatatypeProperty;
    rdfs:comment "Corresponds to 'rating.value' in the Ontology for Media Resources.";
    rdfs:domain :Rating;
    rdfs:range xsd:decimal .

:recordDate a owl:DatatypeProperty;
    rdfs:comment "Corresponds to 'date.date' in the Ontology for Media Resources with a 'date.type' meaning \"recordDate\".";
    rdfs:subPropertyOf :date .

:releaseDate a owl:DatatypeProperty;
    rdfs:comment "Corresponds to 'date.date' in the Ontology for Media Resources with a 'date.type' meaning \"releaseDate\".";
    rdfs:subPropertyOf :date .

:samplingRate a owl:DatatypeProperty;
    rdfs:comment "Corresponds to 'samplingRate' in the Ontology for Media Resources, in samples per second.";
    rdfs:domain :MediaResource;
    rdfs:range xsd:decimal .

:trackName a owl:DatatypeProperty;
    rdfs:comment "Corresponds to 'fragment.name' in the Ontology for Media Resources, for Track fragments.";
    rdfs:domain :Track;
    rdfs:subPropertyOf :fragmentName .

:IsRatingOf a owl:ObjectProperty .

:fragmentName a owl:DatatypeProperty;
    rdfs:comment "Corresponds to 'namedFragment.label' in the Ontology for Media Resources.";
    rdfs:domain :MediaFragment .

:hasContributedTo a owl:ObjectProperty .

:hasCopyrightOver a owl:ObjectProperty .

:hasCreated a owl:ObjectProperty .

:hasMember a owl:ObjectProperty .

:hasPublished a owl:ObjectProperty .

:isCaptioningOf a owl:ObjectProperty .

:isChapterOf a owl:ObjectProperty .

:isCreationLocationOf a owl:ObjectProperty .

:isFictionalLocationDepictedIn a owl:ObjectProperty .

:isFragmentOf a owl:ObjectProperty .

:isImageRelatedTo a owl:ObjectProperty .

:isLocationRelatedTo a owl:ObjectProperty .

:isNamedFragmentOf a owl:ObjectProperty .

:isRelatedTo a owl:ObjectProperty .

:isSigningOf a owl:ObjectProperty .

:isSourceOf a owl:ObjectProperty .

:isTargetAudienceOf a owl:ObjectProperty .

:isTrackOf a owl:ObjectProperty .

:playsIn a owl:ObjectProperty .

:provides a owl:ObjectProperty .

:Person a owl:Class;
    rdfs:comment "A physical person.";
    rdfs:subClassOf :Agent .

:hasCaptioning a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'fragment' in the Ontology for Media Resources with a 'fragment.role' meaning \"captioning\". This property can for example point to a spatial fragment, a VideoTrack or a DataTrack. The language of the captioning track can be expressed by attaching a 'hasLanguage' property to the specific track.";
    rdfs:subPropertyOf :hasFragment;
    owl:inverseOf :isCaptioningOf .

:hasPolicy a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'policy' in the Ontology for Media Resources. Subproperties can be used to distinguish different values of 'policy.type'.";
    rdfs:domain :MediaResource .

:hasRelatedLocation a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'location' in the Ontology for Media Resources. Subproperties are provided to specify, when possible, the relation between the media resource and the location.";
    rdfs:domain :MediaResource;
    rdfs:range :Location;
    owl:inverseOf :isLocationRelatedTo .

:hasRelatedResource a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'relation' and in the Ontology for Media Resources. Subproperties can be used to distinguish different values of 'relation.type'.";
    rdfs:domain :MediaResource;
    owl:inverseOf :isRelatedTo .

:title a owl:DatatypeProperty;
    rdfs:comment "Corresponds to 'title.title' in the Ontology for Media Resources. Subproperties can be used to distinguish different values of 'title.type'.";
    rdfs:domain :MediaResource .

:Collection a owl:Class;
    rdfs:comment "Any group of media resource e.g. a series.";
    owl:disjointWith :Location,
        :MediaResource,
        :Rating,
        :TargetAudience .

:Image a owl:Class;
    rdfs:comment "A still image / thumbnail / key frame related to the media resource or being the media resource itself.";
    rdfs:subClassOf :MediaResource .

:MediaFragment a owl:Class;
    rdfs:comment "A media fragment (spatial, temporal, track...) composing a media resource. In other ontologies fragment is sometimes referred to as a 'part' or 'segment'.";
    rdfs:subClassOf :MediaResource .

:hasContributor a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'contributor.contributor' in the Ontology for Media Resources. Subproperties can be used to distinguish different values of 'contributor.role'.";
    rdfs:domain :MediaResource;
    rdfs:range :Agent;
    owl:inverseOf :hasContributedTo .

:date a owl:DatatypeProperty;
    rdfs:comment "Corresponds to date.date in the ontology for Media Resources. Subproperties can be used to distinguish different values of 'date.type'. The recommended range is 'xsd:dateTime' (for compliance with OWL2-QL and OWL2-RL) but other time-related datatypes may be used (e.g. 'xsd:gYear', 'xsd:date'...).";
    rdfs:domain :MediaResource .

:Agent a owl:Class;
    rdfs:comment "A person or organisation contributing to the media resource.";
    owl:disjointWith :Collection,
        :Location,
        :MediaResource,
        :Rating,
        :TargetAudience .

:Track a owl:Class;
    rdfs:comment "A specialisation of MediaFragment for audiovisual content.";
    rdfs:subClassOf :MediaFragment .

:hasFragment a owl:ObjectProperty;
    rdfs:comment "Corresponds to 'fragment' in the Ontology for Media Resources. Subproperties can be used to distinguish different values of 'fragment.role'.";
    rdfs:domain :MediaResource;
    rdfs:range :MediaFragment;
    owl:inverseOf :isFragmentOf .

:Location a owl:Class;
    rdfs:comment "A location related to the media resource, e.g. depicted in the resource (possibly fictional) or where the resource was created (shooting location), etc.";
    owl:disjointWith :MediaResource,
        :Rating,
        :TargetAudience .

:TargetAudience a owl:Class;
    rdfs:comment "Information about The target audience (target region, target audience category but also parental guidance recommendation) for which a media resource is intended." .

:Rating a owl:Class;
    rdfs:comment "Information about the rating given to a media resource.";
    owl:disjointWith :TargetAudience .

:MediaResource a owl:Class;
    rdfs:comment "An image or an audiovisual media resource, which can be composed of one or more fragment / track.";
    owl:disjointWith :Rating,
        :TargetAudience .