Mercurial > hg > sonic-annotator
diff feature-description-example.n3 @ 0:581b1b150a4d
* copy to sonic-annotator
author | Chris Cannam |
---|---|
date | Thu, 11 Dec 2008 10:22:33 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/feature-description-example.n3 Thu Dec 11 10:22:33 2008 +0000 @@ -0,0 +1,82 @@ + +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix dc: <http://purl.org/dc/elements/1.1/> . +@prefix mo: <http://purl.org/ontology/mo/> . +@prefix af: <http://purl.org/ontology/af/> . +@prefix event: <http://purl.org/NET/c4dm/event.owl#> . +@prefix tl: <http://purl.org/NET/c4dm/timeline.owl#> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . +@prefix : <#> . + + +# Describe the signal we're annotating, and associate it with a +# timeline (the timeline is named as :base_timeline but never given +# any attributes in this document). Any feature that is associated +# with the same timeline will be taken as derived from this signal. + +:audio_signal a mo:Signal ; + mo:available_as <file:///path/to/myfile.wav> ; + mo:time :signal_interval . + +:signal_interval a tl:Interval ; + tl:onTimeLine :base_timeline ; + tl:beginsAt "PT0"^^xsd:duration . + + +# A sparse feature event. + +:event0 a af:Onset ; + event:time :time0 . + +:time0 a tl:Instant ; + tl:onTimeLine :base_timeline ; + tl:at "PT0.185759637S"^^xsd:duration . + +# Alternatively we could write that with a blank node. + +:event1 a af:Onset ; + event:time [ + a tl:Instant ; + tl:onTimeLine :base_timeline ; + tl:at "PT0.510839002S"^^xsd:duration ; + ] . + + +# For a dense feature, we need an appropriately sampled, windowed timeline. + +:feature_timeline a tl:DiscreteTimeLine . + +:feature_timeline_map a tl:UniformSamplingWindowingMap ; + tl:rangeTimeLine :feature_timeline ; + tl:domainTimeLine :base_timeline ; + tl:sampleRate "44100"^^xsd:int ; + tl:windowLength "1024"^^xsd:int ; + tl:hopSize "512"^^xsd:int . + + +# ... and an interval, defined in terms of hops (the discrete steps of +# the windowed timeline). + +:feature_interval a tl:Interval ; + tl:onTimeLine :feature_timeline ; + tl:beginsAt "0"^^xsd:int ; + tl:duration "5634"^^xsd:int . + + +# Then our feature is a signal that is on the interval we just +# described. We associate it explicitly with the original audio +# signal, although presumably we could leave the association implicit, +# to be derived from the relationships between timelines, just as it +# is for the sparse features above. + +:audio_signal af:signal_feature :feature1 . + +:feature_signal_type rdfs:subClassOf af:DetectionFunction ; + dc:title "Detection Function from Simple Percussion Onset Detector" . + +:feature1 a :feature_signal_type ; + mo:time :feature_interval ; + af:dimensions "12 12345" ; + af:value "0 0 0 0 0 0 0 1 2 3 1 24 236 123213 (etc)" . +