PREFIX ac: <https://w3id.org/ac-ontology/aco#>
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#>

<https://w3id.org/afo/onto/1.1#AudioFeature> a rdfs:Class .

<http://purl.org/ontology/mo/MusicalManifestation> a rdfs:Class ;
  rdfs:subClassOf ac:AudioManifestation .

ac:defaultContainerNode a rdf:Property ;
  rdfs:label "default container node" ;
  rdfs:comment "Associates an audio manifestation with a node in the default parent collection (e.g., a musical track to the album it has been published it), if there is such a thing." ;
  rdfs:domain ac:AudioManifestation ;
  rdfs:range ac:AudioCollectionNode ;
  rdfs:subPropertyOf ac:containerNode .

ac:containerNode a rdf:Property ;
  rdfs:label "container node" ;
  rdfs:comment "Associates an audio manifestation with the collection nodes that contain it." ;
  rdfs:domain ac:AudioManifestation ;
  rdfs:range ac:AudioCollectionNode .

ac:publicationOf a rdf:Property ;
  rdfs:label "publication of" ;
  rdfs:comment """Link a particular manifestation to the related expression (e.g., a signal or a sound).
""" ;
  rdfs:domain ac:AudioManifestation ;
  rdfs:range ac:AudioExpression ;
  rdfs:subPropertyOf <http://purl.org/vocab/frbr/core#embodimentOf> .

ac:availableAs a rdf:Property ;
  rdfs:label "available as" ;
  rdfs:comment """Relates an audio manifestation to an audio item (e.g., a media file).
""" ;
  rdfs:domain ac:AudioManifestation ;
  rdfs:range ac:AudioItem ;
  rdfs:subPropertyOf <http://purl.org/vocab/frbr/core#exemplar> .

ac:AudioClip a rdfs:Class ;
  rdfs:label "Audio clip" ;
  rdfs:comment """An audio segment that has been somehow published or uploaded for consumption (e.g., a track in a music label's repository or a sound in an audio repository, library or archive).
""" ;
  rdfs:subClassOf ac:AudioManifestation .

ac:originalFile a rdf:Property ;
  rdfs:label "original file" ;
  rdfs:comment """Relates an audio clip to the original published audio file (if there is such thing).
""" ;
  rdfs:domain ac:AudioClip ;
  rdfs:range ac:AudioFile ;
  rdfs:subPropertyOf ac:availableAs .

ac:AudioCollectionNonFirstNode a rdfs:Class ;
  rdfs:label "Any node but the first" ;
  rdfs:comment "A node that is not the first in the containing audio collection" ;
  rdfs:subClassOf ac:AudioCollectionNode .

ac:previousNode a rdf:Property ;
  rdfs:label "previous node" ;
  rdfs:comment "Associates a node with the previous node in the collection." ;
  rdfs:domain ac:AudioCollectionNonFirstNode ;
  rdfs:range ac:AudioCollectionNonLastNode .

ac:nodeIndex a rdf:Property ;
  rdfs:label "node index" ;
  rdfs:comment "Associates a node with its position in the collection." ;
  rdfs:domain ac:AudioCollectionNode ;
  rdfs:range xsd:int .

ac:nodeContent a rdf:Property ;
  rdfs:label "node content" ;
  rdfs:comment "Associates a node with the actual content (an audio manifestation)." ;
  rdfs:domain ac:AudioCollectionNode ;
  rdfs:range ac:AudioManifestation .

ac:AudioCollection a rdfs:Class ;
  rdfs:label "Audio collection" ;
  rdfs:comment """A collection of audio manifestations (e.g., a sound pack, an album, a result set of a search over a repository of audio content). As an audio collection is an audio manifestation too, collections may be nested. An audio collection is composed of nodes.
""" ;
  rdfs:subClassOf ac:AudioManifestation .

ac:firstNode a rdf:Property ;
  rdfs:label "first node" ;
  rdfs:comment "Associates an audio collection to its first node." ;
  rdfs:domain ac:AudioCollection ;
  rdfs:range ac:AudioCollectionFirstNode ;
  rdfs:subPropertyOf ac:memberNode .

ac:lastNode a rdf:Property ;
  rdfs:label "last node" ;
  rdfs:comment "Associates an audio collection to its last node." ;
  rdfs:domain ac:AudioCollection ;
  rdfs:range ac:AudioCollectionLastNode ;
  rdfs:subPropertyOf ac:memberNode .

