comparison src/vamp-plugin-sdk-2.5/rdf/vamp.n3 @ 23:619f715526df sv_v2.1

Update Vamp plugin SDK to 2.5
author Chris Cannam
date Thu, 09 May 2013 10:52:46 +0100
parents
children
comparison
equal deleted inserted replaced
22:b07fe9e906dc 23:619f715526df
1 @prefix owl: <http://www.w3.org/2002/07/owl#>.
2 @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
3 @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
4 @prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
5 @prefix foaf: <http://xmlns.com/foaf/0.1/>.
6 @prefix vs: <http://www.w3.org/2003/06/sw-vocab-status/ns#>.
7 @prefix dc: <http://purl.org/dc/elements/1.1/>.
8 @prefix event: <http://purl.org/NET/c4dm/event.owl#>.
9 @prefix af: <http://purl.org/ontology/af/>.
10 @prefix vamp: <http://purl.org/ontology/vamp/>.
11 @prefix : <> .
12
13 <>
14 a owl:Ontology;
15 dc:title "Vamp Plugins Ontology";
16 rdfs:label "Vamp Plugins Ontology";
17 rdfs:comment """
18 Vamp Ontology. This ontology includes the following descriptions:
19
20 - OWL description of the Vamp API
21 - OWL description of the Transform environment necessary to set up the execution of any plugin
22
23 This Ontology provides semantics to describe and control Vamp plugins in RDF. Any "RDF-speaker" host is therefore able to
24 use this ontology to read, set up and execute plugins.
25 The extracted features are expressed in terms of the Audio Features Ontology: http://purl.org/ontology/af/.
26 For more information, please visit the Vamp Plugins website: http://www.vamp-plugins.org/
27 """;
28 foaf:maker "Chris Cannam";
29 foaf:maker "Chris Sutton";
30 foaf:maker "Yves Raimond";
31 foaf:maker "David Pastor Escuredo";
32 dc:date "$Date: 2008/05/21 17:05:11 $";
33 .
34
35 vs:term_status a owl:AnnotationProperty.
36
37 #Authors foaf
38
39 #############################################
40 # Part 1: Describing a Vamp plugin
41 #############################################
42
43 #########################################
44 # CLASSES
45 #########################################
46
47 # Note: we don't include a Feature concept because we rely on the Audio Feature ontology
48 # Note: we additionally define a Transform concept to link the running context
49
50 vamp:Plugin
51 a owl:Class;
52 rdfs:label "Vamp Plugin";
53 rdfs:comment """
54 A Vamp plugin is an implementation of an audio feature extraction algorithm using the Vamp API.
55 """;
56 vs:term_status "stable";
57 .
58
59 vamp:PluginLibrary
60 a owl:Class;
61 rdfs:label "Vamp Plugin Library";
62 rdfs:comment """
63 Library of Vamp Plugins. This may need to include rights.
64 """;
65 vs:term_status "stable";
66 .
67
68 vamp:Parameter
69 a owl:Class;
70 rdfs:label "Vamp Plugin Parameter";
71 rdfs:comment """
72 Descriptor for a plugin parameter. Hosts need to know about the specific type and form of the parameters of a particular plugin for a correct transform setup.
73 """;
74 vs:term_status "stable";
75 .
76
77 vamp:QuantizedParameter
78 a owl:Class;
79 rdfs:label "Quantized Parameter";
80 rdfs:subClassOf vamp:Parameter;
81 rdfs:comment """
82 Descriptor of a parameter that does have quantized values. The property quantize_step is just defined for this subclass and not for the general Parameter.
83 """;
84 vs:term_status "stable";
85 .
86
87 vamp:PluginOutput
88 a owl:Class;
89 rdfs:label "Vamp Plugin output descriptor";
90 rdfs:comment """
91 Descriptor for an output of a plugin. This descriptor provides information that is necessary to correctly interpret the output features. The output type will determine how to read the temporal information of the extracted features and how to manage the burden of ouput data.
92 """;
93 vs:term_status "unstable";
94 .
95
96 #3 classifications of outputs:
97 #-density of data
98 #-quantised
99 #-known extents
100
101 #there is not classification for fix_bin_count
102
103 vamp:QuantizedOutput
104 a owl:Class;
105 rdfs:label "Quantized Output";
106 rdfs:subClassOf vamp:PluginOutput;
107 rdfs:comment """
108 Descriptor of an output that does have quantized values.
109 """;
110 vs:term_status "stable";
111 .
112
113 vamp:KnownExtentsOutput
114 a owl:Class;
115 rdfs:label "Known Extents Output";
116 rdfs:subClassOf vamp:PluginOutput;
117 rdfs:comment """
118 Descriptor of an output that does have known extents.
119 """;
120 vs:term_status "stable";
121 .
122
123 vamp:DenseOutput
124 a owl:Class;
125 rdfs:subClassOf vamp:PluginOutput;
126 rdfs:label "Dense output";
127 rdfs:comment """
128 Specific output type for data evenly spaced in time, which may be of high volume and which it is usually desirable to represent in a compact form.
129 """;
130 vs:term_status "unstable";
131 .
132
133 vamp:SparseOutput
134 a owl:Class;
135 rdfs:label "Sparse output";
136 rdfs:subClassOf vamp:PluginOutput;
137 rdfs:comment """
138 Specific output type for data that consist of features that require their own individual temporal information.
139 """;
140 vs:term_status "unstable";
141 .
142
143 vamp:TrackLevelOutput
144 a owl:Class;
145 rdfs:label "track level output";
146 rdfs:subClassOf vamp:PluginOutput;
147 rdfs:comment """
148 Specific output type for track level information. The Vamp API does not provide for this sort of output directly, so this will require a "hacky" interpretation of the feature timestamp to establish that it reflects track metadata instead of temporal data.
149 """;
150 vs:term_status "unstable";
151 .
152
153 vamp:PluginProgram
154 a owl:Class;
155 rdfs:label "Plugin program";
156 rdfs:comment """
157 The program is a predefined context of parameters. We may not need a concept for this and just a property linking a string representing the program name.
158 """;
159 vs:term_status "unstable";
160 .
161
162 vamp:Feature
163 a owl:Class;
164 rdfs:label "Vamp Feature";
165 rdfs:comment "This may be removed mighty soon as we rely on the Audio Features Ontology for this";
166 vs:term_status "deprecated";
167 .
168
169 # Classes for enumerations in the Vamp API
170
171 vamp:InputDomain
172 a owl:Class;
173 rdfs:label "Plugin input domain";
174 rdfs:comment """
175 Plugins declare the input domain they require, so the host can convert the input data properly. Hosts using the Vamp SDK PluginAdapter to wrap plugins should see this work done for them automatically - see the Vamp documentation.
176 """;
177 vs:term_status "stable";
178 .
179
180 vamp:SampleType
181 a owl:Class;
182 rdfs:label "sample type";
183 rdfs:comment """
184 The sample type specifies the temporal information of the plugin output. This information should be combined with the output type for a correct interpretation.
185 """;
186 vs:term_status "stable";
187 .
188
189 ##################################################################
190 # PROPERTIES.
191 ##################################################################
192
193 ##### Plugin properties
194
195
196
197 ##!!! lacking plugin version?
198
199 vamp:parameter
200 a rdf:Property;
201 a owl:ObjectProperty;
202 rdfs:label "parameter descriptor";
203 rdfs:comment """
204 Links each parameter descriptor to the plugin.
205 """;
206 rdfs:range vamp:Parameter;
207 rdfs:domain vamp:ParameterBinding;
208 rdfs:domain vamp:Plugin;
209 vs:term_status "stable";
210 .
211
212 vamp:output
213 a rdf:Property;
214 a owl:ObjectProperty;
215 rdfs:label "output";
216 rdfs:comment """
217 Links each output type to the plugin.
218 """;
219 rdfs:range vamp:PluginOutput;
220 rdfs:domain vamp:Plugin;
221 rdfs:domain vamp:Transform;
222 vs:term_status "stable";
223 .
224
225 ##### Plugin Library properties (could include affiliation, rights...)
226
227 vamp:available_plugin
228 a rdf:Property;
229 a owl:ObjectProperty;
230 rdfs:label "available plugin";
231 rdfs:comment """
232 Available plugins in the library
233 """;
234 rdfs:range vamp:Plugin;
235 rdfs:domain vamp:PluginLibrary;
236 vs:term_status "stable";
237 .
238
239 #### Plugin Descriptor properties
240
241 vamp:identifier
242 a rdf:Property;
243 a owl:DatatypeProperty;
244 rdfs:label "plugin identifier";
245 rdfs:comment """
246 Machine-readable identifier for a Vamp plugin within the scope of its library, or for a plugin descriptor within the scope of the plugin.
247 """;
248 rdfs:domain vamp:Plugin;
249 rdfs:domain vamp:PluginLibrary;
250 rdfs:domain vamp:PluginProgram;
251 rdfs:domain vamp:PluginOutput;
252 rdfs:domain vamp:Parameter;
253 rdfs:domain vamp:Transform;
254 vs:term_status "stable";
255 .
256
257 vamp:name
258 a rdf:Property;
259 a owl:DatatypeProperty;
260 rdfs:label "plugin name";
261 rdfs:comment """
262 Human-readable identifier for the plugin.
263 """;
264 rdfs:domain vamp:Plugin;
265 vs:term_status "stable";
266 .
267
268 vamp:vamp_API_version
269 a rdf:Property;
270 a owl:DatatypeProperty;
271 rdfs:label "Vamp API version";
272 rdfs:comment """
273 Version of the Vamp API used to implement this plugin.
274 """;
275 rdfs:domain vamp:Plugin;
276 vs:term_status "stable";
277 .
278
279 vamp:input_domain
280 a rdf:Property;
281 a owl:DatatypeProperty;
282 rdfs:label "input domain";
283 rdfs:comment """
284 Input domain required by the plugin (time or frequency).
285 """;
286 rdfs:domain vamp:Plugin;
287 rdfs:range vamp:InputDomain;
288 vs:term_status "stable";
289 .
290
291 # Note that other properties like maker can be linked to the plugin descriptor using other namespaces
292
293 ##### Parameter Descriptor properties (and some common with PluginOutput)
294
295 # Note: Identifier has been already defined
296
297 vamp:max_value
298 a rdf:Property;
299 a owl:DatatypeProperty;
300 a owl:FunctionalProperty;
301 rdfs:label "max value";
302 rdfs:comment """
303 Maximum value of the parameter range
304 """;
305 rdfs:range vamp:Parameter;
306 rdfs:range vamp:KnownExtentsOutput;
307 vs:term_status "unstable";
308 .
309
310 vamp:min_value
311 a rdf:Property;
312 a owl:DatatypeProperty;
313 a owl:FunctionalProperty;
314 rdfs:label "min value";
315 rdfs:comment """
316 Minimum value of the parameter range
317 """;
318 rdfs:range vamp:Parameter;
319 rdfs:range vamp:KnownExtentsOutput;
320 vs:term_status "unstable";
321 .
322
323 vamp:default_value
324 a rdf:Property;
325 a owl:DatatypeProperty;
326 a owl:FunctionalProperty;
327 rdfs:label "default value";
328 rdfs:comment """
329 Default value of the parameter
330 """;
331 rdfs:range vamp:Parameter;
332 vs:term_status "unstable";
333 .
334
335 vamp:quantize_step
336 a rdf:Property;
337 a owl:FunctionalProperty;
338 a owl:DatatypeProperty;
339 rdfs:label "quantized step";
340 rdfs:comment """
341 Quantize step. Only defined for quantized outputs
342 """;
343 rdfs:domain vamp:QuantizedOutput;
344 rdfs:domain vamp:QuantizedParameter;
345 vs:term_status "unstable";
346 .
347
348 vamp:has_duration
349 a rdf:Property;
350 a owl:FunctionalProperty;
351 a owl:DatatypeProperty;
352 rdfs:label "has duration";
353 rdfs:comment """
354 True if features on this output are known to have durations
355 """;
356 rdfs:domain vamp:PluginOutput;
357 vs:term_status "unstable";
358 .
359
360 vamp:unit
361 a rdf:Property;
362 a owl:DatatypeProperty;
363 a owl:FunctionalProperty;
364 rdfs:label "unit";
365 rdfs:comment """
366 Unit of the output/parameter. A string type
367 """;
368 rdfs:domain vamp:PluginOutput;
369 rdfs:domain vamp:Parameter;
370 vs:term_status "unstable";
371 .
372
373 vamp:value_names
374 a rdf:Property;
375 a owl:DatatypeProperty;
376 rdfs:label "value names";
377 rdfs:comment """
378 List of value names if available
379 """;
380 rdfs:domain vamp:Parameter;
381 vs:term_status "unstable";
382 .
383
384 ########Output Descriptor properties
385
386 vamp:fixed_bin_count
387 a rdf:Property;
388 a owl:DatatypeProperty;
389 rdfs:label "fixed bin count";
390 rdfs:comment """
391 Fixed bin count. A boolean type.
392 """;
393 rdfs:domain vamp:PluginOutput;
394 vs:term_status "unstable";
395 .
396
397 vamp:sample_rate
398 a rdf:Property;
399 a owl:DatatypeProperty;
400 rdfs:label "sample rate";
401 rdfs:comment """
402 Sample rate of the output if any. Should be read depending on SampleType and Output classes.
403 """;
404 rdfs:domain vamp:PluginOutput;
405 vs:term_status "unstable";
406 .
407
408 vamp:bin_count
409 a rdf:Property;
410 a owl:DatatypeProperty;
411 rdfs:label "bin count";
412 rdfs:comment """
413 Number of elements of the bin output. This information is necessary to define the output as belonging to a specific subclass of Plugin Output.
414 """;
415 rdfs:domain vamp:PluginOutput;
416 vs:term_status "unstable";
417 .
418
419 vamp:bin_names
420 a rdf:Property;
421 a owl:DatatypeProperty;
422 rdfs:label "bin names";
423 rdfs:comment """
424 List of bin names if available.
425 """;
426 rdfs:domain vamp:PluginOutput;
427 vs:term_status "unstable";
428 .
429
430 vamp:sample_type
431 a rdf:Property;
432 a owl:DatatypeProperty;
433 a owl:FunctionalProperty;
434 rdfs:label "sample type";
435 rdfs:comment """
436 The sample type specifies the temporal information of the output.
437 """;
438 rdfs:domain vamp:PluginOutput;
439 rdfs:range vamp:SampleType;
440 vs:term_status "unstable";
441 .
442
443 # The next 3 properties are included to link in the Audio Features Ontology (not strictly from the Vamp API).
444
445 vamp:computes_event_type
446 a rdf:Property;
447 a owl:ObjectProperty;
448 rdfs:label "event type";
449 rdfs:comment """
450 Associates a plugin output with its corresponding event type (for example, in the Audio Features ontology).
451 """;
452 rdfs:domain vamp:PluginOutput;
453 rdfs:range event:Event;
454 vs:term_status "unstable";
455 .
456
457 vamp:computes_feature
458 a rdf:Property;
459 a owl:ObjectProperty;
460 rdfs:label "feature type";
461 rdfs:comment """
462 Associates a plugin output with the attribute connecting the event to its value data.
463 """;
464 rdfs:domain vamp:PluginOutput;
465 rdfs:range event:factor;
466 vs:term_status "unstable";
467 .
468
469 vamp:computes_signal_type
470 a rdf:Property;
471 a owl:ObjectProperty;
472 rdfs:label "signal type";
473 rdfs:comment """
474 Associates a dense plugin output with its corresponding signal type (for example, in the Audio Features ontology).
475 """;
476 rdfs:domain vamp:PluginOutput;
477 rdfs:range af:Signal;
478 vs:term_status "unstable";
479 .
480
481 ########################
482 # INDIVIDUALS
483 ########################
484
485 vamp:TimeDomain
486 a vamp:InputDomain;
487 .
488
489 vamp:FrequencyDomain
490 a vamp:InputDomain;
491 .
492
493 vamp:OneSamplePerStep
494 a vamp:SampleType;
495 .
496
497 vamp:FixedSampleRate
498 a vamp:SampleType;
499 .
500
501 vamp:VariableSampleRate
502 a vamp:SampleType;
503 .
504
505 ################################################### END OF THE VAMP API DESCRIPTION ############################################################
506
507
508 #############################################
509 # Part 2: Classes to describe plugin execution. TRANSFORM
510 #############################################
511
512 # Note: we need to define this part of the ontology to give a minimun common standard for hosts.
513 # Note: this may split up in some other ontology or become part of the DSP namespace
514
515 vamp:Transform
516 a owl:Class;
517 rdfs:label "Transform";
518 vs:term_status "stable";
519 rdfs:comment """
520 The Transform defines the environment of any audio processing computation.
521 """;
522 .
523
524 vamp:ParameterBinding
525 a owl:Class;
526 rdfs:label "Parameter binding";
527 vs:term_status "unstable";
528 rdfs:comment """
529 Parameter setting used by the plugin transform to set up the plugin.
530 """;
531 .
532
533 vamp:Configuration
534 a owl:Class;
535 rdfs:label "Configuration";
536 vs:term_status "unstable";
537 rdfs:comment """
538 For extension (key/value data provided to DSSI plugins, not relevant to Vamp)
539 """;
540 .
541
542 vamp:TransformType
543 a owl:Class;
544 rdfs:label "Transform Type";
545 vs:term_status "unstable";
546 rdfs:comment """
547 Specifies the type of transform. May be feature extraction, effect...
548 """;
549 .
550
551 ##individuals of transformtype
552 vamp:FeatureExtraction
553 a vamp:TransformType;
554 rdfs:label "Feature Extraction";
555 vs:term_status "unstable";
556 rdfs:comment """
557 Feature extraction transform. This may be just a subclass of Transform...
558 """;
559 .
560
561 vamp:Effect
562 a vamp:TransformType;
563 rdfs:label "Effect";
564 vs:term_status "unstable";
565 rdfs:comment """
566 Effect transform. This may be just a subclass of Transform...
567 """;
568 .
569
570 ################
571 # Properties
572 ################
573
574 ##### Plugin Transform properties
575
576 #identifier and output are declared above
577
578 vamp:engine
579 a rdf:Property;
580 a owl:ObjectProperty;
581 rdfs:label "plugin";
582 vs:term_status "stable";
583 rdfs:comment """
584 Specifies the sort of plugin in execution. This is an extension to use Transform with other plugin libraries
585 """;
586 rdfs:domain vamp:Transform;
587 rdfs:range vamp:Plugin;
588 .
589
590 vamp:program
591 a rdf:Property;
592 a owl:ObjectProperty;
593 a owl:FunctionalProperty;
594 rdfs:label "program";
595 vs:term_status "stable";
596 rdfs:comment """
597 Specifies the program to set the plugin in execution. Here the plugin program matches with the one in the plugin descriptor. There is not descriptor required for the program (just a string), is it?
598 """;
599 rdfs:domain vamp:Transform;
600 rdfs:range vamp:PluginProgram;
601 .
602
603 vamp:configuration
604 a rdf:Property;
605 a owl:ObjectProperty;
606 a owl:FunctionalProperty;
607 rdfs:label "program";
608 vs:term_status "stable";
609 rdfs:comment """
610 Extension for configuration.
611 """;
612 rdfs:domain vamp:Transform;
613 rdfs:range vamp:Configuration;
614 .
615
616 vamp:parameter_binding
617 a rdf:Property;
618 a owl:ObjectProperty;
619 rdfs:label "parameter";
620 vs:term_status "stable";
621 rdfs:comment """
622 Specifies the parameter to set the plugin in execution.
623 """;
624 rdfs:domain vamp:Transform;
625 rdfs:range vamp:ParameterBinding;
626 .
627
628 vamp:step_size
629 a rdf:Property;
630 a owl:DatatypeProperty;
631 a owl:FunctionalProperty;
632 rdfs:label "step size";
633 vs:term_status "stable";
634 rdfs:comment """
635 Specifies the step size for the framing.
636 """;
637 rdfs:domain vamp:Transform;
638 .
639
640 vamp:block_size
641 a rdf:Property;
642 a owl:DatatypeProperty;
643 a owl:FunctionalProperty;
644 rdfs:label "block size";
645 vs:term_status "stable";
646 rdfs:comment """
647 Specifies the block size for the framing.
648 """;
649 rdfs:domain vamp:Transform;
650 .
651
652 vamp:sample_rate
653 a rdf:Property;
654 a owl:DatatypeProperty;
655 a owl:FunctionalProperty;
656 rdfs:label "sample rate";
657 vs:term_status "stable";
658 rdfs:comment """
659 Specifies the sample rate if it is not constant.
660 """;
661 rdfs:domain vamp:Transform;
662 .
663
664 vamp:transform_type
665 a rdf:Property;
666 a owl:ObjectProperty;
667 a owl:FunctionalProperty;
668 rdfs:label "transform type";
669 vs:term_status "unstable";
670 rdfs:comment """
671 Specifies the transform type (we could do this by subclassin transform instead of using a property).
672 """;
673 rdfs:domain vamp:Transform;
674 .
675
676 vamp:window_type
677 a rdf:Property;
678 a owl:DatatypeProperty;
679 a owl:FunctionalProperty;
680 rdfs:label "window type";
681 vs:term_status "unstable";
682 rdfs:comment """
683 Specifies the window type (they should be individuals and clearly not here).
684 """;
685 rdfs:domain vamp:Transform;
686 .
687
688 vamp:start
689 a rdf:Property;
690 a owl:DatatypeProperty;
691 a owl:FunctionalProperty;
692 rdfs:label "start";
693 vs:term_status "unstable";
694 rdfs:comment """
695 Specifies temporal information when processing a data stream.
696 """;
697 rdfs:domain vamp:Transform;
698 .
699
700 vamp:duration
701 a rdf:Property;
702 a owl:DatatypeProperty;
703 a owl:FunctionalProperty;
704 rdfs:label "start";
705 vs:term_status "unstable";
706 rdfs:comment """
707 Specifies temporal information when processing a data stream.
708 """;
709 rdfs:domain vamp:Transform;
710 .
711
712 vamp:summary_type
713 a rdf:Property;
714 a owl:DatatypeProperty;
715 a owl:FunctionalProperty;
716 rdfs:label "summary type";
717 vs:term_status "unstable";
718 rdfs:comment """
719 Specifies a summary type to be used (for averaging etc) on transform results.
720 """;
721 rdfs:domain vamp:Transform;
722 .
723
724 ##### Parameter properties
725
726 vamp:value
727 a rdf:Property;
728 a owl:DatatypeProperty;
729 a owl:FunctionalProperty;
730 rdfs:label "value";
731 vs:term_status "stable";
732 rdfs:comment """
733 Specifies the current value of the parameter.
734 """;
735 rdfs:domain vamp:ParameterBinding;
736 .
737
738 #parameter declared above
739
740
741 # The next property is here to link the Audio Features ontology to the
742 # Transform ontology terms -- an audio feature may use this to
743 # indicate which transform produced it
744
745 vamp:computed_by
746 a rdf:Property;
747 a owl:ObjectProperty;
748 rdfs:label "computed by";
749 rdfs:comment """
750 Associates an audio feature with the transform that was used to compute it.
751 """;
752 rdfs:domain event:Event;
753 rdfs:domain af:Signal;
754 rdfs:range vamp:Transform;
755 vs:term_status "unstable";
756 .
757
758