Chris@0
|
1 <xsl:transform
|
Chris@0
|
2 xmlns:xsl ="http://www.w3.org/1999/XSL/Transform" version="1.0"
|
Chris@0
|
3 xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
Chris@0
|
4 xmlns:rdfs ="http://www.w3.org/2000/02/rdfschema#"
|
Chris@0
|
5 xmlns:mo ="http://purl.org/ontology/mo/"
|
Chris@0
|
6 xmlns:af ="http://purl.org/ontology/af/"
|
Chris@0
|
7 xmlns:dc ="http://purl.org/dc/elements/1.1/"
|
Chris@0
|
8 xmlns:tl ="http://purl.org/NET/c4dm/timeline.owl#"
|
Chris@0
|
9 xmlns:en = "http://purl.org/ontology/echonest/"
|
Chris@0
|
10 xmlns:event="http://purl.org/NET/c4dm/event.owl#"
|
Chris@0
|
11 xmlns ="http://dbtune.org/echonest/"
|
Chris@0
|
12 >
|
Chris@0
|
13
|
Chris@0
|
14 <xsl:output method="xml" indent="yes" encoding="utf-8"/>
|
Chris@0
|
15
|
Chris@0
|
16 <div xmlns="http://www.w3.org/1999/xhtml">
|
Chris@0
|
17 <p>testing GRDDL for the Echonest Analyze API
|
Chris@0
|
18 </p>
|
Chris@0
|
19 <p>Copyright (c) <a href="http://moustaki.org/">Yves Raimond</a>, 2008</p>
|
Chris@0
|
20
|
Chris@0
|
21 <a rel="license"
|
Chris@0
|
22 href="http://creativecommons.org/licenses/by-sa/2.0/"><img alt="Creative
|
Chris@0
|
23 Commons License" border="0"
|
Chris@0
|
24 src="http://creativecommons.org/images/public/somerights20.gif"
|
Chris@0
|
25 /></a><br />
|
Chris@0
|
26 This work is licensed under a <a rel="license"
|
Chris@0
|
27 href="http://creativecommons.org/licenses/by-sa/2.0/">Creative Commons
|
Chris@0
|
28 License</a>.
|
Chris@0
|
29 </div>
|
Chris@0
|
30
|
Chris@0
|
31 <!-- /Creative Commons License -->
|
Chris@0
|
32
|
Chris@0
|
33 <!--
|
Chris@0
|
34
|
Chris@0
|
35 <rdf:RDF xmlns="http://web.resource.org/cc/"
|
Chris@0
|
36 xmlns:dc="http://purl.org/dc/elements/1.1/"
|
Chris@0
|
37 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
Chris@0
|
38 <Work rdf:about="">
|
Chris@0
|
39 <license
|
Chris@0
|
40 rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
|
Chris@0
|
41 </Work>
|
Chris@0
|
42
|
Chris@0
|
43 <License rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
|
Chris@0
|
44 <permits rdf:resource="http://web.resource.org/cc/Reproduction" />
|
Chris@0
|
45 <permits rdf:resource="http://web.resource.org/cc/Distribution" />
|
Chris@0
|
46 <requires rdf:resource="http://web.resource.org/cc/Notice" />
|
Chris@0
|
47 <requires rdf:resource="http://web.resource.org/cc/Attribution" />
|
Chris@0
|
48 <permits rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
Chris@0
|
49 <requires rdf:resource="http://web.resource.org/cc/ShareAlike" />
|
Chris@0
|
50 </License>
|
Chris@0
|
51
|
Chris@0
|
52 </rdf:RDF>
|
Chris@0
|
53
|
Chris@0
|
54 -->
|
Chris@0
|
55
|
Chris@0
|
56 <xsl:template match='Analysis'>
|
Chris@0
|
57 <rdf:RDF>
|
Chris@0
|
58 <xsl:for-each select='Track'>
|
Chris@0
|
59
|
Chris@0
|
60 <!-- Describing the signal resource and track-wide features -->
|
Chris@0
|
61 <mo:Signal
|
Chris@0
|
62 rdf:about="#signal"
|
Chris@0
|
63 en:loudnessDynamicsVariance='{Tags/@loudnessDynamicsVariance}'
|
Chris@0
|
64 en:timbreMean='{Tags/@timbreMean}'
|
Chris@0
|
65 en:endOfFadeIn='{Tags/@endOfFadeIn}'
|
Chris@0
|
66 en:loudnessBeginVariance='{Tags/@loudnessBeginVariance}'
|
Chris@0
|
67 en:loudnessBeginMean='{Tags/@loudnessBeginMean}'
|
Chris@0
|
68 en:beatVariance='{Tags/@beatVariance}'
|
Chris@0
|
69 en:timeSignature_Stability='{Tags/@timeSignatureStability}'
|
Chris@0
|
70 en:loudnessDynamicsMean='{Tags/@loudnessDynamicsMean}'
|
Chris@0
|
71 en:timbreVariance='{Tags/@timbreVariance}'
|
Chris@0
|
72 en:loudnessMaxVariance='{Tags/@loudnessMaxVariance}'
|
Chris@0
|
73 en:loudnessMaxMean='{Tags/@loudnessMaxMean}'
|
Chris@0
|
74 en:segmentDurationVariance='{Tags/@segmentDurationVariance}'
|
Chris@0
|
75 en:sizeTimbre='{Tags/@sizeTimbre}'
|
Chris@0
|
76 en:pitchMean='{Tags/@pitchMean}'
|
Chris@0
|
77 en:startOfFadeOut='{Tags/@startOfFadeOut}'
|
Chris@0
|
78 en:tatum='{Tags/@tatum}'
|
Chris@0
|
79 en:timeLoudnessMaxMean='{Tags/@timeLoudnessMaxMean}'
|
Chris@0
|
80 en:numTatums='{Tags/@numTatums}'
|
Chris@0
|
81 en:tempoConfidence='{Tags/@tempoConfidence}'
|
Chris@0
|
82 en:loudness='{Tags/@loudness}'
|
Chris@0
|
83 en:tempo='{Tags/@tempo}'
|
Chris@0
|
84 en:segmentDurationMean='{Tags/@segmentDurationMean}'
|
Chris@0
|
85 en:numSections='{Tags/@numSections}'
|
Chris@0
|
86 en:tatumConfidence='{Tags/@tatumConfidence}'
|
Chris@0
|
87 en:timeSignature='{Tags/@timeSignature}'
|
Chris@0
|
88 en:numBeats='{Tags/@numBeats}'
|
Chris@0
|
89 en:sizePitches='{Tags/@sizePitches}'
|
Chris@0
|
90 en:pitchVariance='{Tags/@pitchVariance}'
|
Chris@0
|
91 en:numSegments='{Tags/@numSegments}'
|
Chris@0
|
92 en:numTatumsPerBeat='{Tags/@numTatumsPerBeat}'
|
Chris@0
|
93 en:tatums='{Tatums}'
|
Chris@0
|
94 >
|
Chris@0
|
95 <mo:time>
|
Chris@0
|
96 <tl:Interval>
|
Chris@0
|
97 <tl:duration><xsl:value-of select='@duration'/></tl:duration>
|
Chris@0
|
98 <tl:onTimeLine> <!-- Should be unique -->
|
Chris@0
|
99 <tl:TimeLine rdf:about="#timeline"/>
|
Chris@0
|
100 </tl:onTimeLine>
|
Chris@0
|
101 </tl:Interval>
|
Chris@0
|
102 </mo:time>
|
Chris@0
|
103 </mo:Signal>
|
Chris@0
|
104
|
Chris@0
|
105 <!-- Describing local features -->
|
Chris@0
|
106
|
Chris@0
|
107 <!--- Sadly XSLT 2.0 -->
|
Chris@0
|
108 <!--<xsl:variable name="tantumID" select="tokenize('@Tatums',' ')"/>
|
Chris@0
|
109 <xsl:for-each select="$tantumID">
|
Chris@0
|
110 <en:Tantum>
|
Chris@0
|
111 <event:time>
|
Chris@0
|
112 <tl:at><xsl:value-of select='.'/></tl:at>
|
Chris@0
|
113 <tl:onTimeLine rdf:resource="#timeline"/>
|
Chris@0
|
114 </event:time>
|
Chris@0
|
115 </en:Tantum>
|
Chris@0
|
116 </xsl:for-each>
|
Chris@0
|
117 -->
|
Chris@0
|
118
|
Chris@0
|
119 <xsl:for-each select='Section'>
|
Chris@0
|
120 <af:StructuralSegment>
|
Chris@0
|
121 <event:time>
|
Chris@0
|
122 <tl:Interval>
|
Chris@0
|
123 <tl:start><xsl:value-of select='@start'/></tl:start>
|
Chris@0
|
124 <tl:duration><xsl:value-of select='@duration'/></tl:duration>
|
Chris@0
|
125 <tl:onTimeLine rdf:resource="#timeline"/>
|
Chris@0
|
126 </tl:Interval>
|
Chris@0
|
127 </event:time>
|
Chris@0
|
128 </af:StructuralSegment>
|
Chris@0
|
129 </xsl:for-each>
|
Chris@0
|
130
|
Chris@0
|
131 <xsl:for-each select='Segment'>
|
Chris@0
|
132 <en:Segment
|
Chris@0
|
133 en:loundnessBegin='{Tags/@loudnessBegin}'
|
Chris@0
|
134 en:loudnessMax='{Tags/@loudnessMax}'
|
Chris@0
|
135 en:loudnessEnd='{Tags/@loudnessEnd}'
|
Chris@0
|
136 en:timeLoudnessMax='{Tags/@timeLoudnessMax}'
|
Chris@0
|
137 en:pitches='{Tags/@pitches}'
|
Chris@0
|
138 en:timbreCoeff='{Tags/@timbreCoeff}'
|
Chris@0
|
139 >
|
Chris@0
|
140 <event:time>
|
Chris@0
|
141 <tl:Interval>
|
Chris@0
|
142 <tl:start><xsl:value-of select='@start'/></tl:start>
|
Chris@0
|
143 <tl:duration><xsl:value-of select='@duration'/></tl:duration>
|
Chris@0
|
144 <tl:onTimeLine rdf:resource="#timeline"/>
|
Chris@0
|
145 </tl:Interval>
|
Chris@0
|
146 </event:time>
|
Chris@0
|
147 </en:Segment>
|
Chris@0
|
148 </xsl:for-each>
|
Chris@0
|
149
|
Chris@0
|
150 </xsl:for-each>
|
Chris@0
|
151 </rdf:RDF>
|
Chris@0
|
152 </xsl:template>
|
Chris@0
|
153
|
Chris@0
|
154 </xsl:transform>
|