comparison rdf/vamp.n3 @ 135:6bffd86a103d

* Add RDF ontology for Vamp plugins [experimental]
author cannam
date Thu, 29 May 2008 14:17:02 +0000
parents
children 1b1ebb0f10ac
comparison
equal deleted inserted replaced
134:c1dce0b033cb 135:6bffd86a103d
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 list: <http://www.w3.org/2000/10/swap/list#>.
8 @prefix dc: <http://purl.org/dc/elements/1.1/>.
9 @prefix mo: <http://purl.org/ontology/mo/>.
10 @prefix event: <http://purl.org/NET/c4dm/event.owl#>.
11 @prefix af: <http://purl.org/ontology/af/>.
12 @prefix tl: <http://purl.org/NET/c4dm/timeline.owl#>.
13 @prefix vamp: <http://purl.org/ontology/vamp/>.
14 @prefix : <> .
15
16 <>
17 a owl:Ontology;
18 dc:title "Vamp Plugins Ontology";
19 rdfs:label "Vamp Plugins Ontology";
20 rdfs:comment """
21 added comments from Cannam
22 """;
23 foaf:maker "Chris Cannam";
24 foaf:maker "Chris Sutton";
25 foaf:maker "Yves Raimond";
26 foaf:maker "David Pastor Escuredo";
27 dc:date "$Date: 2008/05/21 17:05:11 $";
28 .
29
30 vs:term_status a owl:AnnotationProperty.
31
32 #Authors foaf
33
34 #############################################
35 # Part 1: Classes to describe the plugin
36 #############################################
37
38 #Note: we don't include Feature concept because we rely on the Audio Feature ontology
39 #Note: we additionaly define a PluginTransform concept to link the running context
40
41 vamp:Plugin
42 a owl:Class;
43 rdfs:label "Vamp Plugin";
44 rdfs:comment """
45 Vamp plugin is an implementation of a feature extraction algorithm based on the Vamp API.
46 """;
47 vs:term_status "stable";
48 .
49
50 vamp:PluginLibrary
51 a owl:Class;
52 rdfs:label "Vamp Plugin Library";
53 rdfs:comment """
54 Library of Vamp Plugins
55 """;
56 vs:term_status "stable";
57 .
58
59 vamp:PluginDescription
60 a owl:Class;
61 rdfs:label "Vamp Plugin Descriptor";
62 rdfs:comment """
63 The plugin descriptor provides basic metadata of the plugin. We may remove this and link directly to the plugin instance
64 """;
65 vs:term_status "unstable";
66 .
67
68 vamp:ParameterDescriptor
69 a owl:Class;
70 rdfs:label "Vamp Plugin Parameter Descriptor";
71 rdfs:comment """
72 Descriptior of a plugin parameter
73 """;
74 vs:term_status "stable";
75 .
76
77 vamp:PluginOutput
78 a owl:Class;
79 rdfs:label "Vamp Plugin output descriptor";
80 rdfs:comment """
81 Descriptior of the plugin output. This descriptor provides necessary information to interpret correctly the output features.
82 Each plugin will be bound to one of the subclasses.
83 """;
84 vs:term_status "unstable";
85 .
86
87 vamp:DenseOutput
88 a owl:Class;
89 rdfs:subClassOf vamp:PluginOutput;
90 rdfs:comment """
91 Large binary data as output.
92 """;
93 vs:term_status "unstable";
94 .
95
96 vamp:SparseOutput
97 a owl:Class;
98 rdfs:subClassOf vamp:PluginOutput;
99 rdfs:comment """
100 The output defines events with no large data associated.
101 """;
102 vs:term_status "unstable";
103 .
104
105 vamp:TrackLevelOutput
106 a owl:Class;
107 rdfs:subClassOf vamp:PluginOutput;
108 rdfs:comment """
109 We obtain track metadata?
110 """;
111 vs:term_status "unstable";
112 .
113
114 vamp:PluginProgram
115 a owl:Class;
116 rdfs:label "Plugin program";
117 rdfs:comment """
118 Plugin program defines a predefined context of parameters.
119 """;
120 vs:term_status "stable";
121 .
122
123 vamp:Feature
124 a owl:Class;
125 rdfs:label "Vamp Feature";
126 rdfs:comment "This may be removed mighty soon as we rely on the Audio Features Ontology for this";
127 vs:term_status "deprecated";
128 .
129
130 #Classes for enumerations in the Vamp API
131
132 vamp:InputDomain
133 a owl:Class;
134 rdfs:label "Plugin input domain";
135 rdfs:comment "Plugin input domain";
136 vs:term_status "stable";
137 .
138
139 vamp:SampleType
140 a owl:Class;
141 rdfs:label "sample type";
142 rdfs:comment "sample type for the plugin output";
143 vs:term_status "stable";
144 .
145
146
147
148
149 ##################################################################
150 # PROPERTIES. Some of them can be declared as builtins.
151 ##################################################################
152
153 ##### Plugin properties
154
155 vamp:plugin_descriptor
156 a rdf:Property;
157 a owl:ObjectProperty;
158 rdfs:label "plugin descriptor";
159 rdfs:comment """
160 Links the plugin descriptor to the plugin (it may be redundant for an RDF decription to have a plugin descriptor).
161 """;
162 rdfs:range vamp:PluginDescription;
163 rdfs:domain vamp:Plugin;
164 vs:term_status "stable";
165 .
166
167 vamp:parameter_descriptor
168 a rdf:Property;
169 a owl:ObjectProperty;
170 rdfs:label "parameter descriptor";
171 rdfs:comment """
172 Links each parameter descriptor to the plugin.
173 """;
174 rdfs:range vamp:ParameterDescriptor;
175 rdfs:domain vamp:Plugin;
176 vs:term_status "stable";
177 .
178
179 vamp:output_descriptor
180 a rdf:Property;
181 a owl:ObjectProperty;
182 rdfs:label "output descriptor";
183 rdfs:comment """
184 Links each output descriptor to the plugin.
185 """;
186 rdfs:range vamp:PluginOutput;
187 rdfs:domain vamp:Plugin;
188 vs:term_status "stable";
189 .
190
191 ##### Plugin Library properties
192
193 vamp:available_plugin
194 a rdf:Property;
195 a owl:ObjectProperty;
196 rdfs:label "available plugin";
197 rdfs:comment """
198 Available plugins in the library
199 """;
200 rdfs:range vamp:Plugin;
201 rdfs:domain vamp:PluginLibrary;
202 vs:term_status "stable";
203 .
204
205 ##### Plugin Transform
206
207 vamp:parameter
208 a rdf:Property;
209 a owl:ObjectProperty;
210 rdfs:label "parameter";
211 rdfs:comment """
212 Actual parameter used in the plugin transform to run the plugin
213 """;
214 rdfs:range vamp:Plugin;
215 rdfs:domain vamp:PluginTransform;
216 vs:term_status "stable";
217 .
218
219 ##### Plugin Descriptor properties
220
221 vamp:identifier
222 a rdf:Property;
223 a owl:DatatypeProperty;
224 rdfs:label "plugin identifier";
225 rdfs:comment """
226 Machine-readable identifier for Vamp plugin classes.
227 """;
228 rdfs:domain vamp:PluginDescription;
229 rdfs:domain vamp:PluginProgram;
230 rdfs:domain vamp:PluginOutput;
231 rdfs:domain vamp:ParameterDescriptor;
232 vs:term_status "stable";
233 .
234
235 vamp:name
236 a rdf:Property;
237 a owl:DatatypeProperty;
238 rdfs:label "plugin name";
239 rdfs:comment """
240 Human-readable identifier for the plugin.
241 """;
242 rdfs:domain vamp:PluginDescription;
243 vs:term_status "stable";
244 .
245
246 vamp:vamp_API_version
247 a rdf:Property;
248 a owl:DatatypeProperty;
249 rdfs:label "vamp API version";
250 rdfs:comment """
251 Version of the Vamp API used for the plugin.
252 """;
253 rdfs:domain vamp:PluginDescription;
254 vs:term_status "stable";
255 .
256
257 vamp:input_domain
258 a rdf:Property;
259 a owl:DatatypeProperty;
260 rdfs:label "input domain";
261 rdfs:comment """
262 Input domain for the plugin (time or frequency).
263 """;
264 rdfs:domain vamp:Plugin;
265 rdfs:range vamp:InputDomain;
266 vs:term_status "stable";
267 .
268
269 #Note that other properties like maker can be linked to the plugin descriptor using other namespaces
270
271 ##### Parameter Descriptor properties
272
273 #Note: Identifier has been already defined
274
275 vamp:max_value
276 a rdf:Property;
277 a owl:DatatypeProperty;
278 a owl:FunctionalProperty;
279 rdfs:label "max value";
280 rdfs:comment "Maximum value of the parameter";
281 rdfs:range vamp:ParameterDescriptor;
282 rdfs:range vamp:PluginOutput;
283 vs:term_status "unstable";
284 .
285
286 vamp:min_value
287 a rdf:Property;
288 a owl:DatatypeProperty;
289 a owl:FunctionalProperty;
290 rdfs:label "min value";
291 rdfs:comment "Minimum value of the parameter";
292 rdfs:range vamp:ParameterDescriptor;
293 rdfs:range vamp:PluginOutput;
294 vs:term_status "unstable";
295 .
296
297 vamp:default_value
298 a rdf:Property;
299 a owl:DatatypeProperty;
300 a owl:FunctionalProperty;
301 rdfs:label "default value";
302 rdfs:comment "Default value of the parameter";
303 rdfs:range vamp:ParameterDescriptor;
304 vs:term_status "unstable";
305 .
306
307 ########Output Descriptor properties
308
309 vamp:fixed_bin_count
310 a rdf:Property;
311 a owl:DatatypeProperty;
312 rdfs:label "fixed bin count";
313 rdfs:comment "fixed bin count";
314 rdfs:domain vamp:PluginOutput;
315 vs:term_status "unstable";
316 .
317
318 vamp:unit
319 a rdf:Property;
320 a owl:DatatypeProperty;
321 a owl:FunctionalProperty;
322 rdfs:label "unit";
323 rdfs:comment "unit of the output";
324 rdfs:domain vamp:PluginOutput;
325 rdfs:domain vamp:ParameterDescriptor;
326 vs:term_status "unstable";
327 .
328
329 vamp:sample_rate
330 a rdf:Property;
331 a owl:DatatypeProperty;
332 rdfs:label "sample rate";
333 rdfs:comment "sample rate of the output";
334 rdfs:domain vamp:PluginOutput;
335 vs:term_status "unstable";
336 .
337
338 vamp:quantized_step
339 a rdf:Property;
340 a owl:FunctionalProperty;
341 a owl:DatatypeProperty;
342 rdfs:label "quantized step";
343 rdfs:comment "quantized step (if any)";
344 rdfs:domain vamp:PluginOutput;
345 rdfs:domain vamp:ParameterDescriptor;
346 vs:term_status "unstable";
347 .
348
349 vamp:bin_count
350 a rdf:Property;
351 a owl:DatatypeProperty;
352 rdfs:label "bin count";
353 rdfs:comment "bin count";
354 rdfs:domain vamp:PluginOutput;
355 vs:term_status "unstable";
356 .
357
358 vamp:bin_names
359 a rdf:Property;
360 a owl:DatatypeProperty;
361 rdfs:label "bin names";
362 rdfs:comment "bin names";
363 rdfs:domain vamp:PluginOutput;
364 vs:term_status "unstable";
365 .
366
367 vamp:sample_type
368 a rdf:Property;
369 a owl:DatatypeProperty;
370 a owl:FunctionalProperty;
371 rdfs:label "sample type";
372 rdfs:comment "sample type";
373 rdfs:domain vamp:PluginOutput;
374 rdfs:range vamp:SampleType;
375 vs:term_status "unstable";
376 .
377
378 vamp:computes_feature_type
379 a rdf:Property;
380 a owl:ObjectProperty;
381 rdfs:label "feature type";
382 rdfs:comment """
383 Feature Types output by the plugin
384 """;
385 rdfs:domain vamp:PluginOutput;
386 rdfs:range rdfs:Literal;
387 #This should be substituted by af:Feature i think. Definitely Literal is not right here.
388 vs:term_status "unstable";
389 .
390
391 ########################
392 # INDIVIDUALS
393 ########################
394
395 vamp:time_domain
396 a vamp:InputDomain;
397 .
398
399 vamp:frequency_domain
400 a vamp:InputDomain;
401 .
402
403 vamp:OneSamplePerStep
404 a vamp:SampleType;
405 .
406
407 vamp:FixedSampleRate
408 a vamp:SampleType;
409 .
410
411 vamp:VariableSampleRate
412 a vamp:SampleType;
413 .
414
415 ################################################### END OF THE VAMP API DESCRIPTION ############################################################
416
417
418 #############################################
419 # Part 2: Classes to describe de execution (to move somewhere else)
420 #############################################
421
422 #Note: we need to define this part of the ontology to give a minimun common standard for hosts.
423 #Note: this may split up in some other ontology (cool)
424
425 vamp:Transform
426 a owl:Class;
427 rdfs:label "Plugin Transform";
428 vs:term_status "stable";
429 rdfs:comment """
430 The plugin transform defines the context of the feature extraction process.
431 """;
432 .
433
434 vamp:Parameter
435 a owl:Class;
436 rdfs:label "Parameter";
437 vs:term_status "unstable";
438 rdfs:comment """
439 Parameter used by the plugin transform to set up the plugin.
440 """;
441 .
442
443 ################
444 # Properties
445 ################
446
447 ##### Plugin Transform properties
448
449 vamp:plugin
450 a rdf:Property;
451 a owl:ObjectProperty;
452 rdfs:label "plugin";
453 vs:term_status "stable";
454 rdfs:comment """
455 Specifies the plugin in execution.
456 """;
457 rdfs:domain vamp:PluginTransform;
458 rdfs:range vamp:Plugin;
459 .
460
461 vamp:program
462 a rdf:Property;
463 a owl:ObjectProperty;
464 a owl:FunctionalProperty;
465 rdfs:label "program";
466 vs:term_status "stable";
467 rdfs:comment """
468 Specifies the program to set the plugin in execution.
469 """;
470 rdfs:domain vamp:Transform;
471 rdfs:range vamp:PluginProgram;
472 .
473
474 vamp:parameter
475 a rdf:Property;
476 a owl:ObjectProperty;
477 rdfs:label "parameter";
478 vs:term_status "stable";
479 rdfs:comment """
480 Specifies the parameter to set the plugin in execution.
481 """;
482 rdfs:domain vamp:PluginTransform;
483 rdfs:range vamp:Parameter;
484 .
485
486 vamp:step_size
487 a rdf:Property;
488 a owl:DatatypeProperty;
489 a owl:FunctionalProperty;
490 rdfs:label "step size";
491 vs:term_status "stable";
492 rdfs:comment """
493 Specifies the step size for the framing.
494 """;
495 rdfs:domain vamp:PluginTransform;
496 .
497
498 vamp:block_size
499 a rdf:Property;
500 a owl:DatatypeProperty;
501 a owl:FunctionalProperty;
502 rdfs:label "block size";
503 vs:term_status "stable";
504 rdfs:comment """
505 Specifies the block size for the framing.
506 """;
507 rdfs:domain vamp:PluginTransform;
508 .
509
510 vamp:sample_rate
511 a rdf:Property;
512 a owl:DatatypeProperty;
513 a owl:FunctionalProperty;
514 rdfs:label "sample rate";
515 vs:term_status "stable";
516 rdfs:comment """
517 Specifies the sample rate if it is not constant.
518 """;
519 rdfs:domain vamp:PluginTransform;
520 .
521
522 vamp:transform_type
523 a rdf:Property;
524 a owl:DatatypeProperty;
525 a owl:FunctionalProperty;
526 rdfs:label "transform type";
527 vs:term_status "unstable";
528 rdfs:comment """
529 Specifies the transform type (they should be individuals).
530 """;
531 rdfs:domain vamp:PluginTransform;
532 .
533
534 vamp:window_type
535 a rdf:Property;
536 a owl:DatatypeProperty;
537 a owl:FunctionalProperty;
538 rdfs:label "window type";
539 vs:term_status "unstable";
540 rdfs:comment """
541 Specifies the window type (they should be individuals and clearly not here).
542 """;
543 rdfs:domain vamp:PluginTransform;
544 .
545
546 ##### Parameter properties
547
548 vamp:value
549 a rdf:Property;
550 a owl:DatatypeProperty;
551 a owl:FunctionalProperty;
552 rdfs:label "value";
553 vs:term_status "stable";
554 rdfs:comment """
555 Specifies the current value of the parameter.
556 """;
557 rdfs:domain vamp:Parameter;
558 .
559
560 vamp:parameter_descriptor
561 a rdf:Property;
562 a owl:ObjectProperty;
563 rdfs:label "parameter descriptor";
564 vs:term_status "stable";
565 rdfs:comment """
566 Specifies exactly the type of descriptor to set in the transform by linking it.
567 """;
568 rdfs:domain vamp:Parameter;
569 rdfs:range vamp:ParameterDescriptor;
570 .
571
572
573
574