@prefix dc: .
@prefix dct: .
@prefix foaf: .
@prefix mo: .
@prefix owl: .
@prefix rdf: .
@prefix rdfs: .
@prefix xsd: .
@prefix n0: .
@prefix n1: .
@prefix v: .
@prefix core: .
@prefix n2: .
@prefix ebu: .
@prefix cc: .
@prefix eve: .
@prefix schem: .
mo:AnalogSignal rdfs:subClassOf n0:AnalogSignal.
mo:AudioFile rdfs:subClassOf n0:AudioFile.
mo:available_as rdfs:subPropertyOf n0:availableAs.
mo:bitsPerSample rdfs:subPropertyOf n0:bitsPerSample.
mo:channels rdfs:subPropertyOf n0:channels.
mo:compiled rdfs:subPropertyOf n0:compiled.
mo:DigitalSignal rdfs:subClassOf n0:DigitalSignal.
mo:duration rdfs:subPropertyOf n0:duration.
mo:encodes rdfs:subPropertyOf n0:encodes.
mo:genre rdfs:subPropertyOf n0:audioCategory.
mo:Genre rdfs:subClassOf n0:AudioCategory.
mo:homepage rdfs:subPropertyOf n0:homepage.
mo:image rdfs:subPropertyOf n0:image.
mo:Instrument rdfs:subClassOf n0:AudioCategory.
mo:MusicalExpression rdfs:subClassOf n0:AudioExpression.
mo:MusicalItem rdfs:subClassOf n0:AudioItem.
mo:MusicalManifestation rdfs:subClassOf n0:AudioManifestation.
mo:produced_signal rdfs:subPropertyOf n0:producedSignal.
mo:publication_of rdfs:subPropertyOf n0:publicationOf.
mo:published rdfs:subPropertyOf n0:published.
mo:published_as rdfs:subPropertyOf n0:publishedAs.
mo:Record rdfs:subClassOf n0:AudioCollection.
mo:Recording rdfs:subClassOf n0:Recording.
mo:recording_of rdfs:subPropertyOf n0:recordingOf.
mo:release rdfs:subPropertyOf n0:publishedAudioManifestation.
mo:Release rdfs:subClassOf n0:AudioCollection.
mo:ReleaseEvent rdfs:subClassOf n0:AudioPublication.
mo:sample_rate rdfs:subPropertyOf n0:sampleRate.
mo:Signal rdfs:subClassOf n0:Signal.
mo:Sound rdfs:subClassOf n0:Sound.
mo:Track rdfs:subClassOf n0:AudioClip.
n1:aco
a owl:Ontology;
dc:description
"""The Audio Commons Ontology has been created in the context of the European project [Audio Commons](https://www.audiocommons.org/), which were aimed at favouring sharing and reuse of audio content (both of musical and non-musical nature), specially using [Creative Commons](https://creativecommons.org/) licenses.
It is designed specifically to integrate access to multiple heterogeneously structured audio content providers. In particular the following ones have been considered in the project:
- [Freesound](https://freesound.org/), a collaborative database of Creative Commons Licensed sounds;
- [Jamendo](https://www.jamendo.com/), a music website for independent artists;
- [Europeana Sounds](https://www.eusounds.eu/), a European project collecting and sharing data from several archives of sounds and sound-related media;
- [Internet Archive](https://archive.org/), a non-profit library of millions of freely accessible media contents.
### The base model

The Audio Commons ontology is based on [Functional Requirements for Bibliographic Records (FRBR)](https://en.wikipedia.org/wiki/Functional_Requirements_for_Bibliographic_Records), a bibliographic model designed for user tasks of retrieval and access in online library catalogues and bibliographic databases. FRBR distinguish the products of intellectual or artistic endeavor in four main classes: work, expression, manifestation, item. It is available as RDF vocabulary at https://vocab.org/frbr/core. For further information on FRBR, check the [standard](https://repository.ifla.org/handle/123456789/811).
Another important model related to audio is the [Music Ontology](http://musicontology.com/), which is also based on the FRBR model. Our ontology is more generic than the Music Ontology but is interoperable with it to support the specificities of music-related audio content.
The Audio Commons ontology works also in conjunction with
- [Dublin Core](https://www.dublincore.org/specifications/dublin-core/dcmi-terms/) for basic metadata,
- [EBU Core](https://www.ebu.ch/metadata/ontologies/ebucore/) for technical properties of audio files,
- [SKOS](https://www.w3.org/TR/skos-primer/) to support taxonomic classifications,
- [Creative Commons Licensing schema](https://creativecommons.org/ns) to represent media licensing,
- [Event ontology](http://motools.sf.net/event/event.html) for the formalisation of events,
- [Audio Features Ontology](https://w3id.org/afo/onto/) for the characterisation of audio features.
### Ontology overview

The figure above shows the most general classes and properties of the Audio Commons ontology and their relationship with classes of the FRBR and the Music Ontology:
- **`ac:AudioExpression`**, the specific intellectual or artistic form that a work takes each time it is _realised_, in the audio domain, e.g., the recording or synthesis of music or sounds;
- **`ac:AudioManifestation`**, the physical embodiment of an audio expression, e.g., a musical track, a sound, an album;
- **`ac:AudioItem`**, a single exemplar of an audio manifestation, e.g., a copy of a CD or a specific media file.
The FRBR class Work, representing a distinct intellectual or artistic creation on a more conceptual level, has not been specialised in Audio Commons.
The Audio Commons ontology provides a generic schema for audio classification through the property **`ac:audioCategory`** that associates any audio expression, manifestation, or item to some generic **`ac:AudioCategory`**. These two terms can be specialised to provide spefic categorisations.
### Manifestations: audio clips and collections

The figure above shows classes and properties related to audio manifestations. An instance of **`ac:AudioClip`**, a subclass of `ac:AudioManifestation`, is any audio segment that has been published in some form or uploaded for consumption, for example, a track in a music label's repository or a sound in an audio repository, library or archive.
The class **`ac:AudioCollection`**, another subclass of `ac:AudioManifestation`, is used to represent collections of audio clips. The class **`ac:AudioCollectionNode`** is used to represent single nodes of a collection, offering local information like the index in the collection and pointers to previous and next nodes. The separation between the collection node and its actual content (e.g., an `ac:AudioClip`) permits the same content to be shared in multiple collections.
The content of each node of a collection is not limited to an `ac:AudioClip`, but may contain any `ac:AudioManifestation`. Collections can thus contain other collections to support specific cases, e.g. a mapping to the Music Ontology model where an `mo:Release` can contain multiple `mo:Record`(s) that can in turn contain multiple `mo:Track`(s).
### Items: audio files

An `ac:AudioItem` is a concrete exemplar of an audio manifestation. In our domain, the main exemplars are the actual audio files.
The corresponding class **`ac:AudioFile`** is a subclass of `ac:AudioItem`. It is subclass of `ebu:MediaResource` too and the corresponging properties of EBU Core can be used to describe the file (e.g., `ebu:hasEncodingFormat`, `ebu:fileSize`).
### Expressions: audio signals

While `ac:AudioFile` represents a concrete file encoded in a certain format, **`ac:DigitalSignal`** is the representation of the corresponding digital signal. `ac:DigitalSignal` is a subclass of `ac:MusicalExpression`.
The data properties `ac:sampleRate`, `ac:bitsPerSample`, and `ac:channels`, associate a signal with its basic features specific to digital representations.
The property `ac:publicationOf` can be used to associate an `ac:AudioClip` with the corresponding digital signal. The property `ac:encodes` instead, associates an `ac:AudioFile` with the encoded digital signal.
### Events: recording/syntesis

The description of temporal events is crucial to formalise and document transitions in the workflow of audio production and publication. The class `event:Event` of the Event Ontology is thus specialised for specific actions that are interesting for the audio domain.
Using the `event:Event` class, details of an event such as its location in time and space, its factor and its products may be explicitly described. Moreover, events can be composed using the property `event:sub_event`, to build complex events.
The class `ac:SignalProduction` represents the act of producing a `ac:Signal`, which could be either an `ac:AnalogSignal` or a `ac:DigitalSignal`. This is complemented by **`ac:Recording`**, representing the process of recording a sound (`ac:Sound`) or the product of **`ac:Synthesis`**, in case of artificially generated sounds.
### Events (continued): publication

The event **`ac:AudioPublication`** represents the public release of a piece of work, e.g., the release of a new album by a band.
### Usage Example

The figure above shows an example of use of the Audio Commons ontology to represent a sound from the Freesound database. For simplicity only the classes `ac:AudioClip`, `ac:AudioFile`, and `ac:AudioCategory` are used in this case.
""";
dct:created "2017/07/27 11:09:00";
dct:date "2017/07/27 11:09:00";
dct:description
"""The Audio Commons Ontology provides classes and properties for describing audio content, both musical and non-musical, on the Semantic Web. It is a specialisation of a bibliographic model called Functional Requirements for Bibliographic Records (FRBR). Furthermore, it contains the generalisation of some concepts from the Music Ontology.
""";
dct:title "The Audio Commons Ontology";
v:preferredNamespacePrefix "ac";
v:preferredNamespaceUri "https://w3id.org/ac-ontology/aco#";
rdfs:comment
"""The Audio Commons Ontology provides classes and properties for describing audio content, both musical and non-musical, on the Semantic Web. It is a specialisation of a bibliographic model called [Functional Requirements for Bibliographic Records (FRBR)](https://en.wikipedia.org/wiki/Functional_Requirements_for_Bibliographic_Records). Furthermore, it contains the generalisation of some concepts from the [Music Ontology](http://musicontology.com/).
""";
owl:versionInfo "Revision: 1.3.0";
foaf:maker , .
n0:AnalogSignal
a owl:Class;
rdfs:comment "An analog signal.";
rdfs:isDefinedBy n1:aco;
rdfs:label "Analog signal";
rdfs:subClassOf n0:Signal;
owl:disjointWith n0:DigitalSignal.
n0:audioCategory
a owl:ObjectProperty;
rdfs:comment "Classify some audio-related thing in a category.";
rdfs:domain owl:Thing;
rdfs:isDefinedBy n1:aco;
rdfs:label "is in audio category";
rdfs:range n0:AudioCategory.
n0:AudioCategory
a owl:Class;
rdfs:comment "Any category that is used to classify audio content.";
rdfs:isDefinedBy n1:aco;
rdfs:label "Audio category";
rdfs:subClassOf core:Concept.
n0:AudioClip
a owl:Class;
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:isDefinedBy n1:aco;
rdfs:label "Audio clip";
rdfs:subClassOf n0:AudioManifestation.
n0:AudioCollection
a owl:Class;
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:isDefinedBy n1:aco;
rdfs:label "Audio collection";
rdfs:subClassOf
n0:AudioManifestation,
[
a owl:Restriction;
owl:cardinality "1"^^xsd:nonNegativeInteger;
owl:onProperty n0:firstNode
],
[
a owl:Restriction;
owl:cardinality "1"^^xsd:nonNegativeInteger;
owl:onProperty n0:lastNode
].
n0:AudioCollectionFirstNode
a owl:Class;
rdfs:comment "A node that is the first in the containing audio collection";
rdfs:isDefinedBy n1:aco;
rdfs:label "First node";
rdfs:subClassOf
n0:AudioCollectionNode,
[
a owl:Restriction;
owl:cardinality "1"^^xsd:nonNegativeInteger;
owl:onProperty [ owl:inverseOf n0:firstNode ]
].
n0:AudioCollectionLastNode
a owl:Class;
rdfs:comment "A node that is the last in the containing audio collection";
rdfs:isDefinedBy n1:aco;
rdfs:label "Last node";
rdfs:subClassOf
n0:AudioCollectionNode,
[
a owl:Restriction;
owl:cardinality "1"^^xsd:nonNegativeInteger;
owl:onProperty [ owl:inverseOf n0:lastNode ]
],
[ a owl:Restriction; owl:hasValue "rdf:nil"; owl:onProperty rdf:rest ].
n0:AudioCollectionNode
a owl:Class;
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:isDefinedBy n1:aco;
rdfs:label "Node";
rdfs:subClassOf
rdf:List,
[
a owl:Restriction;
owl:allValuesFrom n0:AudioManifestation;
owl:onProperty rdf:first
],
[
a owl:Restriction;
owl:cardinality "1"^^xsd:nonNegativeInteger;
owl:onProperty rdf:first
],
[
a owl:Restriction;
owl:cardinality "1"^^xsd:nonNegativeInteger;
owl:onProperty rdf:rest
],
[
a owl:Restriction;
owl:cardinality "1"^^xsd:nonNegativeInteger;
owl:onProperty n0:nodeContent
],
[
a owl:Restriction;
owl:cardinality "1"^^xsd:nonNegativeInteger;
owl:onProperty n0:nodeIndex
];
owl:disjointUnionOf
[
rdf:first n0:AudioCollectionFirstNode;
rdf:rest
[ rdf:first n0:AudioCollectionNonFirstNode; rdf:rest rdf:nil ]
],
[
rdf:first n0:AudioCollectionLastNode;
rdf:rest
[ rdf:first n0:AudioCollectionNonLastNode; rdf:rest rdf:nil ]
];
owl:disjointWith rdf:nil.
n0:AudioCollectionNonFirstNode
a owl:Class;
rdfs:comment
"A node that is not the first in the containing audio collection";
rdfs:isDefinedBy n1:aco;
rdfs:label "Any node but the first";
rdfs:subClassOf
n0:AudioCollectionNode,
[
a owl:Restriction;
owl:cardinality "1"^^xsd:nonNegativeInteger;
owl:onProperty n0:previousNode
].
n0:AudioCollectionNonLastNode
a owl:Class;
rdfs:comment
"A node that is not the last in the containing audio collection";
rdfs:isDefinedBy n1:aco;
rdfs:label "Any node but the last";
rdfs:subClassOf
n0:AudioCollectionNode,
[
a owl:Restriction;
owl:cardinality "1"^^xsd:nonNegativeInteger;
owl:onProperty n0:nextNode
].
n0:AudioExpression
a owl:Class;
rdfs:comment
"""The specific intellectual or artistic form that a work takes each time it is \u201crealized\u201d, in the audio domain (e.g., the recording or synthesis of music or sounds).
""";
rdfs:isDefinedBy n1:aco;
rdfs:label "Audio expression";
rdfs:subClassOf core:Expression.
n0:audioFeature
a owl:ObjectProperty;
rdfs:comment "Associates a signal to an extracted audio feature.";
rdfs:domain n0:Signal;
rdfs:isDefinedBy n1:aco;
rdfs:label "audio feature";
rdfs:range n2:AudioFeature;
owl:propertyChainAxiom
[
rdf:first n0:isEncodedBy;
rdf:rest [ rdf:first n0:signalAudioFeature; rdf:rest rdf:nil ]
].
n0:AudioFile
a owl:Class;
rdfs:comment "A concrete audio file (encoded in some format)";
rdfs:isDefinedBy n1:aco;
rdfs:label "Audio file";
rdfs:subClassOf ebu:MediaResource, n0:AudioItem.
n0:AudioItem
a owl:Class;
rdfs:comment
"""A concrete exemplar of an audio manifestation (e.g., a copy of a CD or a specific media file).
""";
rdfs:isDefinedBy n1:aco;
rdfs:label "Audio item";
rdfs:subClassOf core:Item.
n0:AudioManifestation
a owl:Class;
rdfs:comment
"""The physical embodiment of an audio expression (e.g., a musical track, a sound, an album).
""";
rdfs:isDefinedBy n1:aco;
rdfs:label "Audio manifestation";
rdfs:subClassOf core:Manifestation, cc:Work.
n0:audioMd5
a owl:DatatypeProperty, owl:FunctionalProperty;
rdfs:comment
"""MD5 checksum computed on the audio content of the file.
""";
rdfs:domain n0:AudioFile;
rdfs:isDefinedBy n1:aco;
rdfs:label "audio MD5 checksum";
rdfs:range xsd:string.
n0:AudioPublication
a owl:Class;
rdfs:comment
"The act of publishing some audio content as an audio manifestation.";
rdfs:isDefinedBy n1:aco;
rdfs:label "Audio publication";
rdfs:subClassOf eve:Event.
n0:author
a owl:ObjectProperty;
rdfs:comment
"""Used to relate a person or a group of people who authored an audio manifestation.
""";
rdfs:domain foaf:Agent;
rdfs:isDefinedBy n1:aco;
rdfs:label "author";
rdfs:range n0:AudioManifestation.
n0:availableAs
a owl:ObjectProperty;
rdfs:comment
"""Relates an audio manifestation to an audio item (e.g., a media file).
""";
rdfs:domain n0:AudioManifestation;
rdfs:isDefinedBy n1:aco;
rdfs:label "available as";
rdfs:range n0:AudioItem;
rdfs:subPropertyOf core:exemplar.
n0:availableItemOf
a owl:ObjectProperty;
rdfs:comment
"""Relates an audio item (e.g., a media file) to the corresponding audio manifestation.
""";
rdfs:domain n0:AudioItem;
rdfs:isDefinedBy n1:aco;
rdfs:label "available item of";
rdfs:range n0:AudioManifestation;
rdfs:subPropertyOf core:exemplarOf;
owl:inverseOf n0:availableAs.
n0:bitsPerSample
a owl:DatatypeProperty, owl:FunctionalProperty;
rdfs:comment
"""Associates a digital signal to the number of bits used to encode one sample.
""";
rdfs:domain n0:DigitalSignal;
rdfs:isDefinedBy n1:aco;
rdfs:label "bits per sample";
rdfs:range xsd:int.
n0:channels
a owl:DatatypeProperty, owl:FunctionalProperty;
rdfs:comment
"""Associates a signal to the number of channels it holds (mono \u2192 1, stereo \u2192 2).
""";
rdfs:domain n0:DigitalSignal;
rdfs:isDefinedBy n1:aco;
rdfs:label "channels";
rdfs:range xsd:int;
owl:propertyChainAxiom
[
rdf:first n0:isEncodedBy;
rdf:rest [ rdf:first n0:signalChannels; rdf:rest rdf:nil ]
].
n0:collectionAsList
a owl:FunctionalProperty, owl:ObjectProperty;
rdfs:comment
"Convenience alias of ac:firstNode to attache an ac:AudioCollection to an rdf:List that holds the members";
rdfs:domain n0:AudioCollection;
rdfs:isDefinedBy n1:aco;
rdfs:label "collection as list";
rdfs:range rdf:List;
owl:equivalentProperty n0:firstNode.
n0:compiled
a owl:ObjectProperty;
rdfs:comment
"""Used to relate a person or a group of people who compiled an audio manifestation.
""";
rdfs:domain foaf:Agent;
rdfs:isDefinedBy n1:aco;
rdfs:label "compiled";
rdfs:range n0:AudioManifestation.
n0:containerNode
a owl:ObjectProperty;
rdfs:comment
"Associates an audio manifestation with the collection nodes that contain it.";
rdfs:domain n0:AudioManifestation;
rdfs:isDefinedBy n1:aco;
rdfs:label "container node";
rdfs:range n0:AudioCollectionNode;
owl:inverseOf n0:nodeContent.
n0:defaultContainerNode
a owl:FunctionalProperty, owl:ObjectProperty;
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 n0:AudioManifestation;
rdfs:isDefinedBy n1:aco;
rdfs:label "default container node";
rdfs:range n0:AudioCollectionNode;
rdfs:subPropertyOf n0:containerNode.
n0:DigitalSignal
a owl:Class;
rdfs:comment "A digital signal.";
rdfs:isDefinedBy n1:aco;
rdfs:label "Digital signal";
rdfs:subClassOf n0:Signal;
owl:disjointWith n0:AnalogSignal.
n0:duration
a owl:DatatypeProperty, owl:FunctionalProperty;
rdfs:comment "The duration of an audio clip or a signal in ms.";
rdfs:domain
[
a owl:Class;
owl:unionOf
[
rdf:first n0:AudioClip;
rdf:rest [ rdf:first n0:Signal; rdf:rest rdf:nil ]
]
];
rdfs:isDefinedBy n1:aco;
rdfs:label "duration";
rdfs:range xsd:float;
owl:propertyChainAxiom
[
rdf:first n0:isEncodedBy;
rdf:rest [ rdf:first n0:signalDuration; rdf:rest rdf:nil ]
].
n0:encodes
a owl:FunctionalProperty, owl:ObjectProperty;
rdfs:comment
"""Associates a MusicalItem (a track on a particular CD, an audio file, a stream somewhere) to the signal it encodes.
""";
rdfs:domain n0:AudioItem;
rdfs:isDefinedBy n1:aco;
rdfs:label "encodes";
rdfs:range n0:DigitalSignal.
n0:firstNode
a owl:FunctionalProperty, owl:ObjectProperty;
rdfs:comment "Associates an audio collection to its first node.";
rdfs:domain n0:AudioCollection;
rdfs:isDefinedBy n1:aco;
rdfs:label "first node";
rdfs:range n0:AudioCollectionFirstNode;
rdfs:subPropertyOf n0:memberNode.
n0:homepage
a owl:ObjectProperty;
rdfs:comment
"""Links a sound, an artist, a record, etc. to a corresponding webpage.
""";
rdfs:domain owl:Thing;
rdfs:isDefinedBy n1:aco;
rdfs:label "homepage";
rdfs:range foaf:Document;
rdfs:subPropertyOf foaf:isPrimaryTopicOf, schem:subjectOf.
n0:image
a owl:ObjectProperty;
rdfs:comment
"""Indicates a pictorial image (JPEG, GIF, PNG, Etc.) associated to a sound, an artist, a record, etc.
""";
rdfs:domain owl:Thing;
rdfs:isDefinedBy n1:aco;
rdfs:label "image";
rdfs:range ebu:Picture, foaf:Image;
rdfs:subPropertyOf ebu:hasRelatedPicture, foaf:depiction.
n0:isEncodedBy
a owl:ObjectProperty;
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 n0:DigitalSignal;
rdfs:isDefinedBy n1:aco;
rdfs:label "is encoded by";
rdfs:range n0:AudioItem;
owl:inverseOf n0:encodes.
n0:lastNode
a owl:FunctionalProperty, owl:ObjectProperty;
rdfs:comment "Associates an audio collection to its last node.";
rdfs:domain n0:AudioCollection;
rdfs:isDefinedBy n1:aco;
rdfs:label "last node";
rdfs:range n0:AudioCollectionLastNode;
rdfs:subPropertyOf n0:memberNode.
n0:memberNode
a owl:InverseFunctionalProperty, owl:ObjectProperty;
rdfs:comment "Associates an audio collection to its nodes.";
rdfs:domain n0:AudioCollection;
rdfs:isDefinedBy n1:aco;
rdfs:label "member node";
rdfs:range n0:AudioCollectionNode;
owl:propertyChainAxiom
[
rdf:first n0:memberNode;
rdf:rest [ rdf:first n0:nextNode; rdf:rest rdf:nil ]
].
n0:nextNode
a owl:FunctionalProperty, owl:ObjectProperty;
rdfs:comment "Associates a node with the next node in the collection.";
rdfs:domain n0:AudioCollectionNonLastNode;
rdfs:isDefinedBy n1:aco;
rdfs:label "next node";
rdfs:range n0:AudioCollectionNonFirstNode;
rdfs:subPropertyOf rdf:rest;
owl:inverseOf n0:previousNode.
n0:nodeContent
a owl:FunctionalProperty, owl:ObjectProperty;
rdfs:comment
"Associates a node with the actual content (an audio manifestation).";
rdfs:domain n0:AudioCollectionNode;
rdfs:isDefinedBy n1:aco;
rdfs:label "node content";
rdfs:range n0:AudioManifestation;
rdfs:subPropertyOf rdf:first.
n0:nodeIndex
a owl:DatatypeProperty, owl:FunctionalProperty;
rdfs:comment "Associates a node with its position in the collection.";
rdfs:domain n0:AudioCollectionNode;
rdfs:isDefinedBy n1:aco;
rdfs:label "node index";
rdfs:range xsd:int.
n0:originalFile
a owl:FunctionalProperty, owl:ObjectProperty;
rdfs:comment
"""Relates an audio clip to the original published audio file (if there is such thing).
""";
rdfs:domain n0:AudioClip;
rdfs:isDefinedBy n1:aco;
rdfs:label "original file";
rdfs:range n0:AudioFile;
rdfs:subPropertyOf n0:availableAs.
n0:previousNode
a owl:FunctionalProperty, owl:ObjectProperty;
rdfs:comment "Associates a node with the previous node in the collection.";
rdfs:domain n0:AudioCollectionNonFirstNode;
rdfs:isDefinedBy n1:aco;
rdfs:label "previous node";
rdfs:range n0:AudioCollectionNonLastNode;
owl:inverseOf n0:nextNode.
n0:producedSignal
a owl:ObjectProperty;
rdfs:comment "Associates a signal production event to the produced signal.";
rdfs:domain n0:SignalProduction;
rdfs:isDefinedBy n1:aco;
rdfs:label "produced signal";
rdfs:range n0:Signal.
n0:productionFrom
a owl:ObjectProperty;
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 n0:SignalProduction;
rdfs:isDefinedBy n1:aco;
rdfs:label "production from";
rdfs:range n0:Sound.
n0:publicationOf
a owl:ObjectProperty;
rdfs:comment
"""Link a particular manifestation to the related expression (e.g., a signal or a sound).
""";
rdfs:domain n0:AudioManifestation;
rdfs:isDefinedBy n1:aco;
rdfs:label "publication of";
rdfs:range n0:AudioExpression;
rdfs:subPropertyOf core:embodimentOf.
n0:published
a owl:ObjectProperty;
rdfs:comment
"""Used to relate a person or a group of people who published an audio manifestation.
""";
rdfs:domain foaf:Agent;
rdfs:isDefinedBy n1:aco;
rdfs:label "published";
rdfs:range n0:AudioManifestation.
n0:publishedAs
a owl:ObjectProperty;
rdfs:comment
"""Link an expression to its publication as manifestation.
""";
rdfs:domain n0:AudioExpression;
rdfs:isDefinedBy n1:aco;
rdfs:label "published as";
rdfs:range n0:AudioManifestation;
rdfs:subPropertyOf core:embodiment;
owl:inverseOf n0:publicationOf.
n0:publishedAudioManifestation
a owl:ObjectProperty;
rdfs:comment "Associates a publishing act to the audio manifestation.";
rdfs:domain n0:AudioPublication;
rdfs:isDefinedBy n1:aco;
rdfs:label "published audio manifestation";
rdfs:range n0:AudioManifestation.
n0:Recording
a owl:Class;
rdfs:comment "The act of recording some sound to produce a signal.";
rdfs:isDefinedBy n1:aco;
rdfs:label "Recording";
rdfs:subClassOf n0:SignalProduction.
n0:recordingOf
a owl:ObjectProperty;
rdfs:comment "Associates a recording act to the recorded (physical) sound.";
rdfs:domain n0:Recording;
rdfs:isDefinedBy n1:aco;
rdfs:label "recording of";
rdfs:range n0:Sound;
rdfs:subPropertyOf n0:productionFrom.
n0:sampleRate
a owl:DatatypeProperty, owl:FunctionalProperty;
rdfs:comment "Associates a digital signal to its sample rate.";
rdfs:domain n0:DigitalSignal;
rdfs:isDefinedBy n1:aco;
rdfs:label "sample rate";
rdfs:range xsd:float;
owl:propertyChainAxiom
[
rdf:first n0:isEncodedBy;
rdf:rest [ rdf:first n0:signalSampleRate; rdf:rest rdf:nil ]
].
n0:Signal
a owl:Class;
rdfs:comment
"""A subclass of AudioExpression, representing a signal, for example a master signal produced by a performance and a recording.
""";
rdfs:isDefinedBy n1:aco;
rdfs:label "Signal";
rdfs:subClassOf n0:AudioExpression.
n0:signalAudioFeature
a owl:ObjectProperty;
rdfs:comment
"""Associates the signal encoded by an audio item to an extracted audio feature. Shortcut for ac:encodes/ac:audioFeature
""";
rdfs:domain
n0:AudioItem,
[
a owl:Restriction;
owl:cardinality "1"^^xsd:nonNegativeInteger;
owl:onProperty n0:encodes
];
rdfs:isDefinedBy n1:aco;
rdfs:label "signal audio feature";
rdfs:range n2:AudioFeature;
owl:propertyChainAxiom
[
rdf:first n0:encodes;
rdf:rest [ rdf:first n0:audioFeature; rdf:rest rdf:nil ]
].
n0:signalChannels
a owl:DatatypeProperty, owl:FunctionalProperty;
rdfs:comment
"""The number of channels the digital signal holds (mono \u2192 1, stereo \u2192 2). Shortcut for ac:encodes/ac:channels
""";
rdfs:domain
n0:AudioItem,
[
a owl:Restriction;
owl:cardinality "1"^^xsd:nonNegativeInteger;
owl:onProperty n0:encodes
];
rdfs:isDefinedBy n1:aco;
rdfs:label "signal channels";
rdfs:range xsd:int;
owl:propertyChainAxiom
[
rdf:first n0:encodes;
rdf:rest [ rdf:first n0:channels; rdf:rest rdf:nil ]
].
n0:signalDuration
a owl:DatatypeProperty, owl:FunctionalProperty;
rdfs:comment
"""The duration of the signal in ms. Shortcut for ac:encodes/ac:duration
""";
rdfs:domain
n0:AudioItem,
[
a owl:Restriction;
owl:cardinality "1"^^xsd:nonNegativeInteger;
owl:onProperty n0:encodes
];
rdfs:isDefinedBy n1:aco;
rdfs:label "signal duration";
rdfs:range xsd:float;
owl:propertyChainAxiom
[
rdf:first n0:encodes;
rdf:rest [ rdf:first n0:duration; rdf:rest rdf:nil ]
].
n0:SignalProduction
a owl:Class;
rdfs:comment
"""The act of producing a signal (e.g., through a recording or a synthesis).
""";
rdfs:isDefinedBy n1:aco;
rdfs:label "Signal production";
rdfs:subClassOf eve:Event.
n0:signalSampleRate
a owl:DatatypeProperty, owl:FunctionalProperty;
rdfs:comment
"""The sample rate of the digital signal. Shortcut for ac:encodes/ac:sampleRate
""";
rdfs:domain
n0:AudioItem,
[
a owl:Restriction;
owl:cardinality "1"^^xsd:nonNegativeInteger;
owl:onProperty n0:encodes
];
rdfs:isDefinedBy n1:aco;
rdfs:label "signal sample rate";
rdfs:range xsd:float;
owl:propertyChainAxiom
[
rdf:first n0:encodes;
rdf:rest [ rdf:first n0:sampleRate; rdf:rest rdf:nil ]
].
n0:Sound
a owl:Class;
rdfs:comment
"A subclass of AudioExpression, representing a (physical) sound.";
rdfs:isDefinedBy n1:aco;
rdfs:label "Physical sound";
rdfs:subClassOf n0:AudioExpression.
n0:Syntesis
a owl:Class;
rdfs:comment "The act of synthesizing a signal.";
rdfs:isDefinedBy n1:aco;
rdfs:label "Syntesis";
rdfs:subClassOf n0:SignalProduction.
rdfs:label "George Fazekas"; foaf:name "George Fazekas".
rdfs:label "Miguel Ceriani"; foaf:name "Miguel Ceriani".