ac:memberNode a rdf:Property ;
  rdfs:label "member node" ;
  rdfs:comment "Associates an audio collection to its nodes." ;
  rdfs:domain ac:AudioCollection ;
  rdfs:range ac:AudioCollectionNode .

ac:AudioCategory a rdfs:Class ;
  rdfs:label "Audio category" ;
  rdfs:comment "Any category that is used to classify audio content." ;
  rdfs:subClassOf <http://purl.org/vocab/frbr/core#Concept> .

<http://purl.org/vocab/frbr/core#Manifestation> a rdfs:Class .

ac:Sound a rdfs:Class ;
  rdfs:label "Physical sound" ;
  rdfs:comment "A subclass of AudioExpression, representing a (physical) sound." ;
  rdfs:subClassOf ac:AudioExpression .

ac:publishedAs a rdf:Property ;
  rdfs:label "published as" ;
  rdfs:comment """Link an expression to its publication as manifestation.
""" ;
  rdfs:domain ac:AudioExpression ;
  rdfs:range ac:AudioManifestation ;
  rdfs:subPropertyOf <http://purl.org/vocab/frbr/core#embodiment> .

<http://purl.org/ontology/mo/MusicalExpression> a rdfs:Class ;
  rdfs:subClassOf ac:AudioExpression .

ac:DigitalSignal a rdfs:Class ;
  rdfs:label "Digital signal" ;
  rdfs:comment "A digital signal." ;
  rdfs:subClassOf ac:Signal .

ac:sampleRate a rdf:Property ;
  rdfs:label "sample rate" ;
  rdfs:comment "Associates a digital signal to its sample rate." ;
  rdfs:domain ac:DigitalSignal ;
  rdfs:range xsd:float .

ac:audioFeature a rdf:Property ;
  rdfs:label "audio feature" ;
  rdfs:comment "Associates a signal to an extracted audio feature." ;
  rdfs:domain ac:Signal ;
  rdfs:range <https://w3id.org/afo/onto/1.1#AudioFeature> .

ac:channels a rdf:Property ;
  rdfs:label "channels" ;
  rdfs:comment """Associates a signal to the number of channels it holds (mono → 1, stereo → 2).
""" ;
  rdfs:domain ac:DigitalSignal ;
  rdfs:range xsd:int .

ac:bitsPerSample a rdf:Property ;
  rdfs:label "bits per sample" ;
  rdfs:comment """Associates a digital signal to the number of bits used to encode one sample.
""" ;
  rdfs:domain ac:DigitalSignal ;
  rdfs:range xsd:int .

ac:isEncodedBy a rdf:Property ;
  rdfs:label "is encoded by" ;
  rdfs:comment """Associates a signal to a MusicalItem (a track on a particular CD, an audio file, a stream somewhere) that encodes it.
""" ;
  rdfs:domain ac:DigitalSignal ;
  rdfs:range ac:AudioItem .

<http://purl.org/vocab/frbr/core#Item> a rdfs:Class .

rdf:List a rdfs:Class .

<http://xmlns.com/foaf/0.1/Document> a rdfs:Class .

<http://purl.org/ontology/mo/MusicalItem> a rdfs:Class ;
  rdfs:subClassOf ac:AudioItem .

ac:signalSampleRate a rdf:Property ;
  rdfs:label "signal sample rate" ;
  rdfs:comment """The sample rate of the digital signal. Shortcut for ac:encodes/ac:sampleRate
""" ;
  rdfs:domain ac:AudioItem ;
  rdfs:range xsd:float .

ac:signalDuration a rdf:Property ;
  rdfs:label "signal duration" ;
  rdfs:comment """The duration of the signal in ms. Shortcut for ac:encodes/ac:duration
""" ;
  rdfs:domain ac:AudioItem ;
  rdfs:range xsd:float .

ac:signalChannels a rdf:Property ;
  rdfs:label "signal channels" ;
  rdfs:comment """The number of channels the digital signal holds (mono → 1, stereo → 2). Shortcut for ac:encodes/ac:channels
""" ;
  rdfs:domain ac:AudioItem ;
  rdfs:range xsd:int .

ac:encodes a rdf:Property ;
  rdfs:label "encodes" ;
  rdfs:comment """Associates a MusicalItem (a track on a particular CD, an audio file, a stream somewhere) to the signal it encodes.
""" ;
  rdfs:domain ac:AudioItem ;
  rdfs:range ac:DigitalSignal .

