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

From Music Ontology Wiki

Jump to: navigation, search

[edit] Turtle


@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix mo: <http://purl.org/ontology/mo/> . 
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix nirvana: <http://music.org/nirvana#>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix timeline: <http://purl.org/NET/c4dm/timeline.owl#>.
@prefix time: <http://www.w3.org/2006/time#>.
@prefix event: <http://purl.org/NET/c4dm/event.owl#>.
@prefix mf: <http://purl.org/ontology/mo/mf/>.
@prefix key: <http://purl.org/NET/c4dm/keys.owl#>.
@prefix : <>.

#
# Here, we describe the output of an onset detection
#

<http://zitgist.com/music/signal/6da76448-982a-4a01-b65b-9a710301c9c9> mo:signalTime [
        timeline:durationXSD "PT5M1S";
	timeline:onTimeLine :timeline
        ]. # link to Zitgist Nirvana signal URI
:timeline a timeline:RelativeTimeLine.


#############################
# 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";
        ].

################################
# 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";
		].

#######################
# 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";
		].



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

[edit] RDF/XML


<?xml version="1.0" encoding="utf-8"?>
<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">
  <rdf:Description rdf:about="http://zitgist.com/music/signal/6da76448-982a-4a01-b65b-9a710301c9c9">
    <mo:signalTime>
      <rdf:Description>
        <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>

Personal tools