From Music Ontology Wiki
[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>