Temporal annotation of a timeline, corresponding to harmonic changes, key, structural segments

=Turtle=

@prefix dc: . @prefix mo: . @prefix xsd: . @prefix foaf: . @prefix nirvana: . @prefix rdfs: . @prefix timeline: . @prefix time: . @prefix event: . @prefix mf: . @prefix key: . @prefix : <>.


 * 1) Here, we describe the output of an onset detection
 * 1) Here, we describe the output of an onset detection

 mo:signalTime [ timeline:durationXSD "PT5M1S"; timeline:onTimeLine :timeline ]. # link to Zitgist Nirvana signal URI
 * timeline a timeline:RelativeTimeLine.


 * 1) Harmonic changes (INSTANT)
 * 1) Harmonic changes (INSTANT)

mf:HarmonicChange rdfs:subClassOf event:Event.
 * hc1 a mf:HarmonicChange;

rdfs:label "harmonic change"; event:time [ a time:TimeInstant; timeline:onTimeLine :timeline; timeline:atDuration "PT31S"; ].
 * hc2 a mf:HarmonicChange;

rdfs:label "harmonic change"; event:time [ a time:TimeInstant; timeline:onTimeLine :timeline; timeline:atDuration "PT1M1S"; ].
 * hc3 a mf:HarmonicChange;

rdfs:label "harmonic change"; event:time [ a time:TimeInstant; timeline:onTimeLine :timeline; timeline:atDuration "PT1M21S"; ].


 * 1) Structural Segment (INTERVAL)
 * 1) Structural Segment (INTERVAL)

mf:StructuralSegment rdfs:subClassOf event:Event.
 * s1 a mf:StructuralSegment;

rdfs:label "Intro"; event:time [ a time:TimeInterval; timeline:onTimeLine :timeline; timeline:beginsAtDuration "PT0S"; timeline:durationXSD "PT10.43S"; ].
 * s2 a mf:StructuralSegment;

rdfs:label "First verse"; event:time [ a time:TimeInterval; timeline:onTimeLine :timeline; timeline:beginsAtDuration "PT10.43S"; timeline:durationXSD "PT20.2S"; ].
 * s3 a mf:StructuralSegment;

rdfs:label "First chorus"; event:time [ a time:TimeInterval; timeline:onTimeLine :timeline; timeline:beginsAtDuration "PT31.03S"; timeline:durationXSD "PT30.42S"; ].
 * s4 a mf:StructuralSegment;

rdfs:label "Second verse"; event:time [ a time:TimeInterval; timeline:onTimeLine :timeline; timeline:beginsAtDuration "PT1M1S"; timeline:durationXSD "PT20.5S"; ].
 * s5 a mf:StructuralSegment;

rdfs:label "Second chorus"; event:time [ a time:TimeInterval; timeline:onTimeLine :timeline; timeline:beginsAtDuration "PT1M21.5S"; timeline:durationXSD "PT30S"; ].


 * 1) Key event (INTERVAL)
 * 1) Key event (INTERVAL)

mf:KeyEvent rdfs:subClassOf event:Event. # I should also define mf:key (mf:KeyEvent -> key:Key), subproperty of event:hasFactor?
 * k1 a mf:KeyEvent;

mf:key key:EMinor; event:time [ a time:TimeInterval; timeline:onTimeLine :timeline; timeline:beginsAtDuration "PT10.43S"; timeline:durationXSD "PT20.2S"; ].


 * k2 a mf:KeyEvent;

mf:key key:GMajor; event:time [ a time:TimeInterval; timeline:onTimeLine :timeline; timeline:beginsAtDuration "PT31.03S"; timeline:durationXSD "PT30.42S"; ].


 * k3 a mf:KeyEvent;

mf:key key:EMinor; event:time [ a time:TimeInterval; timeline:onTimeLine :timeline; timeline:beginsAtDuration "PT1M1S"; timeline:durationXSD "PT20.5S"; ].


 * k4 a mf:KeyEvent;

mf:key key:GMajor; event:time [ a time:TimeInterval; timeline:onTimeLine :timeline; timeline:beginsAtDuration "PT1M21.5S"; timeline:durationXSD "PT30S"; ].


 * 1) NOTE: for, keys, we could even define classes such as EMinorKeyEvent etc. - which could equivalent to stating that their instances
 * 2) are linked to key:EMinor (defined class in OWL)