ac:availableItemOf a rdf:Property ;
  rdfs:label "available item of" ;
  rdfs:comment """Relates an audio item (e.g., a media file) to the corresponding audio manifestation.
""" ;
  rdfs:domain ac:AudioItem ;
  rdfs:range ac:AudioManifestation ;
  rdfs:subPropertyOf <http://purl.org/vocab/frbr/core#exemplarOf> .

ac:signalAudioFeature a rdf:Property ;
  rdfs:label "signal audio feature" ;
  rdfs:comment """Associates the signal encoded by an audio item to an extracted audio feature. Shortcut for ac:encodes/ac:audioFeature
""" ;
  rdfs:domain ac:AudioItem ;
  rdfs:range <https://w3id.org/afo/onto/1.1#AudioFeature> .

ac:Syntesis a rdfs:Class ;
  rdfs:label "Syntesis" ;
  rdfs:comment "The act of synthesizing a signal." ;
  rdfs:subClassOf ac:SignalProduction .

ac:producedSignal a rdf:Property ;
  rdfs:label "produced signal" ;
  rdfs:comment "Associates a signal production event to the produced signal." ;
  rdfs:domain ac:SignalProduction ;
  rdfs:range ac:Signal .

ac:productionFrom a rdf:Property ;
  rdfs:label "production from" ;
  rdfs:comment """Associates a signal production act to a sound from which the signal was produced (e.g., if recording, the recorded sound).
""" ;
  rdfs:domain ac:SignalProduction ;
  rdfs:range ac:Sound .

<http://purl.org/ontology/mo/Recording> a rdfs:Class ;
  rdfs:subClassOf ac:Recording .

ac:recordingOf a rdf:Property ;
  rdfs:label "recording of" ;
  rdfs:comment "Associates a recording act to the recorded (physical) sound." ;
  rdfs:domain ac:Recording ;
  rdfs:range ac:Sound ;
  rdfs:subPropertyOf ac:productionFrom .

ac:AudioItem a rdfs:Class ;
  rdfs:label "Audio item" ;
  rdfs:comment """A concrete exemplar of an audio manifestation (e.g., a copy of a CD or a specific media file).
""" ;
  rdfs:subClassOf <http://purl.org/vocab/frbr/core#Item> .

ac:Signal a rdfs:Class ;
  rdfs:label "Signal" ;
  rdfs:comment """A subclass of AudioExpression, representing a signal, for example a master signal produced by a performance and a recording.
""" ;
  rdfs:subClassOf ac:AudioExpression .

<http://purl.org/NET/c4dm/event.owl#Event> a rdfs:Class .

ac:Recording a rdfs:Class ;
  rdfs:label "Recording" ;
  rdfs:comment "The act of recording some sound to produce a signal." ;
  rdfs:subClassOf ac:SignalProduction .

<http://purl.org/ontology/mo/Release> a rdfs:Class ;
  rdfs:subClassOf ac:AudioCollection .

<http://purl.org/ontology/mo/AnalogSignal> a rdfs:Class ;
  rdfs:subClassOf ac:AnalogSignal .

<http://purl.org/vocab/frbr/core#Expression> a rdfs:Class .

<http://purl.org/ontology/mo/Sound> a rdfs:Class ;
  rdfs:subClassOf ac:Sound .

ac:AudioPublication a rdfs:Class ;
  rdfs:label "Audio publication" ;
  rdfs:comment "The act of publishing some audio content as an audio manifestation." ;
  rdfs:subClassOf <http://purl.org/NET/c4dm/event.owl#Event> .

ac:publishedAudioManifestation a rdf:Property ;
  rdfs:label "published audio manifestation" ;
  rdfs:comment "Associates a publishing act to the audio manifestation." ;
  rdfs:domain ac:AudioPublication ;
  rdfs:range ac:AudioManifestation .

ac:AudioCollectionNonLastNode a rdfs:Class ;
  rdfs:label "Any node but the last" ;
  rdfs:comment "A node that is not the last in the containing audio collection" ;
  rdfs:subClassOf ac:AudioCollectionNode .

ac:nextNode a rdf:Property ;
  rdfs:label "next node" ;
  rdfs:comment "Associates a node with the next node in the collection." ;
  rdfs:domain ac:AudioCollectionNonLastNode ;
  rdfs:range ac:AudioCollectionNonFirstNode .

