comparison ontology/released/audio_features.n3 @ 0:5ea2f132a40c

added old ontology, some documentation and graphs
author gyorgyf
date Thu, 23 Feb 2012 10:39:00 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:5ea2f132a40c
1 @prefix owl: <http://www.w3.org/2002/07/owl#> .
2 @prefix tl: <http://purl.org/NET/c4dm/timeline.owl#> .
3 @prefix time: <http://www.w3.org/2006/time#> .
4 @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
5 @prefix event: <http://purl.org/NET/c4dm/event.owl#> .
6 @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
7 @prefix dc: <http://purl.org/dc/elements/1.1/> .
8 @prefix vs: <http://www.w3.org/2003/06/sw-vocab-status/ns#> .
9 @prefix af: <http://purl.org/ontology/af/> .
10 @prefix foaf: <http://xmlns.com/foaf/0.1/> .
11 @prefix mo: <http://purl.org/ontology/mo/> .
12
13 # Ontology header
14 <> a owl:Ontology;
15 dc:title "The Audio Features ontology";
16 owl:versionInfo "Revision: 1.1";
17 rdfs:label "The Audio Features ontology";
18 dc:description """
19 This ontology expresses some common concepts
20 to represent automatically extracted features
21 from audio signals. Therefore, it mainly relies
22 on the Event ontology, in order to classify particular
23 parts of the timeline backing an audio signal.
24
25 Programs outputting RDF according to this ontology should
26 also describe the ouputted document to express some information
27 about itself (estimated confidence, maintainer of the program, etc.)
28 """;
29 dc:creator <http://moustaki.org/foaf.rdf#moustaki>;
30 foaf:maker <http://moustaki.org/foaf.rdf#moustaki>;
31 dc:date "$Date: 2008/06/23 10:24:13 $";
32 .
33
34 # Status of terms
35 vs:term_status a owl:AnnotationProperty.
36
37 #
38 # PART 0
39 #
40 # - This part of the ontology deals with track-level features
41 #
42 af:Signal
43 a owl:Class;
44 vs:term_status "testing";
45 rdfs:label "Signal-level feature";
46 rdfs:subClassOf mo:Signal;
47 rdfs:comment """
48 A signal-like feature, holding dense data describing another signal.
49 Examples of signal features include chromagrams, spectrograms, onset detection functions etc.
50 """;
51 .
52 af:Chromagram
53 a owl:Class;
54 vs:term_status "testing";
55 rdfs:label "Chromagram";
56 rdfs:subClassOf af:Signal;
57 rdfs:comment """
58 A chromagram feature.
59 """;
60 .
61 af:DetectionFunction # Following Chris's suggestion at http://www.omras2.com/cgi-sys/cgiwrap/musicstr/view/Main/AudioFeaturesOntology
62 a owl:Class;
63 vs:term_status "testing";
64 rdfs:label "Detection function";
65 rdfs:subClassOf af:Signal;
66 rdfs:comment """
67 A detection function.
68 """;
69 .
70 af:TempoDetectionFunction
71 a owl:Class;
72 vs:term_status "testing";
73 rdfs:label "Tempo detection function";
74 rdfs:subClassOf af:DetectionFunction;
75 rdfs:comment """
76 A tempo detection function
77 """;
78 .
79 af:OnsetDetectionFunction
80 a owl:Class;
81 vs:term_status "testing";
82 rdfs:label "Onset detection function";
83 rdfs:subClassOf af:DetectionFunction;
84 rdfs:comment """
85 An onset detection function
86 """;
87 .
88 af:TonalChangeDetectionFunction
89 a owl:Class;
90 vs:term_status "testing";
91 rdfs:label "Tonal change detection function";
92 rdfs:subClassOf af:DetectionFunction;
93 rdfs:comment """
94 A tonal change detection function
95 """;
96 .
97 af:TonalContentSpace
98 a owl:Class;
99 vs:term_status "testing";
100 rdfs:label "Tonal content space";
101 rdfs:subClassOf af:Signal;
102 rdfs:comment """
103 A 6-D tonal content space
104 """;
105 .
106 af:Amplitude
107 a owl:Class;
108 vs:term_status "testing";
109 rdfs:label "Amplitude";
110 rdfs:subClassOf af:Signal;
111 rdfs:comment """
112 Result of an amplitude following process
113 """;
114 .
115 af:SpectralCentroid
116 a owl:Class;
117 vs:term_status "testing";
118 rdfs:label "Spectral centroid";
119 rdfs:subClassOf af:Signal;
120 rdfs:comment """
121 Spectral centroid
122 """;
123 .
124 af:LogFrequencyCentroid
125 a owl:Class;
126 vs:term_Status "testing";
127 rdfs:label "Log-frequency spectral centroid";
128 rdfs:subClassOf af:SpectralCentroid;
129 rdfs:comment """
130 Log-frequency spectral centroid
131 """;
132 .
133 af:LinearFrequencyCentroid
134 a owl:Class;
135 vs:term_status "testing";
136 rdfs:label "Linear-frequency spectral centroid";
137 rdfs:subClassOf af:SpectralCentroid;
138 rdfs:comment """
139 Log-frequency spectral centroid
140 """;
141 .
142 af:ZeroCrossingCount
143 a owl:Class;
144 vs:term_status "testing";
145 rdfs:label "Zero-crossing counts";
146 rdfs:subClassOf af:Signal;
147 rdfs:comment """
148 Zero-crossing counts
149 """;
150 .
151
152 af:signal_feature
153 a owl:DatatypeProperty;
154 vs:term_status "testing";
155 rdfs:domain mo:Signal;
156 rdfs:label "signal-level feature";
157 rdfs:range af:Signal;
158 rdfs:comment """
159 Associates an audio signal with a track-level signal feature.
160 eg. a spectrogram, a chromagram, an onset detection function.
161 """;
162 .
163 af:value
164 a owl:DatatypeProperty;
165 vs:term_status "testing";
166 rdfs:subPropertyOf rdf:value; # Not sure about that bit
167 rdfs:domain af:Signal;
168 rdfs:label "value";
169 rdfs:comment """
170 Associates a signal resource as defined in the Music Ontology to a literal: its actual value.
171 For example, it can be used to link an onset detection function to a list of values.
172 """;
173 .
174
175 af:dimensions
176 a owl:DatatypeProperty;
177 vs:term_status "testing";
178 rdfs:domain af:Signal;
179 rdfs:label "dimensions";
180 rdfs:comment """
181 Associates a signal with its dimensions, eg. "12 3546". Equivalent to the mpeg7:dim attribute of the mpeg7:Raw
182 element.
183 """;
184 .
185
186 #
187 # PART 1
188 #
189 # - This part of the ontology deals with classification of time intervals occuring on a timeline
190 #
191
192 af:Segment a owl:Class;
193 vs:term_status "testing";
194 rdfs:label "Segment";
195 rdfs:subClassOf event:Event;
196 rdfs:comment """
197 A classifier for a temporal region corresponding to the output
198 of an automatic process---an artificial cognitive agent.
199 """;
200 rdfs:subClassOf [
201 a owl:Restriction;
202 owl:onProperty event:time;
203 owl:someValuesFrom tl:Interval
204 ]
205 .
206 af:StructuralSegment a owl:Class;
207 vs:term_status "testing";
208 rdfs:label "Structural Segment";
209 rdfs:subClassOf af:Segment;
210 rdfs:comment """
211 A classifier trying to capture the notion of structure in an audio piece.
212 This classifier should be subsumed by more specific classifiers: speech/music
213 segmentation, structural music segmmentation (intro, verse, chorus, etc.).
214 """;
215 .
216 af:Point a owl:Class;
217 vs:term_status "testing";
218 rdfs:label "Point";
219 rdfs:subClassOf event:Event;
220 rdfs:comment """
221 A classifier for instants corresponding to the output of an automatic process---an
222 artificial cognitive agent (should be associated to a time:Instant---DL version).
223 """;
224 rdfs:subClassOf [
225 a owl:Restriction;
226 owl:onProperty event:time;
227 owl:someValuesFrom tl:Instant
228 ]
229 .
230
231 # Speech-related part
232
233 af:SpeechSegment a owl:Class;
234 vs:term_status "testing";
235 rdfs:label "Speech";
236 rdfs:subClassOf af:StructuralSegment;
237 rdfs:comment """
238 A classifier capturing the notion of an audio segment holding speech
239 content
240 """;
241 .
242 af:Laugh a owl:Class;
243 vs:term_status "testing";
244 rdfs:label "Laugh";
245 rdfs:subClassOf af:SpeechSegment;
246 rdfs:comment """
247 A classifier for laugh content
248 """;
249 .
250 af:Text a owl:Class;
251 vs:term_status "testing";
252 rdfs:label "Text";
253 rdfs:subClassOf af:SpeechSegment;
254 rdfs:comment """
255 A classifier allowing to associate some text to a segment
256 """;
257 .
258 af:EmotionSegment a owl:Class;
259 vs:term_status "testing";
260 rdfs:label "Emotion segment";
261 rdfs:subClassOf af:SpeechSegment;
262 rdfs:comment """
263 A classifier for emotional content
264 """;
265 .
266 af:IdiomSegment a owl:Class;
267 vs:term_status "testing";
268 rdfs:label "Idiom segment";
269 rdfs:subClassOf af:SpeechSegment;
270 rdfs:comment """
271 A classifier for recognized idiom (English with Irish accent, etc.)
272 """;
273 .
274 af:PersonSpeaking a owl:Class;
275 vs:term_status "testing";
276 rdfs:label "Person speaking";
277 rdfs:comment """
278 A classifier associating a FOAF description to a particular segment
279 (to classify genre, recognized speaker, etc.)
280 """;
281 rdfs:subClassOf af:SpeechSegment;
282 .
283
284 # Music-related part
285
286 af:MusicSegment a owl:Class;
287 vs:term_status "testing";
288 rdfs:label "Music";
289 rdfs:subClassOf af:StructuralSegment;
290 rdfs:comment """
291 A classifier capturing the notion of an audio segment holding music.
292 This classifier can be subsumed with more specific classifiers.
293 """;
294 .
295
296 # Interval-based musical features
297
298 af:MusicStructuralSegment a owl:Class;
299 vs:term_status "testing";
300 rdfs:label "Music structural segment";
301 rdfs:subClassOf af:MusicSegment;
302 rdfs:comment """
303 Classifier capturing the notion of chorus, verse, intro, bridge, phrase, etc.
304 """;
305 .
306 af:ChordSegment a owl:Class;
307 vs:term_status "testing";
308 rdfs:comment """
309 A classifier for chords. Equivalent concept as the one
310 in the Chord ontology.
311 """;
312 owl:equivalentClass <http://purl.org/ontology/chord/ChordEvent>;
313 rdfs:subClassOf af:MusicSegment;
314 .
315 af:KeySegment a owl:Class;
316 vs:term_status "testing";
317 rdfs:comment """
318 A classifier for keys.
319 In case of a \"clean cut\", instances of such events
320 should have one factor: the detected key (perhaps using the
321 key ontology at http://purl.org/NET/c4dm/keys.owl).
322 In other cases, we can put several keys as a factor, maybe with different confidence
323 factors, using event decomposition.
324 """;
325 rdfs:subClassOf af:MusicSegment;
326 rdfs:label "Key event";
327 .
328 af:TonicSegment a owl:Class;
329 vs:term_status "testing";
330 rdfs:comment """
331 A classifier for tonics.
332 In case of a \"clean cut\", instances of such events have one
333 factor. In other cases, this event can have several factors, each associated
334 with a particular confidence using event decomposition.
335 """;
336 rdfs:subClassOf af:MusicSegment;
337 rdfs:label "Tonic event";
338 .
339 af:Major a owl:Class;
340 vs:term_status "testing";
341 rdfs:comment """
342 A classifier for a major mode region.
343 In case of a \"clean cut\", instances of such events have one
344 factor. In other cases, this event can have several factors, each associated
345 with a particular confidence using event decomposition.
346 """;
347 rdfs:subClassOf af:MusicSegment;
348 rdfs:label "Major segment";
349 .
350 af:Minor a owl:Class;
351 vs:term_status "testing";
352 rdfs:comment """
353 A classifier for a minor mode region.
354 In case of a \"clean cut\", instances of such events have one
355 factor. In other cases, this event can have several factors, each associated
356 with a particular confidence using event decomposition.
357 """;
358 rdfs:subClassOf af:MusicSegment;
359 rdfs:label "Minor segment";
360 .
361 af:Loudness a owl:Class;
362 vs:term_status "testing";
363 rdfs:comment "Event holding a loudness value";
364 rdfs:subClassOf af:MusicSegment; #or instant? or both?
365 rdfs:label "Loudness event";
366 .
367 af:Pitch a owl:Class;
368 vs:term_status "testing";
369 rdfs:comment "Event holding a pitch value (for example coming from a monophonic transcription process)";
370 rdfs:subClassOf af:MusicSegment;
371 rdfs:label "Pitch event";
372 .
373 af:Tempo a owl:Class;
374 vs:term_status "testing";
375 rdfs:comment "Event holding a tempo value (120bpm...)";
376 rdfs:subClassOf af:MusicSegment;
377 rdfs:label "Tempo event";
378 .
379 af:Ornament a owl:Class;
380 vs:term_status "testing";
381 rdfs:subClassOf af:MusicSegment;
382 rdfs:label "Ornament event";
383 rdfs:comment "Classifying a temporal region holding a musical ornament";
384 .
385 af:TimeSignature a owl:Class;
386 vs:term_status "testing";
387 rdfs:subClassOf af:MusicSegment;
388 rdfs:label "Time signature";
389 rdfs:comment "Classifying a temporal region with a particular time signature (what? there is something else than 4/4?? :-)";
390 .
391
392
393 # Point-based musical features
394
395 # An onset is the start of a musical event:
396 # {:evt a :Onset;event:time ?t1} => {_:me a :MusicalEvent; event:time ?t2. ?t2 tl:begins ?t1}
397 af:Onset a owl:Class;
398 vs:term_status "testing";
399 rdfs:label "Onset";
400 rdfs:subClassOf af:Point;
401 rdfs:comment """
402 A classifier corresponding to the output of an onset detection process.
403 """;
404 .
405 af:TonalOnset a owl:Class;
406 vs:term_status "testing";
407 rdfs:label "Pitched onset";
408 rdfs:subClassOf af:Onset;
409 rdfs:comment "A pitched onset";
410 .
411 af:NonTonalOnset a owl:Class;
412 vs:term_status "testing";
413 rdfs:label "Percussive onset";
414 rdfs:subClassOf af:Onset;
415 rdfs:comment "A percussive onset";
416 .
417 af:Beat a owl:Class;
418 vs:term_status "testing";
419 rdfs:label "Beat event";
420 rdfs:comment "A beat event (instantaneous)";
421 rdfs:subClassOf af:Point;
422 .
423 af:Pitch a owl:Class;
424 vs:term_status "testing";
425 rdfs:label "Pitch event";
426 rdfs:comment "Associate a point to a particular pitch";
427 rdfs:subClassOf af:Point;
428 .
429 af:KeyChange a owl:Class;
430 vs:term_status "testing";
431 rdfs:label "Key change event";
432 rdfs:comment "A key change event. The factor of such an event captures the key that holds after that event.";
433 rdfs:subClassOf af:Point;
434 .
435 af:TonicChange a owl:Class;
436 vs:term_status "testing";
437 rdfs:label "Tonic change event";
438 rdfs:comment "A tonic change event. The factors of such events include the tonic that holds after the event.";
439 rdfs:subClassOf af:Point;
440 .
441 af:ModeChange a owl:Class;
442 vs:term_status "testing";
443 rdfs:label "Mode change event";
444 rdfs:comment "A mode change event. The factors of such events include the mode that holds after the event.";
445 rdfs:subClassOf af:Point;
446 .
447 af:TonalChange a owl:Class;
448 vs:term_status "testing";
449 rdfs:label "Tonal change event";
450 rdfs:comment "A tonal change event.";
451 rdfs:subClassOf af:Point;
452 .
453 af:ZeroCrossing a owl:Class;
454 vs:term_status "testing";
455 rdfs:label "Zero crossing";
456 rdfs:comment "Classifier for a zero-crossing point";
457 rdfs:subClassOf af:Point;
458 .
459
460 #
461 # PART 2
462 #
463 # - This part of the ontology defines some segment-specific concepts
464 #
465
466 # Custom concepts
467
468 # Speech-related
469
470 af:Idiom a owl:Class;
471 vs:term_status "testing";
472 rdfs:label "Idiom";
473 rdfs:comment """
474 Idiom (English with Irish accent, Austrian German, etc.)
475 """;
476 .
477 af:EnglishIdiom a owl:Class;
478 vs:term_status "testing";
479 rdfs:label "English idiom";
480 rdfs:comment """
481 English idiom
482 """;
483 .
484 af:standard_british_english a af:EnglishIdiom;
485 vs:term_status "testing";
486 dc:title "Standard British English";
487 .
488 af:standard_us_english a af:EnglishIdiom;
489 vs:term_status "testing";
490 dc:title "Standard US English";
491 .
492 af:english_irish_accent a af:EnglishIdiom;
493 vs:term_status "testing";
494 dc:title "English with an Irish accent";
495 .
496 af:english_scottish_accent a af:EnglishIdiom;
497 vs:term_status "testing";
498 dc:title "English with a Scottish accent";
499 .
500 af:GermanIdiom a owl:Class;
501 vs:term_status "testing";
502 rdfs:label "German idiom";
503 rdfs:comment """
504 German idiom
505 """;
506 .
507 af:austrian_german a af:GermanIdiom;
508 vs:term_status "testing";
509 dc:title "Austrian German";
510 .
511 af:swiss_german a af:GermanIdiom;
512 vs:term_status "testing";
513 dc:title "Swiss German";
514 .
515 af:standard_german a af:GermanIdiom;
516 vs:term_status "testing";
517 dc:title "Standard German";
518 .
519 af:HungarianIdiom a owl:Class;
520 vs:term_status "testing";
521 rdfs:label "Hungarian idiom";
522 rdfs:comment "Hungarian idiom";
523 .
524 af:standard_hungarian a af:HungarianIdiom;
525 vs:term_status "testing";
526 dc:title "Standard Hungarian";
527 .
528
529 # Predicates
530
531 af:text a owl:DatatypeProperty;
532 vs:term_status "testing";
533 a rdf:Property;
534 rdfs:comment """
535 Relates a Text segment (classifying a time interval that can
536 be associated to some text) to a text string or other literals (number, etc.)
537 """;
538 rdfs:subPropertyOf event:hasLiteralFactor;
539 rdfs:domain af:Text;
540 rdfs:range rdfs:Literal;
541 .
542 af:idiom a owl:DatatypeProperty;
543 vs:term_status "testing";
544 a rdf:Property;
545 rdfs:comment """
546 Associates a segment which classify an idiom (English with Irish accent, etc.) to an actual idiom
547 """;
548 rdfs:subPropertyOf event:hasLiteralFactor;
549 rdfs:domain af:IdiomSegment;
550 rdfs:range af:Idiom;
551 .
552 af:person a owl:ObjectProperty;
553 vs:term_status "testing";
554 a rdf:Property;
555 rdfs:comment """
556 Associates a segment classified as holding speech content to a FOAF
557 profile (maybe holding information about genre, recognized speaker URI, etc.)
558 """;
559 rdfs:label "person";
560 rdfs:domain af:PersonSegment;
561 rdfs:range foaf:Person;
562 .
563 af:emotional_intensity a owl:ObjectProperty;
564 vs:term_status "testing";
565 a rdf:Property;
566 rdfs:comment """
567 Associates an \"emotional intensity\" value to a
568 segment detected as being \"emotional\"
569 """;
570 rdfs:label "emotional intensity";
571 rdfs:domain af:EmotionSegment;
572 rdfs:range rdfs:Literal;
573 .
574
575 af:key a owl:ObjectProperty;
576 vs:term_status "testing";
577 rdfs:domain af:KeySegment;
578 rdfs:range owl:Thing; # More specific...
579 rdfs:subPropertyOf event:factor;
580 rdfs:label "key";
581 rdfs:comment "Associates a key event to the corresponding key";
582 .
583 af:new_key a owl:ObjectProperty;
584 vs:term_status "testing";
585 rdfs:domain af:KeyChange;
586 rdfs:range owl:Thing;
587 rdfs:subPropertyOf event:factor;
588 rdfs:label "new key";
589 rdfs:comment "Associates a key change event to the new key, holding after the change";
590 .
591 af:tonic a owl:ObjectProperty;
592 vs:term_status "testing";
593 rdfs:domain af:TonicSegment;
594 rdfs:range owl:Thing;
595 rdfs:subPropertyOf event:factor;
596 rdfs:label "tonic";
597 rdfs:comment "Associates a tonic event with the corresponding tonic";
598 .
599 af:new_tonic a owl:ObjectProperty;
600 vs:term_status "testing";
601 rdfs:domain af:TonicChangeEvent;
602 rdfs:range owl:Thing;
603 rdfs:subPropertyOf event:factor;
604 rdfs:label "new tonic";
605 rdfs:comment "Tonic that holds after the tonic change event";
606 .
607 af:new_mode a owl:ObjectProperty;
608 vs:term_status "testing";
609 rdfs:domain af:ModeChangeEvent;
610 rdfs:range owl:Thing;
611 rdfs:subPropertyOf event:factor;
612 rdfs:label "new mode";
613 rdfs:comment "Mode that holds after the mode change event";
614 .
615
616
617 # Literals associated with features
618
619 af:feature a owl:DatatypeProperty;
620 vs:term_status "testing";
621 a rdf:Property;
622 rdfs:comment """
623 Associates a segment classifying a feature to the actual feature---we should use mpeg7 sort-of datatypes here
624 """;
625 rdfs:label "feature";
626 rdfs:subPropertyOf event:literal_factor;
627 rdfs:domain af:Segment;
628 rdfs:range rdfs:Literal;
629 .
630 af:tempo a owl:DatatypeProperty;
631 rdfs:subPropertyOf af:feature;
632 vs:term_status "testing";
633 rdfs:label "tempo";
634 rdfs:domain af:Tempo;
635 rdfs:comment """
636 Associates a tempo event to the corresponding tempo value.
637 """;
638 .
639 af:pitch a owl:DatatypeProperty;
640 rdfs:subPropertyOf af:feature;
641 vs:term_status "testing";
642 rdfs:label "pitch";
643 rdfs:domain af:Pitch;
644 rdfs:comment """
645 Associates a pitch event to the corresponding pitch
646 """;
647 .
648
649 #af:mfcc_2_10 (mean/variance) should go there, as well as af:chroma ...
650
651
652
653 #
654 # Part III
655 #
656 # Generic things, related to outputs of automatic processes
657 #
658 # Most of these things should be elsewhere
659 #
660
661 af:confidence a owl:DatatypeProperty;
662 vs:term_status "testing";
663 a rdf:Property;
664 rdfs:comment """
665 A really generic property, allowing to associate a confidence to a document or to a particular
666 resource (such as an automatically detected segment)
667 """;
668 rdfs:label "confidence";
669 rdfs:range rdfs:Literal;
670 .
671