=RDF/XML=

 <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:event="http://purl.org/NET/c4dm/event.owl#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:key="http://purl.org/NET/c4dm/keys.owl#" xmlns:mf="http://purl.org/ontology/mo/mf/" xmlns:mo="http://purl.org/ontology/mo/" xmlns:nirvana="http://music.org/nirvana#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:time="http://www.w3.org/2006/time#" xmlns:timeline="http://purl.org/NET/c4dm/timeline.owl#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns="file:///home/moustaki/eclipse_workspace/ontologies/examples/features.n3">    <timeline:durationXSD>PT5M1S</timeline:durationXSD> <timeline:onTimeLine rdf:resource="features.n3timeline"/> </rdf:Description> </mo:signalTime> </rdf:Description> <timeline:RelativeTimeLine rdf:about="features.n3timeline"/> <rdf:Description rdf:about="http://purl.org/ontology/mo/mf/HarmonicChange"> <rdfs:subClassOf rdf:resource="http://purl.org/NET/c4dm/event.owl#Event"/> </rdf:Description> <mf:HarmonicChange rdf:about="features.n3hc1"> <rdfs:label>harmonic change</rdfs:label> <event:time> <time:TimeInstant> <timeline:onTimeLine rdf:resource="features.n3timeline"/> <timeline:atDuration>PT31S</timeline:atDuration> </time:TimeInstant> </event:time> </mf:HarmonicChange> <mf:HarmonicChange rdf:about="features.n3hc2"> <rdfs:label>harmonic change</rdfs:label> <event:time> <time:TimeInstant> <timeline:onTimeLine rdf:resource="features.n3timeline"/> <timeline:atDuration>PT1M1S</timeline:atDuration> </time:TimeInstant> </event:time> </mf:HarmonicChange> <mf:HarmonicChange rdf:about="features.n3hc3"> <rdfs:label>harmonic change</rdfs:label> <event:time> <time:TimeInstant> <timeline:onTimeLine rdf:resource="features.n3timeline"/> <timeline:atDuration>PT1M21S</timeline:atDuration> </time:TimeInstant> </event:time> </mf:HarmonicChange> <rdf:Description rdf:about="http://purl.org/ontology/mo/mf/StructuralSegment"> <rdfs:subClassOf rdf:resource="http://purl.org/NET/c4dm/event.owl#Event"/> </rdf:Description> <mf:StructuralSegment rdf:about="features.n3s1"> <rdfs:label>Intro</rdfs:label> <event:time> <time:TimeInterval> <timeline:onTimeLine rdf:resource="features.n3timeline"/> <timeline:beginsAtDuration>PT0S</timeline:beginsAtDuration> <timeline:durationXSD>PT10.43S</timeline:durationXSD> </time:TimeInterval> </event:time> </mf:StructuralSegment> <mf:StructuralSegment rdf:about="features.n3s2"> <rdfs:label>First verse</rdfs:label> <event:time> <time:TimeInterval> <timeline:onTimeLine rdf:resource="features.n3timeline"/> <timeline:beginsAtDuration>PT10.43S</timeline:beginsAtDuration> <timeline:durationXSD>PT20.2S</timeline:durationXSD> </time:TimeInterval> </event:time> </mf:StructuralSegment> <mf:StructuralSegment rdf:about="features.n3s3"> <rdfs:label>First chorus</rdfs:label> <event:time> <time:TimeInterval> <timeline:onTimeLine rdf:resource="features.n3timeline"/> <timeline:beginsAtDuration>PT31.03S</timeline:beginsAtDuration> <timeline:durationXSD>PT30.42S</timeline:durationXSD> </time:TimeInterval> </event:time> </mf:StructuralSegment> <mf:StructuralSegment rdf:about="features.n3s4"> <rdfs:label>Second verse</rdfs:label> <event:time> <time:TimeInterval> <timeline:onTimeLine rdf:resource="features.n3timeline"/> <timeline:beginsAtDuration>PT1M1S</timeline:beginsAtDuration> <timeline:durationXSD>PT20.5S</timeline:durationXSD> </time:TimeInterval> </event:time> </mf:StructuralSegment> <mf:StructuralSegment rdf:about="features.n3s5"> <rdfs:label>Second chorus</rdfs:label> <event:time> <time:TimeInterval> <timeline:onTimeLine rdf:resource="features.n3timeline"/> <timeline:beginsAtDuration>PT1M21.5S</timeline:beginsAtDuration> <timeline:durationXSD>PT30S</timeline:durationXSD> </time:TimeInterval> </event:time> </mf:StructuralSegment> <rdf:Description rdf:about="http://purl.org/ontology/mo/mf/KeyEvent"> <rdfs:subClassOf rdf:resource="http://purl.org/NET/c4dm/event.owl#Event"/> </rdf:Description> <mf:KeyEvent rdf:about="features.n3k1"> <mf:key rdf:resource="http://purl.org/NET/c4dm/keys.owl#EMinor"/> <event:time> <time:TimeInterval> <timeline:onTimeLine rdf:resource="features.n3timeline"/> <timeline:beginsAtDuration>PT10.43S</timeline:beginsAtDuration> <timeline:durationXSD>PT20.2S</timeline:durationXSD> </time:TimeInterval> </event:time> </mf:KeyEvent> <mf:KeyEvent rdf:about="features.n3k2"> <mf:key rdf:resource="http://purl.org/NET/c4dm/keys.owl#GMajor"/> <event:time> <time:TimeInterval> <timeline:onTimeLine rdf:resource="features.n3timeline"/> <timeline:beginsAtDuration>PT31.03S</timeline:beginsAtDuration> <timeline:durationXSD>PT30.42S</timeline:durationXSD> </time:TimeInterval> </event:time> </mf:KeyEvent> <mf:KeyEvent rdf:about="features.n3k3"> <mf:key rdf:resource="http://purl.org/NET/c4dm/keys.owl#EMinor"/> <event:time> <time:TimeInterval> <timeline:onTimeLine rdf:resource="features.n3timeline"/> <timeline:beginsAtDuration>PT1M1S</timeline:beginsAtDuration> <timeline:durationXSD>PT20.5S</timeline:durationXSD> </time:TimeInterval> </event:time> </mf:KeyEvent> <mf:KeyEvent rdf:about="features.n3k4"> <mf:key rdf:resource="http://purl.org/NET/c4dm/keys.owl#GMajor"/> <event:time> <time:TimeInterval> <timeline:onTimeLine rdf:resource="features.n3timeline"/> <timeline:beginsAtDuration>PT1M21.5S</timeline:beginsAtDuration> <timeline:durationXSD>PT30S</timeline:durationXSD> </time:TimeInterval> </event:time> </mf:KeyEvent> </rdf:RDF>