ac:AudioCollectionFirstNode a rdfs:Class ;
  rdfs:label "First node" ;
  rdfs:comment "A node that is the first in the containing audio collection" ;
  rdfs:subClassOf ac:AudioCollectionNode .

<http://web.resource.org/cc/Work> a rdfs:Class .

ac:AudioExpression a rdfs:Class ;
  rdfs:label "Audio expression" ;
  rdfs:comment """The specific intellectual or artistic form that a work takes each time it is \t“realized”, in the audio domain (e.g., the recording or synthesis of music or sounds).
""" ;
  rdfs:subClassOf <http://purl.org/vocab/frbr/core#Expression> .

ac:SignalProduction a rdfs:Class ;
  rdfs:label "Signal production" ;
  rdfs:comment """The act of producing a signal (e.g., through a recording or a synthesis).
""" ;
  rdfs:subClassOf <http://purl.org/NET/c4dm/event.owl#Event> .

<http://purl.org/ontology/mo/Track> a rdfs:Class ;
  rdfs:subClassOf ac:AudioClip .

ac:AudioFile a rdfs:Class ;
  rdfs:label "Audio file" ;
  rdfs:comment "A concrete audio file (encoded in some format)" ;
  rdfs:subClassOf ac:AudioItem , <http://www.ebu.ch/metadata/ontologies/ebucore/ebucore#MediaResource> .

ac:audioMd5 a rdf:Property ;
  rdfs:label "audio MD5 checksum" ;
  rdfs:comment """MD5 checksum computed on the audio content of the file.
""" ;
  rdfs:domain ac:AudioFile ;
  rdfs:range xsd:string .

<http://purl.org/ontology/mo/Record> a rdfs:Class ;
  rdfs:subClassOf ac:AudioCollection .

ac:AudioManifestation a rdfs:Class ;
  rdfs:label "Audio manifestation" ;
  rdfs:comment """The physical embodiment of an audio expression (e.g., a musical track, a sound, an album).
""" ;
  rdfs:subClassOf <http://purl.org/vocab/frbr/core#Manifestation> , <http://web.resource.org/cc/Work> .

ac:AudioCollectionLastNode a rdfs:Class ;
  rdfs:label "Last node" ;
  rdfs:comment "A node that is the last in the containing audio collection" ;
  rdfs:subClassOf ac:AudioCollectionNode .

<http://xmlns.com/foaf/0.1/Agent> a rdfs:Class .

ac:published a rdf:Property ;
  rdfs:label "published" ;
  rdfs:comment """Used to relate a person or a group of people who published an audio manifestation.
""" ;
  rdfs:domain <http://xmlns.com/foaf/0.1/Agent> ;
  rdfs:range ac:AudioManifestation .

ac:compiled a rdf:Property ;
  rdfs:label "compiled" ;
  rdfs:comment """Used to relate a person or a group of people who compiled an audio manifestation.
""" ;
  rdfs:domain <http://xmlns.com/foaf/0.1/Agent> ;
  rdfs:range ac:AudioManifestation .

ac:author a rdf:Property ;
  rdfs:label "author" ;
  rdfs:comment """Used to relate a person or a group of people who authored an audio manifestation.
""" ;
  rdfs:domain <http://xmlns.com/foaf/0.1/Agent> ;
  rdfs:range ac:AudioManifestation .

<http://purl.org/ontology/mo/DigitalSignal> a rdfs:Class ;
  rdfs:subClassOf ac:DigitalSignal .

<http://purl.org/ontology/mo/Signal> a rdfs:Class ;
  rdfs:subClassOf ac:Signal .

<http://purl.org/vocab/frbr/core#Concept> a rdfs:Class .

ac:AudioCollectionNode a rdfs:Class ;
  rdfs:label "Node" ;
  rdfs:comment """A node of an audio collection. It encapsulates the actual content (ac:nodeContent), the position in the collection (ac:nodeIndex), and links to the previous and following node in the collection (ac:previousNode and ac:nextNode).
""" ;
  rdfs:subClassOf rdf:List .

<http://xmlns.com/foaf/0.1/Image> a rdfs:Class .

<http://purl.org/ontology/mo/ReleaseEvent> a rdfs:Class ;
  rdfs:subClassOf ac:AudioPublication .

