cannam@135: @prefix owl: . cannam@135: @prefix rdf: . cannam@135: @prefix rdfs: . cannam@135: @prefix xsd: . cannam@135: @prefix foaf: . cannam@135: @prefix vs: . cannam@135: @prefix list: . cannam@135: @prefix dc: . cannam@135: @prefix mo: . cannam@135: @prefix event: . cannam@135: @prefix af: . cannam@135: @prefix tl: . cannam@135: @prefix vamp: . cannam@135: @prefix : <> . cannam@135: cannam@135: <> cannam@135: a owl:Ontology; cannam@135: dc:title "Vamp Plugins Ontology"; cannam@135: rdfs:label "Vamp Plugins Ontology"; cannam@135: rdfs:comment """ cannam@135: added comments from Cannam cannam@135: """; cannam@135: foaf:maker "Chris Cannam"; cannam@135: foaf:maker "Chris Sutton"; cannam@135: foaf:maker "Yves Raimond"; cannam@135: foaf:maker "David Pastor Escuredo"; cannam@135: dc:date "$Date: 2008/05/21 17:05:11 $"; cannam@135: . cannam@135: cannam@135: vs:term_status a owl:AnnotationProperty. cannam@135: cannam@135: #Authors foaf cannam@135: cannam@135: ############################################# cannam@135: # Part 1: Classes to describe the plugin cannam@135: ############################################# cannam@135: cannam@135: #Note: we don't include Feature concept because we rely on the Audio Feature ontology cannam@135: #Note: we additionaly define a PluginTransform concept to link the running context cannam@135: cannam@135: vamp:Plugin cannam@135: a owl:Class; cannam@135: rdfs:label "Vamp Plugin"; cannam@135: rdfs:comment """ cannam@135: Vamp plugin is an implementation of a feature extraction algorithm based on the Vamp API. cannam@135: """; cannam@135: vs:term_status "stable"; cannam@135: . cannam@135: cannam@135: vamp:PluginLibrary cannam@135: a owl:Class; cannam@135: rdfs:label "Vamp Plugin Library"; cannam@135: rdfs:comment """ cannam@135: Library of Vamp Plugins cannam@135: """; cannam@135: vs:term_status "stable"; cannam@135: . cannam@135: cannam@135: vamp:PluginDescription cannam@135: a owl:Class; cannam@135: rdfs:label "Vamp Plugin Descriptor"; cannam@135: rdfs:comment """ cannam@135: The plugin descriptor provides basic metadata of the plugin. We may remove this and link directly to the plugin instance cannam@135: """; cannam@135: vs:term_status "unstable"; cannam@135: . cannam@135: cannam@135: vamp:ParameterDescriptor cannam@135: a owl:Class; cannam@135: rdfs:label "Vamp Plugin Parameter Descriptor"; cannam@135: rdfs:comment """ cannam@135: Descriptior of a plugin parameter cannam@135: """; cannam@135: vs:term_status "stable"; cannam@135: . cannam@135: cannam@135: vamp:PluginOutput cannam@135: a owl:Class; cannam@135: rdfs:label "Vamp Plugin output descriptor"; cannam@135: rdfs:comment """ cannam@135: Descriptior of the plugin output. This descriptor provides necessary information to interpret correctly the output features. cannam@135: Each plugin will be bound to one of the subclasses. cannam@135: """; cannam@135: vs:term_status "unstable"; cannam@135: . cannam@135: cannam@135: vamp:DenseOutput cannam@135: a owl:Class; cannam@135: rdfs:subClassOf vamp:PluginOutput; cannam@135: rdfs:comment """ cannam@135: Large binary data as output. cannam@135: """; cannam@135: vs:term_status "unstable"; cannam@135: . cannam@135: cannam@135: vamp:SparseOutput cannam@135: a owl:Class; cannam@135: rdfs:subClassOf vamp:PluginOutput; cannam@135: rdfs:comment """ cannam@135: The output defines events with no large data associated. cannam@135: """; cannam@135: vs:term_status "unstable"; cannam@135: . cannam@135: cannam@135: vamp:TrackLevelOutput cannam@135: a owl:Class; cannam@135: rdfs:subClassOf vamp:PluginOutput; cannam@135: rdfs:comment """ cannam@135: We obtain track metadata? cannam@135: """; cannam@135: vs:term_status "unstable"; cannam@135: . cannam@135: cannam@135: vamp:PluginProgram cannam@135: a owl:Class; cannam@135: rdfs:label "Plugin program"; cannam@135: rdfs:comment """ cannam@135: Plugin program defines a predefined context of parameters. cannam@135: """; cannam@135: vs:term_status "stable"; cannam@135: . cannam@135: cannam@135: vamp:Feature cannam@135: a owl:Class; cannam@135: rdfs:label "Vamp Feature"; cannam@135: rdfs:comment "This may be removed mighty soon as we rely on the Audio Features Ontology for this"; cannam@135: vs:term_status "deprecated"; cannam@135: . cannam@135: cannam@135: #Classes for enumerations in the Vamp API cannam@135: cannam@135: vamp:InputDomain cannam@135: a owl:Class; cannam@135: rdfs:label "Plugin input domain"; cannam@135: rdfs:comment "Plugin input domain"; cannam@135: vs:term_status "stable"; cannam@135: . cannam@135: cannam@135: vamp:SampleType cannam@135: a owl:Class; cannam@135: rdfs:label "sample type"; cannam@135: rdfs:comment "sample type for the plugin output"; cannam@135: vs:term_status "stable"; cannam@135: . cannam@135: cannam@135: cannam@135: cannam@135: cannam@135: ################################################################## cannam@135: # PROPERTIES. Some of them can be declared as builtins. cannam@135: ################################################################## cannam@135: cannam@135: ##### Plugin properties cannam@135: cannam@135: vamp:plugin_descriptor cannam@135: a rdf:Property; cannam@135: a owl:ObjectProperty; cannam@135: rdfs:label "plugin descriptor"; cannam@135: rdfs:comment """ cannam@135: Links the plugin descriptor to the plugin (it may be redundant for an RDF decription to have a plugin descriptor). cannam@135: """; cannam@135: rdfs:range vamp:PluginDescription; cannam@135: rdfs:domain vamp:Plugin; cannam@135: vs:term_status "stable"; cannam@135: . cannam@135: cannam@135: vamp:parameter_descriptor cannam@135: a rdf:Property; cannam@135: a owl:ObjectProperty; cannam@135: rdfs:label "parameter descriptor"; cannam@135: rdfs:comment """ cannam@135: Links each parameter descriptor to the plugin. cannam@135: """; cannam@135: rdfs:range vamp:ParameterDescriptor; cannam@135: rdfs:domain vamp:Plugin; cannam@135: vs:term_status "stable"; cannam@135: . cannam@135: cannam@135: vamp:output_descriptor cannam@135: a rdf:Property; cannam@135: a owl:ObjectProperty; cannam@135: rdfs:label "output descriptor"; cannam@135: rdfs:comment """ cannam@135: Links each output descriptor to the plugin. cannam@135: """; cannam@135: rdfs:range vamp:PluginOutput; cannam@135: rdfs:domain vamp:Plugin; cannam@135: vs:term_status "stable"; cannam@135: . cannam@135: cannam@135: ##### Plugin Library properties cannam@135: cannam@135: vamp:available_plugin cannam@135: a rdf:Property; cannam@135: a owl:ObjectProperty; cannam@135: rdfs:label "available plugin"; cannam@135: rdfs:comment """ cannam@135: Available plugins in the library cannam@135: """; cannam@135: rdfs:range vamp:Plugin; cannam@135: rdfs:domain vamp:PluginLibrary; cannam@135: vs:term_status "stable"; cannam@135: . cannam@135: cannam@135: ##### Plugin Transform cannam@135: cannam@135: vamp:parameter cannam@135: a rdf:Property; cannam@135: a owl:ObjectProperty; cannam@135: rdfs:label "parameter"; cannam@135: rdfs:comment """ cannam@135: Actual parameter used in the plugin transform to run the plugin cannam@135: """; cannam@135: rdfs:range vamp:Plugin; cannam@135: rdfs:domain vamp:PluginTransform; cannam@135: vs:term_status "stable"; cannam@135: . cannam@135: cannam@135: ##### Plugin Descriptor properties cannam@135: cannam@135: vamp:identifier cannam@135: a rdf:Property; cannam@135: a owl:DatatypeProperty; cannam@135: rdfs:label "plugin identifier"; cannam@135: rdfs:comment """ cannam@135: Machine-readable identifier for Vamp plugin classes. cannam@135: """; cannam@135: rdfs:domain vamp:PluginDescription; cannam@135: rdfs:domain vamp:PluginProgram; cannam@135: rdfs:domain vamp:PluginOutput; cannam@135: rdfs:domain vamp:ParameterDescriptor; cannam@135: vs:term_status "stable"; cannam@135: . cannam@135: cannam@135: vamp:name cannam@135: a rdf:Property; cannam@135: a owl:DatatypeProperty; cannam@135: rdfs:label "plugin name"; cannam@135: rdfs:comment """ cannam@135: Human-readable identifier for the plugin. cannam@135: """; cannam@135: rdfs:domain vamp:PluginDescription; cannam@135: vs:term_status "stable"; cannam@135: . cannam@135: cannam@135: vamp:vamp_API_version cannam@135: a rdf:Property; cannam@135: a owl:DatatypeProperty; cannam@135: rdfs:label "vamp API version"; cannam@135: rdfs:comment """ cannam@135: Version of the Vamp API used for the plugin. cannam@135: """; cannam@135: rdfs:domain vamp:PluginDescription; cannam@135: vs:term_status "stable"; cannam@135: . cannam@135: cannam@135: vamp:input_domain cannam@135: a rdf:Property; cannam@135: a owl:DatatypeProperty; cannam@135: rdfs:label "input domain"; cannam@135: rdfs:comment """ cannam@135: Input domain for the plugin (time or frequency). cannam@135: """; cannam@135: rdfs:domain vamp:Plugin; cannam@135: rdfs:range vamp:InputDomain; cannam@135: vs:term_status "stable"; cannam@135: . cannam@135: cannam@135: #Note that other properties like maker can be linked to the plugin descriptor using other namespaces cannam@135: cannam@135: ##### Parameter Descriptor properties cannam@135: cannam@135: #Note: Identifier has been already defined cannam@135: cannam@135: vamp:max_value cannam@135: a rdf:Property; cannam@135: a owl:DatatypeProperty; cannam@135: a owl:FunctionalProperty; cannam@135: rdfs:label "max value"; cannam@135: rdfs:comment "Maximum value of the parameter"; cannam@135: rdfs:range vamp:ParameterDescriptor; cannam@135: rdfs:range vamp:PluginOutput; cannam@135: vs:term_status "unstable"; cannam@135: . cannam@135: cannam@135: vamp:min_value cannam@135: a rdf:Property; cannam@135: a owl:DatatypeProperty; cannam@135: a owl:FunctionalProperty; cannam@135: rdfs:label "min value"; cannam@135: rdfs:comment "Minimum value of the parameter"; cannam@135: rdfs:range vamp:ParameterDescriptor; cannam@135: rdfs:range vamp:PluginOutput; cannam@135: vs:term_status "unstable"; cannam@135: . cannam@135: cannam@135: vamp:default_value cannam@135: a rdf:Property; cannam@135: a owl:DatatypeProperty; cannam@135: a owl:FunctionalProperty; cannam@135: rdfs:label "default value"; cannam@135: rdfs:comment "Default value of the parameter"; cannam@135: rdfs:range vamp:ParameterDescriptor; cannam@135: vs:term_status "unstable"; cannam@135: . cannam@135: cannam@135: ########Output Descriptor properties cannam@135: cannam@135: vamp:fixed_bin_count cannam@135: a rdf:Property; cannam@135: a owl:DatatypeProperty; cannam@135: rdfs:label "fixed bin count"; cannam@135: rdfs:comment "fixed bin count"; cannam@135: rdfs:domain vamp:PluginOutput; cannam@135: vs:term_status "unstable"; cannam@135: . cannam@135: cannam@135: vamp:unit cannam@135: a rdf:Property; cannam@135: a owl:DatatypeProperty; cannam@135: a owl:FunctionalProperty; cannam@135: rdfs:label "unit"; cannam@135: rdfs:comment "unit of the output"; cannam@135: rdfs:domain vamp:PluginOutput; cannam@135: rdfs:domain vamp:ParameterDescriptor; cannam@135: vs:term_status "unstable"; cannam@135: . cannam@135: cannam@135: vamp:sample_rate cannam@135: a rdf:Property; cannam@135: a owl:DatatypeProperty; cannam@135: rdfs:label "sample rate"; cannam@135: rdfs:comment "sample rate of the output"; cannam@135: rdfs:domain vamp:PluginOutput; cannam@135: vs:term_status "unstable"; cannam@135: . cannam@135: cannam@135: vamp:quantized_step cannam@135: a rdf:Property; cannam@135: a owl:FunctionalProperty; cannam@135: a owl:DatatypeProperty; cannam@135: rdfs:label "quantized step"; cannam@135: rdfs:comment "quantized step (if any)"; cannam@135: rdfs:domain vamp:PluginOutput; cannam@135: rdfs:domain vamp:ParameterDescriptor; cannam@135: vs:term_status "unstable"; cannam@135: . cannam@135: cannam@135: vamp:bin_count cannam@135: a rdf:Property; cannam@135: a owl:DatatypeProperty; cannam@135: rdfs:label "bin count"; cannam@135: rdfs:comment "bin count"; cannam@135: rdfs:domain vamp:PluginOutput; cannam@135: vs:term_status "unstable"; cannam@135: . cannam@135: cannam@135: vamp:bin_names cannam@135: a rdf:Property; cannam@135: a owl:DatatypeProperty; cannam@135: rdfs:label "bin names"; cannam@135: rdfs:comment "bin names"; cannam@135: rdfs:domain vamp:PluginOutput; cannam@135: vs:term_status "unstable"; cannam@135: . cannam@135: cannam@135: vamp:sample_type cannam@135: a rdf:Property; cannam@135: a owl:DatatypeProperty; cannam@135: a owl:FunctionalProperty; cannam@135: rdfs:label "sample type"; cannam@135: rdfs:comment "sample type"; cannam@135: rdfs:domain vamp:PluginOutput; cannam@135: rdfs:range vamp:SampleType; cannam@135: vs:term_status "unstable"; cannam@135: . cannam@135: cannam@135: vamp:computes_feature_type cannam@135: a rdf:Property; cannam@135: a owl:ObjectProperty; cannam@135: rdfs:label "feature type"; cannam@135: rdfs:comment """ cannam@135: Feature Types output by the plugin cannam@135: """; cannam@135: rdfs:domain vamp:PluginOutput; cannam@135: rdfs:range rdfs:Literal; cannam@135: #This should be substituted by af:Feature i think. Definitely Literal is not right here. cannam@135: vs:term_status "unstable"; cannam@135: . cannam@135: cannam@135: ######################## cannam@135: # INDIVIDUALS cannam@135: ######################## cannam@135: cannam@135: vamp:time_domain cannam@135: a vamp:InputDomain; cannam@135: . cannam@135: cannam@135: vamp:frequency_domain cannam@135: a vamp:InputDomain; cannam@135: . cannam@135: cannam@135: vamp:OneSamplePerStep cannam@135: a vamp:SampleType; cannam@135: . cannam@135: cannam@135: vamp:FixedSampleRate cannam@135: a vamp:SampleType; cannam@135: . cannam@135: cannam@135: vamp:VariableSampleRate cannam@135: a vamp:SampleType; cannam@135: . cannam@135: cannam@135: ################################################### END OF THE VAMP API DESCRIPTION ############################################################ cannam@135: cannam@135: cannam@135: ############################################# cannam@135: # Part 2: Classes to describe de execution (to move somewhere else) cannam@135: ############################################# cannam@135: cannam@135: #Note: we need to define this part of the ontology to give a minimun common standard for hosts. cannam@135: #Note: this may split up in some other ontology (cool) cannam@135: cannam@135: vamp:Transform cannam@135: a owl:Class; cannam@135: rdfs:label "Plugin Transform"; cannam@135: vs:term_status "stable"; cannam@135: rdfs:comment """ cannam@135: The plugin transform defines the context of the feature extraction process. cannam@135: """; cannam@135: . cannam@135: cannam@135: vamp:Parameter cannam@135: a owl:Class; cannam@135: rdfs:label "Parameter"; cannam@135: vs:term_status "unstable"; cannam@135: rdfs:comment """ cannam@135: Parameter used by the plugin transform to set up the plugin. cannam@135: """; cannam@135: . cannam@135: cannam@135: ################ cannam@135: # Properties cannam@135: ################ cannam@135: cannam@135: ##### Plugin Transform properties cannam@135: cannam@135: vamp:plugin cannam@135: a rdf:Property; cannam@135: a owl:ObjectProperty; cannam@135: rdfs:label "plugin"; cannam@135: vs:term_status "stable"; cannam@135: rdfs:comment """ cannam@135: Specifies the plugin in execution. cannam@135: """; cannam@135: rdfs:domain vamp:PluginTransform; cannam@135: rdfs:range vamp:Plugin; cannam@135: . cannam@135: cannam@135: vamp:program cannam@135: a rdf:Property; cannam@135: a owl:ObjectProperty; cannam@135: a owl:FunctionalProperty; cannam@135: rdfs:label "program"; cannam@135: vs:term_status "stable"; cannam@135: rdfs:comment """ cannam@135: Specifies the program to set the plugin in execution. cannam@135: """; cannam@135: rdfs:domain vamp:Transform; cannam@135: rdfs:range vamp:PluginProgram; cannam@135: . cannam@135: cannam@135: vamp:parameter cannam@135: a rdf:Property; cannam@135: a owl:ObjectProperty; cannam@135: rdfs:label "parameter"; cannam@135: vs:term_status "stable"; cannam@135: rdfs:comment """ cannam@135: Specifies the parameter to set the plugin in execution. cannam@135: """; cannam@135: rdfs:domain vamp:PluginTransform; cannam@135: rdfs:range vamp:Parameter; cannam@135: . cannam@135: cannam@135: vamp:step_size cannam@135: a rdf:Property; cannam@135: a owl:DatatypeProperty; cannam@135: a owl:FunctionalProperty; cannam@135: rdfs:label "step size"; cannam@135: vs:term_status "stable"; cannam@135: rdfs:comment """ cannam@135: Specifies the step size for the framing. cannam@135: """; cannam@135: rdfs:domain vamp:PluginTransform; cannam@135: . cannam@135: cannam@135: vamp:block_size cannam@135: a rdf:Property; cannam@135: a owl:DatatypeProperty; cannam@135: a owl:FunctionalProperty; cannam@135: rdfs:label "block size"; cannam@135: vs:term_status "stable"; cannam@135: rdfs:comment """ cannam@135: Specifies the block size for the framing. cannam@135: """; cannam@135: rdfs:domain vamp:PluginTransform; cannam@135: . cannam@135: cannam@135: vamp:sample_rate cannam@135: a rdf:Property; cannam@135: a owl:DatatypeProperty; cannam@135: a owl:FunctionalProperty; cannam@135: rdfs:label "sample rate"; cannam@135: vs:term_status "stable"; cannam@135: rdfs:comment """ cannam@135: Specifies the sample rate if it is not constant. cannam@135: """; cannam@135: rdfs:domain vamp:PluginTransform; cannam@135: . cannam@135: cannam@135: vamp:transform_type cannam@135: a rdf:Property; cannam@135: a owl:DatatypeProperty; cannam@135: a owl:FunctionalProperty; cannam@135: rdfs:label "transform type"; cannam@135: vs:term_status "unstable"; cannam@135: rdfs:comment """ cannam@135: Specifies the transform type (they should be individuals). cannam@135: """; cannam@135: rdfs:domain vamp:PluginTransform; cannam@135: . cannam@135: cannam@135: vamp:window_type cannam@135: a rdf:Property; cannam@135: a owl:DatatypeProperty; cannam@135: a owl:FunctionalProperty; cannam@135: rdfs:label "window type"; cannam@135: vs:term_status "unstable"; cannam@135: rdfs:comment """ cannam@135: Specifies the window type (they should be individuals and clearly not here). cannam@135: """; cannam@135: rdfs:domain vamp:PluginTransform; cannam@135: . cannam@135: cannam@135: ##### Parameter properties cannam@135: cannam@135: vamp:value cannam@135: a rdf:Property; cannam@135: a owl:DatatypeProperty; cannam@135: a owl:FunctionalProperty; cannam@135: rdfs:label "value"; cannam@135: vs:term_status "stable"; cannam@135: rdfs:comment """ cannam@135: Specifies the current value of the parameter. cannam@135: """; cannam@135: rdfs:domain vamp:Parameter; cannam@135: . cannam@135: cannam@135: vamp:parameter_descriptor cannam@135: a rdf:Property; cannam@135: a owl:ObjectProperty; cannam@135: rdfs:label "parameter descriptor"; cannam@135: vs:term_status "stable"; cannam@135: rdfs:comment """ cannam@135: Specifies exactly the type of descriptor to set in the transform by linking it. cannam@135: """; cannam@135: rdfs:domain vamp:Parameter; cannam@135: rdfs:range vamp:ParameterDescriptor; cannam@135: . cannam@135: cannam@135: cannam@135: cannam@135: