source: main/trunk/model-sites-dev/mars/collect/amc-audioDB/etc/collectionConfig.xml@ 30448

Last change on this file since 30448 was 30448, checked in by davidb, 8 years ago

Revised test updated to work in Greenstone3 setting

File size: 24.3 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<CollectionConfig xmlns:gsf="http://www.greenstone.org/greenstone3/schema/ConfigFormat" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
3 <metadataList>
4 <metadata lang="en" name="creator"/>
5 <metadata lang="en" name="maintainer"/>
6 <metadata lang="en" name="public">true</metadata>
7 </metadataList>
8 <displayItemList>
9 <displayItem assigned="true" lang="en" name="description">
10 Demonstration of an audio content analysis based digital library, based around audioDB.
11 </displayItem>
12 <displayItem assigned="true" lang="en" name="name">AMC + audioDB </displayItem>
13 <displayItem assigned="true" lang="en" name="description">
14 Demonstration collection, based on the represented artists as the Australian Music Centre.
15 The collection demonstrates an experimental extension of Greenstone3, which
16 provides a music-based content-similarity search based on the Locality Sensitive Hashing (LSH)
17 algorithm provided by audioDB.
18 </displayItem>
19 <displayItem assigned="true" lang="en" name="amc.title">titles</displayItem>
20 <displayItem assigned="true" lang="en" name="amc.artist">artists</displayItem>
21 <displayItem assigned="true" lang="en" name="document:text">text</displayItem>
22 <displayItem assigned="true" lang="en" name="document:ex.Title">Title</displayItem>
23 <displayItem assigned="true" lang="en" name="document:ex.Source">Source</displayItem>
24 <displayItem assigned="true" lang="en" name="document">document</displayItem>
25 <displayItem assigned="true" lang="en" name="section">section</displayItem>
26 </displayItemList>
27 <format/>
28 <search type="lucene">
29 <level name="document">
30 <displayItem lang="en" name="name">document</displayItem>
31 </level>
32 <level name="section">
33 <displayItem lang="en" name="name">section</displayItem>
34 </level>
35 <defaultLevel name="document"/>
36 <index name="amc.title">
37 <displayItem lang="en" name="name">titles</displayItem>
38 </index>
39 <index name="amc.artist">
40 <displayItem lang="en" name="name">artists</displayItem>
41 </index>
42 <defaultIndex name="amc.title"/>
43 <indexOption name="casefold"/>
44 <indexOption name="stem"/>
45 <searchType name="plain"/>
46 <searchType name="simpleform"/>
47 <searchType name="advancedform"/>
48 <format>
49 <gsf:template match="documentNode">
50 <td valign="top">
51 <gsf:icon type="document"/>
52 </td>
53
54 <td>
55 <xsl:if test="/page/pageResponse/service/@name = 'AudioQuery'">
56 (<script>
57 var rank=<xsl:value-of select="@rank"/>;
58 var perc=(rank-0.9)*100*10;
59 document.write(perc.toFixed(1));
60 </script>%)
61 </xsl:if>
62 <a>
63 <xsl:choose>
64 <xsl:when test="/page/pageResponse/collection/@name">
65 <xsl:attribute name="href"><xsl:value-of select="$library_name"/>?a=d&amp;c=<xsl:value-of select="/page/pageResponse/collection/@name"/>&amp;d=<xsl:value-of select="@nodeID"/>&amp;dt=<xsl:value-of select="@docType"/>&amp;p.frameOffset=<xsl:value-of select="@frameOffset"/>&amp;p.a=q&amp;p.s=<xsl:value-of select="/page/pageResponse/service/@name"/>&amp;hl=on&amp;ed=1#<xsl:value-of select="@nodeID"/></xsl:attribute>
66 </xsl:when>
67 <xsl:when test="@collection">
68 <xsl:attribute name="href"><xsl:value-of select="$library_name"/>?a=d&amp;c=<xsl:value-of select="@collection"/>&amp;d=<xsl:value-of select="@nodeID"/>&amp;dt=<xsl:value-of select="@docType"/>p.frameOffset=<xsl:value-of select="@frameOffset"/>&amp;p.a=q&amp;p.s=<xsl:value-of select="/page/pageResponse/service/@name"/>&amp;hl=on&amp;ed=1#<xsl:value-of select="@nodeID"/></xsl:attribute>
69 </xsl:when>
70 </xsl:choose>
71
72 <gsf:metadata name="amc.title"/>
73 </a>
74 <xsl:if test="/page/pageResponse/service/@name = 'AudioQuery'">
75<span style="font-style: italics; font-size: 90%" >
76Matching offset @
77<script>
78 <xsl:text disable-output-escaping="yes">
79 var frameOffsetStr="</xsl:text><xsl:value-of select="@frameOffset"/><xsl:text disable-output-escaping="yes">";
80 var frameOffsetList = frameOffsetStr.split(",");
81 for(i=0; i &lt; frameOffsetList.length; i++) {
82 var frameOffset = frameOffsetList[i];
83 var offsetInSecs=(250*frameOffset)/1000.0;
84 if (i &gt; 0) { document.write(", "); }
85 document.write(offsetInSecs.toFixed(2));
86 }
87 </xsl:text>
88</script> secs
89</span>
90 </xsl:if>
91
92 </td>
93 </gsf:template>
94
95
96
97
98
99
100 </format>
101 </search>
102
103 <search type="audioDB" orthogonal="true">
104 </search>
105
106 <infodb type="jdbm"/>
107 <import>
108 <pluginList>
109 <plugin name="ZIPPlugin"/>
110 <plugin name="GreenstoneXMLPlugin"/>
111 <plugin name="EmbeddedMetadataPlugin"/>
112 <plugin name="AMCMetadataJSONPlugin"/>
113
114 <plugin name="AudioDBPlugin">
115 <option name="-compute_fft_features" value="true"/>
116 <option name="-enable_streaming" value="mp3"/>
117 <option name="-enable_cache"/>
118 <option name="-process_exp" value="(?i)(\.m4a)$"/>
119 </plugin>
120
121
122 <plugin name="TextPlugin"/>
123 <plugin name="TextPlugin"/>
124 <plugin name="HTMLPlugin"/>
125 <plugin name="EmailPlugin"/>
126 <plugin name="PDFPlugin"/>
127 <plugin name="RTFPlugin"/>
128 <plugin name="WordPlugin"/>
129 <plugin name="PostScriptPlugin"/>
130 <plugin name="PowerPointPlugin"/>
131 <plugin name="ExcelPlugin"/>
132 <plugin name="ImagePlugin"/>
133 <plugin name="ISISPlugin"/>
134 <plugin name="NulPlugin"/>
135 <plugin name="OAIPlugin"/>
136 <plugin name="MetadataXMLPlugin"/>
137 <plugin name="ArchivesInfPlugin"/>
138 <plugin name="DirectoryPlugin"/>
139 </pluginList>
140 </import>
141 <browse>
142 <classifier name="AZCompactList">
143 <option name="-metadata" value="dc.Title;amc.title;ex.amc.title;Title"/>
144 <option name="-mingroup" value="2"/>
145 </classifier>
146 <classifier name="AZCompactList">
147 <option name="-metadata" value="dc.Creator,amc.artist,ex.amc.artist"/>
148 <option name="-buttonname" value="Artists"/>
149 <option name="-mingroup" value="1"/>
150 <option name="-minnesting" value="40"/>
151 </classifier>
152 <format>
153 <gsf:template match="documentNode">
154 <td valign="top">
155 <gsf:link type="document">
156 <gsf:icon type="document"/>
157 </gsf:link>
158 </td>
159 <td valign="top">
160 <gsf:link type="source">
161 <gsf:choose-metadata>
162 <gsf:metadata name="thumbicon"/>
163 <gsf:metadata name="srcicon"/>
164 </gsf:choose-metadata>
165 </gsf:link>
166 </td>
167 <td valign="top">
168 <gsf:link type="document">
169 <gsf:choose-metadata>
170 <gsf:metadata name="dc.Title"/>
171 <gsf:metadata name="amc.title"/>
172 <gsf:metadata name="exp.Title"/>
173 <gsf:metadata name="Title"/>
174 <gsf:default>Untitled</gsf:default>
175 </gsf:choose-metadata>
176 </gsf:link>
177 </td>
178 </gsf:template>
179 <gsf:template match="classifierNode">
180 <td valign="top">
181 <gsf:link type="classifier">
182 <gsf:icon type="classifier"/>
183 </gsf:link>
184 </td>
185 <td valign="top">(<gsf:metadata name="numleafdocs"/>)</td>
186 <td valign="top">
187 <gsf:link type="source">
188 <gsf:choose-metadata>
189 <gsf:metadata name="thumbicon"/>
190 <gsf:metadata name="srcicon"/>
191 </gsf:choose-metadata>
192 </gsf:link>
193 </td>
194 <td valign="top">
195 <gsf:link type="classifier">
196 <gsf:choose-metadata>
197 <gsf:metadata name="dc.Title"/>
198 <gsf:metadata name="amc.title"/>
199 <gsf:metadata name="exp.Title"/>
200 <gsf:metadata name="Title"/>
201 <gsf:default>Untitled</gsf:default>
202 </gsf:choose-metadata>
203 </gsf:link>
204 <gsf:switch>
205 <gsf:metadata name="Source"/>
206 <gsf:when test="exists">
207 <br/>
208 <i>(<gsf:metadata name="Source"/>)</i>
209 </gsf:when>
210 </gsf:switch>
211 </td>
212 </gsf:template>
213 <gsf:template match="classifierNode" mode="horizontal">
214 <gsf:link type="horizontal">
215 <gsf:metadata name="Title"/>
216 </gsf:link>
217 </gsf:template>
218 </format>
219 </browse>
220 <display>
221 <format>
222 <gsf:option name="TOC" value="false"/>
223 <gsf:template name="documentHeading">
224 <!-- title will be dsiplayed in playbar at top of page, so supress showing title here -->
225 <gsf:script src="interfaces/{$interface_name}/js/direct-edit-source.js"/>
226 <xsl:call-template name="init-direct-edit"/>
227
228 </gsf:template>
229 <gsf:template name="documentContentXXX">
230 <xsl:param name="collName"/>
231 <xsl:variable name="docID" select="@docID"/>
232 </gsf:template>
233
234 <xsl:template name="documentContent">
235 <xsl:variable name="httpCollection">
236 sites/<xsl:value-of select="$site_name"/>/collect/<xsl:value-of select="/page/pageResponse/collection/@name"/>
237 </xsl:variable>
238 <xsl:variable name="assocFilePath">
239 <gsf:metadata name="assocfilepath" select="root"/>
240 </xsl:variable>
241 <xsl:variable name="cgiargFrameOffset">
242 <xsl:value-of select="/page/pageRequest/paramList/param[@name='p.frameOffset']/@value"/>
243 </xsl:variable>
244 <xsl:variable name="lastfmtrackurl">
245 <gsf:metadata name="dc.Identifier.lastfmtrackurl"/>
246 </xsl:variable>
247 <xsl:variable name="imageUrls">
248 <gsf:metadata multiple="true" name="EchoNest.Artist-RelatedImage" separator="&amp;quot;, &amp;quot;"/>
249 </xsl:variable>
250 <xsl:variable name="echonestid">
251 <gsf:metadata name="dc.Identifier"/>
252 </xsl:variable>
253 <div class="documenttext">
254
255 <ul class="playlist">
256 <style>
257 ul.playlist li {
258 background-color: #87A41C;
259 }
260
261 ul.playlist li.sm2_playing {
262 background-color: #657C0D;
263 }
264
265 ul.playlist li:hover {
266 background-color: #778410;
267 }
268
269 </style>
270 <li class="rounded">
271 <a href="{$httpCollection}/index/assoc/{$assocFilePath}/doc.mp3" id="mysong">Play all of: <gsf:choose-metadata><gsf:metadata name="dc.Title"/><gsf:metadata name="amc.title"/><gsf:metadata name="exp.Title"/><gsf:metadata name="Title"/><gsf:default>Untitled</gsf:default></gsf:choose-metadata></a>
272 </li>
273 </ul>
274
275 <ul style="font-size: 80%; margin-top: 10px; font-style: italics; ">
276 <li>Click on the green bar above <b>to start</b> playing.</li>
277 <li>Click again in play area (outside of time-line) <b>to pause</b>.</li>
278 <li>Click <b>within time-line</b> to jump to that section of song
279 (assuming enough buffered downloading has occurred).</li>
280 </ul>
281<!--
282only put in the "Play match @ offset if got a valid offset value
283-->
284 <xsl:choose>
285 <xsl:when test="$cgiargFrameOffset != '' and $cgiargFrameOffset != '-1'">
286 <hr/>
287
288 <div style="cursor: pointer;">
289 <i>Play match @ offset <span id="mysongOffset"/></i>
290 </div>
291 </xsl:when>
292 </xsl:choose>
293 <hr/>
294 <form action="{$library_name}" method="get" name="QueryForm">
295 <input name="a" type="hidden" value="q"/>
296 <input name="sa" type="hidden">
297 <xsl:attribute name="value">
298 <xsl:value-of select="/page/pageRequest/@subaction"/>
299 </xsl:attribute>
300 </input>
301 <input name="rt" type="hidden" value="rd"/>
302 <input name="s" type="hidden" value="AudioQuery"/>
303 <input name="c" type="hidden" value="{$collName}"/>
304 <xsl:if test="not(paramList/param[@name='startPage'])">
305 <input name="startPage" type="hidden" value="1"/>
306 </xsl:if>
307 <xsl:choose>
308 <xsl:when test="/page/pageRequest/paramList/param[@name = 's1.maxDocs']">
309 <input name="s1.maxDocs" type="hidden">
310 <xsl:attribute name="value">
311 <xsl:value-of select="/page/pageRequest/paramList/param[@name = 's1.maxDocs']/@value"/>
312 </xsl:attribute>
313 </input>
314 </xsl:when>
315 <xsl:otherwise>
316 <input name="s1.maxDocs" type="hidden" value="100"/>
317 </xsl:otherwise>
318 </xsl:choose>
319 <xsl:choose>
320 <xsl:when test="/page/pageRequest/paramList/param[@name = 's1.hitsPerPage']">
321 <input name="s1.hitsPerPage" type="hidden">
322 <xsl:attribute name="value">
323 <xsl:value-of select="/page/pageRequest/paramList/param[@name = 's1.hitsPerPage']/@value"/>
324 </xsl:attribute>
325 </input>
326 </xsl:when>
327 <xsl:otherwise>
328 <input name="s1.hitsPerPage" type="hidden" value="20"/>
329 </xsl:otherwise>
330 </xsl:choose>
331 <input name="q" type="hidden" value="{$assocFilePath}" />
332 <input name="s1.query" type="hidden" value="{$assocFilePath}" />
333
334 <input name="s1.offset" type="hidden" value="0"/>
335 <input name="s1.length" type="hidden" value="200"/>
336 <div style="font-style: italics;">Start audio-based query @ offset <span id="mysongCurrentPos">0 secs</span>,
337with excerpt lasting <span class="editable-offset" id="mysongWindowDuration" style="cursor: pointer; border: 1px solid black; padding: 3px; width: 200px; min-width: 200px;">3.0</span> secs:<input onclick="preSubmit(this.form);" type="submit" value="Search"/></div>
338 <ul style="font-size: 80%; margin-top: 8px; font-style: italics;">
339 <li>Use the <b>Play all of</b> bar to get to the part of the song you are interested in.</li>
340 <li>... the <b>query @ offset</b> value will change accordingly as the song progresses.</li>
341 <li>Click <b>pause</b> (anywhere outside of the time-line) to mark the spot you want to start the new music query.</li>
342 <li>Optionally click on the <b>excerpt lasting</b> value and edit, if you want to change the length of excerpt used in the match.</li>
343 <li>Finally, click the <b>Search</b> button to initiate the new query.</li>
344 </ul>
345 </form>
346 <hr/>
347 <script>
348 <xsl:text disable-output-escaping="yes">if (window.location.toString().match(/fancyplayer/i)) {
349 PP_CONFIG.usePeakData = true;
350 PP_CONFIG.useEQData = true;
351 PP_CONFIG.useFavIcon = true;
352 }
353
354 function playFromOffset(id,frameOffset)
355 {
356 var msecOffset = 250 * frameOffset;
357 idElem = document.getElementById(id);
358 pagePlayer.handleClick({target:idElem}); /* fake a click */
359 soundManager.stopAll();
360 /* soundManager.setPosition(id,5000); */
361 soundManager.play(id,{position: msecOffset});
362 }
363
364 function preSubmit(form)
365 {
366 var currentPosElem = document.getElementById("mysongCurrentPos");
367 var offsetInMSecs = currentPosElem.getAttribute("offsetInMSecs");
368 var frameOffset = Math.round(offsetInMSecs/250.0);
369 form.elements["s1.offset"].value = frameOffset;
370
371 var lengthInSecs = document.getElementById("mysongWindowDuration").innerHTML;
372
373 var frameLength = Math.round(lengthInSecs*1000/250.0);
374 form.elements["s1.length"].value = frameLength;
375
376 return true;
377 }</xsl:text>
378 <xsl:choose>
379 <xsl:when test="$cgiargFrameOffset != '-1'">
380 <xsl:text disable-output-escaping="yes">var allOffsets = "";
381 var frameOffsetStr="</xsl:text>
382 <xsl:value-of select="$cgiargFrameOffset"/>
383 <xsl:text disable-output-escaping="yes">";
384 var frameOffsetList = frameOffsetStr.split(",");
385 frameOffsetList.sort(function(a,b){return a-b});
386
387 for (i=0; i &lt; frameOffsetList.length; i++) {
388 var frameOffset = frameOffsetList[i];
389 var offsetInSecs=(250*frameOffset)/1000.0;
390
391 if (i &gt; 0) { allOffsets += ", "; }
392
393 var span_attr = "class=\"spanbuttonoff\" style=\"cursor: pointer;\"";
394 span_attr += " onmouseover=\"this.className='spanbuttonon'\"";
395 span_attr += " onmouseout=\"this.className='spanbuttonoff'\"";
396 span_attr += " onclick=\"playFromOffset('mysong'," + frameOffset + ")\"";
397
398 allOffsets += "&lt;span " + span_attr + "&gt;" + offsetInSecs + "&lt;/span&gt;";
399 }
400
401 var jumpDurationSpan = document.getElementById("mysongOffset");
402 jumpDurationSpan.innerHTML = allOffsets + " secs";</xsl:text>
403 </xsl:when>
404 <xsl:otherwise>var frameOffset=-1;</xsl:otherwise>
405 </xsl:choose>
406 </script>
407 </div>
408 </xsl:template>
409<!--
410Creates a header for the html page
411-->
412 <xsl:template name="create-html-headerXXXX">
413 <title><xsl:call-template name="pageTitle"/> ::<xsl:call-template name="siteName"/></title>
414 <link href="interfaces/{$interface_name}/style/core.css" rel="stylesheet" type="text/css"/>
415 <link href="favicon.ico" rel="shortcut icon"/>
416<!--
417Hook in Seaweed: seamless web editing
418-->
419 <script src="interfaces/{$interface_name}/js/direct-edit-source.js" type="text/javascript">
420 <xsl:text> </xsl:text> </script>
421<!--
422Page player core CSS
423-->
424 <link href="ext/audioDB/css/page-player.css" rel="stylesheet" type="text/css"/>
425<!--
426soundManager.useFlashBlock: related CSS
427-->
428 <link href="ext/audioDB/css/flashblock.css" rel="stylesheet" type="text/css"/>
429<!--
430optional: annotations/sub-tracks/notes, and alternate themes
431-->
432 <link href="ext/audioDB/css/optional-annotations.css" rel="stylesheet" type="text/css"/>
433 <link href="ext/audioDB/css/optional-themes.css" rel="stylesheet" type="text/css"/>
434 <style type="text/css">ul.playlist li .comment {font-size:0.65em;opacity:0.5}</style>
435<!--
436soundManager API
437-->
438 <script src="ext/audioDB/script/soundmanager2-nodebug.js">
439 <xsl:text> </xsl:text> </script>
440 <script>
441 <xsl:text disable-output-escaping="yes">/* init Seaweed */
442
443
444 de.onready(function() {
445 try {
446 de.init();
447
448 de.doc.declarePropertySets({
449 offset: {
450 phMarkup: '[Enter offset value]',
451 name: "offset"
452 }
453 });
454 }
455 catch (err) {
456 alert("Seaweed failed to initialise: " + err.message);
457 }
458 });
459
460/* --------
461
462 Config override: This demo uses shiny flash 9 stuff, overwriting Flash 8-based defaults
463 Alternate PP_CONFIG object must be defined before soundManager.onready()/onload() fire.
464 Alternately, edit the config in page-player.js to simply use the values below by default
465
466-------- */
467
468/* demo only, but you can use these settings too.. */
469soundManager.flashVersion = 9;
470soundManager.preferFlash = true; /* for visualization effects */
471soundManager.useHighPerformance = true; /* keep flash on screen, boost performance */
472soundManager.wmode = "transparent"; /* transparent SWF, if possible */
473soundManager.useFastPolling = true; /* increased JS callback frequency */
474soundManager.url = "ext/audioDB/swf/";
475
476/* custom page player configuration */
477
478var PP_CONFIG = {
479 autoStart: false, /* begin playing first sound when page loads */
480 playNext: false, /* stop after one sound, or play through list until end */
481 useThrottling: false, /* try to rate-limit potentially-expensive calls (eg. dragging position around) */
482 usePeakData: true, /* [Flash 9 only] whether or not to show peak data (left/right channel values) - nor noticable on CPU */
483 useWaveformData: false,/* [Flash 9 only] show raw waveform data - WARNING: LIKELY VERY CPU-HEAVY */
484 useEQData: false, /* [Flash 9 only] show EQ (frequency spectrum) data */
485 useFavIcon: false, /* try to apply peakData to address bar (Firefox + Opera) - performance note: appears to make Firefox 3 do some temporary, heavy disk access/swapping/garbage collection at first(?) - may be too heavy on CPU */
486 useMovieStar: true /* Flash 9.0r115+ only: Support for a subset of MPEG4 formats. */
487}</xsl:text>
488 </script>
489<!--
490Page player main script
491-->
492 <script src="ext/audioDB/script/page-player.js">
493 <xsl:text> </xsl:text> </script>
494<!--
495optional: Metadata UI prototype (not needed unless you want the bottom-most demo bits)
496-->
497 <script src="ext/audioDB/script/optional-page-player-metadata.js">
498 <xsl:text> </xsl:text> </script>
499 </xsl:template>
500
501
502
503 <xsl:template name="additionalHeaderContent">
504<!--
505Page player core CSS
506-->
507 <link href="ext/audioDB/css/page-player.css" rel="stylesheet" type="text/css"/>
508<!--
509soundManager.useFlashBlock: related CSS
510-->
511 <link href="ext/audioDB/css/flashblock.css" rel="stylesheet" type="text/css"/>
512<!--
513optional: annotations/sub-tracks/notes, and alternate themes
514-->
515 <link href="ext/audioDB/css/optional-annotations.css" rel="stylesheet" type="text/css"/>
516 <link href="ext/audioDB/css/optional-themes.css" rel="stylesheet" type="text/css"/>
517 <style type="text/css">ul.playlist li .comment {font-size:0.65em;opacity:0.5}</style>
518<!--
519soundManager API
520-->
521 <script src="ext/audioDB/script/soundmanager2-nodebug.js">
522 <xsl:text> </xsl:text> </script>
523 <script>
524 <xsl:text disable-output-escaping="yes">
525
526/* --------
527
528 Config override: This demo uses shiny flash 9 stuff, overwriting Flash 8-based defaults
529 Alternate PP_CONFIG object must be defined before soundManager.onready()/onload() fire.
530 Alternately, edit the config in page-player.js to simply use the values below by default
531
532-------- */
533
534/* demo only, but you can use these settings too.. */
535soundManager.flashVersion = 9;
536soundManager.preferFlash = true; /* for visualization effects */
537soundManager.useHighPerformance = true; /* keep flash on screen, boost performance */
538soundManager.wmode = "transparent"; /* transparent SWF, if possible */
539soundManager.useFastPolling = true; /* increased JS callback frequency */
540soundManager.url = "ext/audioDB/swf/";
541
542/* custom page player configuration */
543
544var PP_CONFIG = {
545 autoStart: false, /* begin playing first sound when page loads */
546 playNext: false, /* stop after one sound, or play through list until end */
547 useThrottling: false, /* try to rate-limit potentially-expensive calls (eg. dragging position around) */
548 usePeakData: true, /* [Flash 9 only] whether or not to show peak data (left/right channel values) - nor noticable on CPU */
549 useWaveformData: false,/* [Flash 9 only] show raw waveform data - WARNING: LIKELY VERY CPU-HEAVY */
550 useEQData: false, /* [Flash 9 only] show EQ (frequency spectrum) data */
551 useFavIcon: false, /* try to apply peakData to address bar (Firefox + Opera) - performance note: appears to make Firefox 3 do some temporary, heavy disk access/swapping/garbage collection at first(?) - may be too heavy on CPU */
552 useMovieStar: true /* Flash 9.0r115+ only: Support for a subset of MPEG4 formats. */
553}</xsl:text>
554 </script>
555<!--
556Page player main script
557-->
558 <script src="ext/audioDB/script/page-player.js">
559 <xsl:text> </xsl:text> </script>
560<!--
561optional: Metadata UI prototype (not needed unless you want the bottom-most demo bits)
562-->
563 <script src="ext/audioDB/script/optional-page-player-metadata.js">
564 <xsl:text> </xsl:text> </script>
565 </xsl:template>
566
567
568
569
570
571 </format>
572 </display>
573 <replaceListRef id="gs2-standard"/>
574 <replaceListRef id="gs2-image"/>
575 <serviceRackList><!-- comment out the following serviceRack if you want to disable OAI for this collection -->
576 <serviceRack name="OAIPMH">
577 <ListMetadataFormats><!--What metadata sets to support is collection specific. To support other metadata schema, simply add a metadataFormat element here.
578 The support of unqualified Dublin Core metadata set is mandatory in the oai specification.
579 -->
580 <metadataFormat metadataPrefix="oai_dc">
581 <metadataPrefix>oai_dc</metadataPrefix>
582 <schema>http://www.openarchives.org/OAI/2.0/oai_dc.xsd</schema>
583 <metadataNamespace>http://www.openarchives.org/OAI/2.0/oai_dc/</metadataNamespace><!--<metadataElements>dc.Title,dc.Creator,dc.Subject,dc.Description,dc.Publisher,dc.Contributor,dc.Date,dc.Type,dc.Format,dc.Identifier,dc.Source,dc.Language,dc.Relation,dc.Coverage,dc.Rights</metadataElements>
584 -->
585 <mappingList><!--
586 The mapping is in the form: <publicly supported metadata name>,<mapped metadata name>, short as <A>,<B>
587 The first metadata name is medatory; if there is no mapped name followed, then the first name must be used by the records and
588 searchable in the database, otherwise it is the mapped name stored in the database. The number of mapping elements matches the
589 number of external metadata of the records. If only one name is present, the returned metadata will use this name plus the retrieved value;
590 if both <A>,<B> are present, the returned metadata will use <A>'s name plus <B>'s value retrieved from database.
591
592 **Bear in mind: if this mapping list is not present, the standard dc. metadata names (15 in total) will be used to retrieve metadata in the database.
593
594 **The only case when this mapping is not present is that: 1. this metadata format is oai_dc; 2. the metadata is also stored in the database by Dublin Core's names.
595 -->
596 <mapping>dc.Title,amc.title,Title</mapping><!-- This mapping example means that the dc.Title is requested and the value of the metadata Title, which is used in this repository, is returned as response. -->
597 </mappingList>
598 </metadataFormat>
599 </ListMetadataFormats>
600 </serviceRack>
601 </serviceRackList>
602</CollectionConfig>
Note: See TracBrowser for help on using the repository browser.