ac:AnalogSignal a rdfs:Class ;
  rdfs:label "Analog signal" ;
  rdfs:comment "An analog signal." ;
  rdfs:subClassOf ac:Signal .

<http://purl.org/ontology/mo/Genre> a rdfs:Class ;
  rdfs:subClassOf ac:AudioCategory .

<http://www.ebu.ch/metadata/ontologies/ebucore/ebucore#MediaResource> a rdfs:Class .

<http://purl.org/ontology/mo/Instrument> a rdfs:Class ;
  rdfs:subClassOf ac:AudioCategory .

<http://purl.org/ontology/mo/AudioFile> a rdfs:Class ;
  rdfs:subClassOf ac:AudioFile .

<https://w3id.org/linkml/Any> a rdfs:Class ;
  rdfs:comment "An unconstrained type or object" .

<http://www.ebu.ch/metadata/ontologies/ebucore/ebucore#Picture> a rdfs:Class .

<http://purl.org/ontology/mo/available_as> a rdf:Property ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf ac:availableAs .

<http://purl.org/ontology/mo/bitsPerSample> a rdf:Property ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf ac:bitsPerSample .

<http://purl.org/ontology/mo/channels> a rdf:Property ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf ac:channels .

<http://purl.org/ontology/mo/compiled> a rdf:Property ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf ac:compiled .

<http://purl.org/ontology/mo/duration> a rdf:Property ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf ac:duration .

<http://purl.org/ontology/mo/encodes> a rdf:Property ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf ac:encodes .

<http://purl.org/ontology/mo/genre> a rdf:Property ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf ac:audioCategory .

<http://purl.org/ontology/mo/homepage> a rdf:Property ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf ac:homepage .

<http://purl.org/ontology/mo/image> a rdf:Property ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf ac:image .

<http://purl.org/ontology/mo/instrument> a rdf:Property ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf ac:audioCategory .

<http://purl.org/ontology/mo/produced_signal> a rdf:Property ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf ac:producedSignal .

<http://purl.org/ontology/mo/publication_of> a rdf:Property ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf ac:publicationOf .

<http://purl.org/ontology/mo/published> a rdf:Property ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf ac:published .

<http://purl.org/ontology/mo/published_as> a rdf:Property ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf ac:publishedAs .

<http://purl.org/ontology/mo/recording_of> a rdf:Property ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf ac:recordingOf .

<http://purl.org/ontology/mo/release> a rdf:Property ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf ac:publishedAudioManifestation .

<http://purl.org/ontology/mo/sample_rate> a rdf:Property ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf ac:sampleRate .

<http://purl.org/vocab/frbr/core#embodiment> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

<http://purl.org/vocab/frbr/core#embodimentOf> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

<http://purl.org/vocab/frbr/core#exemplar> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

<http://purl.org/vocab/frbr/core#exemplarOf> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

<http://schema.org/subjectOf> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

<http://www.ebu.ch/metadata/ontologies/ebucore/ebucore#hasRelatedPicture> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

<http://xmlns.com/foaf/0.1/depiction> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

<http://xmlns.com/foaf/0.1/isPrimaryTopicOf> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

ac:audioCategory a rdf:Property ;
  rdfs:label "is in audio category" ;
  rdfs:comment "Classify a piece of audio content in a category." ;
  rdfs:range ac:AudioCategory .

ac:duration a rdf:Property ;
  rdfs:label "duration" ;
  rdfs:comment "The duration of an audio clip or a signal in ms." ;
  rdfs:range xsd:float .

ac:homepage a rdf:Property ;
  rdfs:label "homepage" ;
  rdfs:comment """Links a sound, an artist, a record, etc. to a corresponding webpage.
""" ;
  rdfs:range <http://xmlns.com/foaf/0.1/Document> ;
  rdfs:subPropertyOf <http://xmlns.com/foaf/0.1/isPrimaryTopicOf> , <http://schema.org/subjectOf> .

ac:image a rdf:Property ;
  rdfs:label "image" ;
  rdfs:comment """Indicates a pictorial image (JPEG, GIF, PNG, Etc.) associated to a sound, an artist, a record, etc.
""" ;
  rdfs:range <http://xmlns.com/foaf/0.1/Image> ;
  rdfs:subPropertyOf <http://xmlns.com/foaf/0.1/depiction> , <http://www.ebu.ch/metadata/ontologies/ebucore/ebucore#hasRelatedPicture> .
