source: main/trunk/model-sites-dev/multimodal-mdl/collect/linkeddata-my-ipod/etc/collectionConfig.xml@ 28469

Last change on this file since 28469 was 28469, checked in by davidb, 11 years ago

Tidy up/improvement to collection config file and REBUILD.sh script

  • Property svn:executable set to *
  • Property svn:mime-type set to application/xml
File size: 19.0 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 name="creator"></metadata>
5 <metadata name="maintainer"></metadata>
6 <metadata name="public">true</metadata>
7 </metadataList>
8 <displayItemList>
9 <displayItem assigned="true" lang="en" name="enumeratedName">2. Linked Data Core</displayItem>
10 <displayItem assigned="true" lang="en" name="name">Linked Data Core</displayItem>
11 <displayItem assigned="true" lang="en" name="shortDescription">short description about collection ...</displayItem>
12 <displayItem assigned="true" lang="en" name="description">long description about collection ...</displayItem>
13 </displayItemList>
14 <!-- Global format statement -->
15 <format>
16 <gsf:template name="choose-title">
17
18 <gsf:choose-metadata>
19 <gsf:metadata name="dc.Title"/>
20 <gsf:metadata name="exp.Title"/>
21 <gsf:metadata name="ex.dc.Title"/>
22 <gsf:metadata name="ex.ID3.Title"/>
23 <gsf:metadata name="ex.Title"/>
24 <gsf:metadata name="Title"/>
25 <gsf:default>Untitled</gsf:default>
26 </gsf:choose-metadata>
27
28 <gsf:switch>
29 <gsf:metadata name='dc.Creator'/>
30 <gsf:when test='exists'>
31
32 <gsf:switch>
33 <gsf:metadata name="dc.Creator"/>
34 <gsf:when test="notEquals" test-value="Unknown">
35
36 by <i><gsf:metadata name='dc.Creator'/></i>
37 </gsf:when>
38 </gsf:switch>
39
40 </gsf:when>
41 </gsf:switch>
42 </gsf:template>
43 </format>
44
45 <search type="lucene">
46 <level name="document">
47 <displayItem lang="en" name="name">document</displayItem>
48 </level>
49 <level name="section">
50 <displayItem lang="en" name="name">section</displayItem>
51 </level>
52 <defaultLevel name="document"/>
53 <index name="text">
54 <displayItem lang="en" name="name">text</displayItem>
55 </index>
56 <index name="dc.Title,ex.dc.Title,ex.ID3.Title,Title">
57 <displayItem lang="en" name="name">titles</displayItem>
58 </index>
59 <index name="Source">
60 <displayItem lang="en" name="name">filenames</displayItem>
61 </index>
62 <defaultIndex name="text"/>
63 <searchType name="plain"/>
64 <searchType name="simpleform"/>
65 <searchType name="advancedform"/>
66
67
68 <!-- Search Format Statement -->
69 <format>
70 <gsf:template match="documentNode">
71
72 <gsf:variable name="cgiargFrameLength">
73 <xsl:value-of select="/page/pageRequest/paramList/param[@name='p.frameLength']/@value"/>
74 </gsf:variable>
75
76 <xsl:variable name="cgiargYScaleSimImg"><xsl:choose>
77 <xsl:when test="/page/pageRequest/paramList/param[@name='p.yScaleSimImg']/@value != ''"><xsl:value-of select="/page/pageRequest/paramList/param[@name='p.yScaleSimImg']/@value"/></xsl:when>
78 <xsl:otherwise>0.5</xsl:otherwise>
79 </xsl:choose>
80 </xsl:variable>
81
82 <td valign="top">
83 <gsf:icon type="document"/>
84 </td>
85 <td>
86 <xsl:choose>
87 <xsl:when test="@rank != 'NaN'">
88 (<script>
89 var rank=<xsl:value-of select="@rank"/>;
90 var perc=(rank-0.9)*100*10;
91 document.write(perc.toFixed(1));
92 </script>%)
93 </xsl:when>
94 </xsl:choose>
95
96 <xsl:choose>
97 <xsl:when test="/page/pageResponse/service[@name='AudioQuery']">
98 <a>
99 <xsl:attribute name="href"><xsl:value-of select="$library_name"/>/collection/<xsl:value-of select="/page/pageResponse/collection/@name"/>/document/<xsl:value-of select="@nodeID"/>?p.frameOffset=<xsl:value-of select="@frameOffset"/>&amp;p.frameLength=<xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.length']/@value"/>&amp;p.a=q&amp;p.s=<xsl:value-of select="/page/pageResponse/service/@name"/>&amp;p.yScaleSimImg=<xsl:value-of select="$cgiargYScaleSimImg"/>
100
101 </xsl:attribute>
102
103 <xsl:call-template name="choose-title"/>
104 </a>
105 </xsl:when>
106 <xsl:otherwise>
107 <gsf:link>
108 <xsl:call-template name="choose-title"/>
109 </gsf:link>
110 </xsl:otherwise>
111 </xsl:choose>
112
113 <gsf:switch>
114 <gsf:metadata name="artist"/>
115 <gsf:when test="exists">
116 by <gsf:metadata name="artist"/>
117 </gsf:when>
118 </gsf:switch>
119
120 <gsf:switch>
121 <gsf:metadata name="js.LabelledStructure"/>
122 <gsf:when test="exists">
123 <br/><i style="font-size: 80%">(Labelled structure: <gsf:metadata name="js.LabelledStructure"/>)</i>
124 </gsf:when>
125 </gsf:switch>
126
127 </td>
128 </gsf:template>
129 </format>
130
131 </search>
132
133 <search type="jenaTDB" orthogonal="true" />
134
135 <infodb type="jdbm"/>
136
137 <import>
138 <pluginList>
139 <plugin name="ZIPPlugin"/>
140 <plugin name="GreenstoneXMLPlugin"/>
141
142 <plugin name="EmbeddedMetadataPlugin">
143 <option name="-process_exp" value="(?i)\.mp3$"/>
144 </plugin>
145
146 <plugin name="AudioDBPlugin">
147 <option name="-enable_streaming" value="mp3"/>
148 <option name="-retrieve_mir_metadata" value="true"/>
149 <option name="-enable_cache"/>
150 </plugin>
151
152 <plugin name="TextPlugin"/>
153 <plugin name="HTMLPlugin"/>
154 <plugin name="EmailPlugin"/>
155 <plugin name="PDFPlugin"/>
156 <plugin name="RTFPlugin"/>
157 <plugin name="WordPlugin"/>
158 <plugin name="PostScriptPlugin"/>
159 <plugin name="PowerPointPlugin"/>
160 <plugin name="ExcelPlugin"/>
161 <plugin name="ImagePlugin"/>
162 <plugin name="ISISPlugin"/>
163 <plugin name="NulPlugin"/>
164 <plugin name="OAIPlugin"/>
165 <plugin name="MetadataXMLPlugin"/>
166 <plugin name="ArchivesInfPlugin"/>
167 <plugin name="DirectoryPlugin"/>
168 </pluginList>
169 </import>
170
171 <importOption name="OIDtype" value="hash_on_full_filename"/>
172
173 <browse>
174 <classifier name="AZCompactList">
175 <option name="-metadata" value="dc.Title;ex.dc.Title;ex.ID3.Title;Title"/>
176 <option name="-mingroup" value="2"/>
177 <option name="-removeprefix" value="(?i)Le|La|Les|The|A\\s+"/>
178 </classifier>
179
180 <classifier name="AZCompactList">
181 <option name="-metadata" value="dc.Creator;ex.ID3.Artist"/>
182 <option name="-buttonname" value="Artists"/>
183 <option name="-mingroup" value="1"/>
184 <option name="-minnesting" value="40"/>
185 </classifier>
186
187 <classifier name="AZCompactList">
188 <option name="-metadata" value="dc.Title.albumtitle;ex.ID3.Album"/>
189 <option name="-buttonname" value="Albums"/>
190 <option name="-mingroup" value="1"/>
191 <option name="-minnesting" value="40"/>
192 </classifier>
193
194
195 <!--
196
197 <classifier name="List">
198 <option name="-metadata" value="dc.Title;Title"/>
199 <option name="-partition_type_within_level" value="approximate_size"/>
200 </classifier>
201 <classifier name="List">
202 <option name="-metadata" value="dc.Creator"/>
203 <option name="-button_name" value="Artists"/>
204 <option name="-partition_type_within_level" value="approximate_size"/>
205 </classifier>
206
207 -->
208
209 <format>
210 <gsf:template match="documentNode">
211 <td valign="top">
212 <gsf:link type="document">
213 <gsf:icon type="document"/>
214 </gsf:link>
215 </td>
216 <td valign="top">
217 <gsf:link type="source">
218 <gsf:choose-metadata>
219 <gsf:metadata name="thumbicon"/>
220 <gsf:metadata name="srcicon"/>
221 </gsf:choose-metadata>
222 </gsf:link>
223 </td>
224 <td valign="top">
225 <gsf:link type="document">
226 <!-- Defined in the global format statement -->
227 <xsl:call-template name="choose-title"/>
228
229 <gsf:switch>
230 <gsf:metadata name="dc.Title" />
231 <gsf:when test="equals" test-value="Unknown">
232 <br/><i>(<gsf:metadata name="Source"/>)</i>
233 </gsf:when>
234 </gsf:switch>
235
236 </gsf:link>
237 </td>
238 </gsf:template>
239
240 <gsf:template match="classifierNode[@classifierStyle = 'VList']">
241 <td valign="top">
242 <gsf:link type="classifier">
243 <gsf:icon type="classifier"/>
244 </gsf:link>
245 </td>
246 <td valign="top">
247 <gsf:link type="source">
248 <gsf:choose-metadata>
249 <gsf:metadata name="thumbicon"/>
250 <gsf:metadata name="srcicon"/>
251 </gsf:choose-metadata>
252 </gsf:link>
253 </td>
254 <td valign="top">
255 <!-- Defined in the global format statement -->
256 <xsl:call-template name="choose-title"/>
257 <gsf:switch>
258 <gsf:metadata name="Source"/>
259 <gsf:when test="exists"><br/><i>(<gsf:metadata name="Source"/>)</i></gsf:when>
260 </gsf:switch>
261 </td>
262 </gsf:template>
263 <gsf:template match="classifierNode[@classifierStyle = 'HList']">
264 <gsf:link type="classifier">
265 <gsf:metadata name="Title"/>
266 </gsf:link>
267 </gsf:template>
268 </format>
269 </browse>
270
271 <display>
272 <format>
273 <gsf:option name="TOC" value="false"/>
274
275 <!--
276 Overwriting this template allows you to change the heading of the document.
277 -->
278 <gsf:template name="documentHeading">
279
280 <xsl:variable name="httpCollection">
281 <xsl:value-of select="/page/pageResponse/collection/metadataList/metadata[@name='httpPath']"/>
282 </xsl:variable>
283
284 <!-- Metadata derived from finger-printing -->
285
286 <xsl:call-template name="metadata-block">
287 <xsl:with-param name="httpCollection" select="$httpCollection"/>
288 </xsl:call-template>
289
290 </gsf:template>
291
292
293 <!--
294 Overwriting this template can be used to redefine the content of the whole document.
295 This is useful for simple documents, but not recommended for more complex documents
296 (e.g. hierachical and paged documents) as it can prevent any sub-sections from showing.
297 -->
298 <!--
299 <gsf:template name="documentContent">
300 <xsl:call-template name="wrappedSectionImage"/>
301 <xsl:call-template name="wrappedSectionText"/>
302 </gsf:template>
303 -->
304
305 <!--
306 Overwriting this template can be used to change the content of section headings.
307 -->
308 <!--
309 <gsf:template name="sectionHeading">
310 <xsl:call-template name="choose-title"/>
311 </gsf:template>
312 -->
313
314 <!--
315 Overwriting this template can be used to change the content of the top-level section.
316 -->
317 <!--
318 <gsf:template name="topLevelSectionContent">
319 <xsl:call-template name="wrappedSectionImage"/>
320 <xsl:call-template name="wrappedSectionText"/>
321 </gsf:template>
322 -->
323
324 <!--
325 Overwriting this template can be used to change the content of sections.
326 -->
327
328 <!--
329 <gsf:template name="sectionContent">
330 <xsl:call-template name="wrappedSectionImage"/>
331 <xsl:call-template name="wrappedSectionText"/>
332 </gsf:template>
333 -->
334
335 <xsl:template name="additionalHeaderContent">
336
337
338 <xsl:call-template name="soundmanager2-header"/>
339 <xsl:call-template name="js-mad-header"/>
340
341 <!-- Bespoke jquery-ui extension for turnstyle open/close blocks -->
342 <gsf:style src="ext/jquery-ui-extra/turnstyle-block.css"/>
343 <gsf:script src="ext/jquery-ui-extra/turnstyle-block.js"/>
344
345 <!-- The Javascript DSP files for computing chroma features in the browser -->
346 <xsl:call-template name="javascript-dsp-header"/>
347
348
349 <!-- Javascript support for running, sending input into, monitoring, and stopping Meandre flows -->
350 <gsf:script src="ext/meandre/meandre-controller.js"/>
351
352 <gsf:style>
353 .metadata-stripes td { padding: 4px; }
354 .metadata-stripes tr:nth-child(odd) {background: #CCC}
355 .metadata-stripes tr:nth-child(even) {background: #FFF}
356
357 .vis-heading { font-style:italic; }
358
359 #rightSidebar { display: none; }
360 </gsf:style>
361
362 </xsl:template>
363
364
365 <xsl:template name="documentContent">
366
367<!--
368 <xsl:call-template name="init-document-xsl-vars"/>
369-->
370
371 <!-- declare $httpCollection = $httpPath (for better consistency with other places in Greenstone XSL files) -->
372 <xsl:variable name="httpCollection">
373 <xsl:value-of select="/page/pageResponse/collection/metadataList/metadata[@name='httpPath']"/>
374 </xsl:variable>
375
376 <xsl:variable name="assocFilePath"><gsf:metadata name="assocfilepath" select="root"/></xsl:variable>
377 <xsl:variable name="Source"><gsf:metadata name="Source" select="root"/></xsl:variable>
378
379 <gsf:variable name="cgiargFrameOffset">
380 <xsl:value-of select="/page/pageRequest/paramList/param[@name='p.frameOffset']/@value"/>
381 </gsf:variable>
382
383 <gsf:variable name="cgiargFrameLength">
384 <xsl:value-of select="/page/pageRequest/paramList/param[@name='p.frameLength']/@value"/>
385 </gsf:variable>
386
387 <xsl:variable name="cgiargYScaleSimImg"><xsl:choose>
388 <xsl:when test="/page/pageRequest/paramList/param[@name='p.yScaleSimImg']/@value != ''"><xsl:value-of select="/page/pageRequest/paramList/param[@name='p.yScaleSimImg']/@value"/></xsl:when>
389 <xsl:otherwise>0.5</xsl:otherwise>
390 </xsl:choose>
391 </xsl:variable>
392
393 <!-- CAA = Content Analysis Algorithm -->
394 <xsl:variable name="cgiargCAAlgorithm">
395 <xsl:choose>
396 <xsl:when test="/page/pageRequest/paramList/param[@name='p.caAlgorithm']/@value != ''"><xsl:value-of select="/page/pageRequest/paramList/param[@name='p.caAlgorithm']/@value"/></xsl:when>
397 <xsl:otherwise>1</xsl:otherwise>
398 </xsl:choose>
399 </xsl:variable>
400
401 <!-- *** -->
402 <!-- Main Audio Player -->
403 <!-- *** -->
404
405 <div class="documenttext">
406
407<!--
408 <xsl:call-template name="audio-icon-cache"/>
409-->
410
411 <xsl:call-template name="original-audio">
412 <xsl:with-param name="httpCollection" select="$httpCollection"/>
413 <xsl:with-param name="assocFilePath" select="$assocFilePath"/>
414 </xsl:call-template>
415
416
417 <hr/>
418
419<script>
420 <xsl:text disable-output-escaping="yes">
421 useFancyPlayer = 1;
422
423 /* if (window.location.toString().match(/fancyplayer/i)) { */
424 if (useFancyPlayer) {
425 PP_CONFIG.usePeakData = true;
426 PP_CONFIG.useEQData = true;
427 // PP_CONFIG.useFavIcon = true;
428 }
429
430 function onFinishSP()
431 {
432 soundManager._onfinish();
433 togglePlayVisual(mainPlayButton);
434 }
435
436 var mySoundObj;
437
438 function playFromOffset(id,frameOffset)
439 {
440 var msecOffset = 250 * frameOffset;
441 idElem = document.getElementById(id);
442 pagePlayer.handleClick({target:idElem}); /* fake a click */
443 soundManager.stopAll();
444
445 var options = {};
446 options.position = msecOffset;
447
448 soundManager.play(id,options);
449
450 togglePlayMode = "pause";
451 playHighlightOff(document.getElementById("mainPlayButton"),32);
452 }
453
454 function preSubmit(form)
455 {
456 var currentPosElem = document.getElementById("mysongCurrentPos");
457 var offsetInMSecs = currentPosElem.getAttribute("offsetInMSecs");
458 var frameOffset = Math.round(offsetInMSecs/250.0);
459 form.elements["s1.offset"].value = frameOffset;
460
461 //var lengthInSecs = document.getElementById("mysongWindowDuration").innerHTML;
462 var lengthInSecs = form.elements["mysongWindowDuration"].value;
463
464 var frameLength = Math.round(lengthInSecs*1000/250.0);
465 form.elements["s1.length"].value = frameLength;
466
467 return true;
468 }
469
470 function searchSubmit(frameOffset)
471 {
472 var form = document.getElementById("QueryForm");
473
474 form.elements["s1.offset"].value = frameOffset;
475
476 //var lengthInSecs = document.getElementById("mysongWindowDuration").innerHTML;
477 var lengthInSecs = form.elements["mysongWindowDuration"].value;
478
479 var frameLength = Math.round(lengthInSecs*1000/250.0);
480 form.elements["s1.length"].value = frameLength;
481
482 form.submit();
483 }
484
485
486
487 function rescaleImage()
488 {
489 var form = document.getElementById("RescaleForm");
490
491 var rescaleSize = form.elements["ResizeScale"].value;
492
493 var currentURL = document.location.toString();
494 var newURL;
495 if (currentURL.match(/p.yScaleSimImg=(\d+(?:\.\d+))/)) {
496 newURL = currentURL.replace(/p.yScaleSimImg=(\d+(?:\.\d+))/,"p.yScaleSimImg="+rescaleSize);
497 }
498 else {
499 var urlParts = currentURL.split("#");
500 newURL = urlParts.shift();
501 newURL += "&amp;p.yScaleSimImg="+rescaleSize;
502 newURL += "#" + urlParts.join("#");
503 }
504
505 document.location = newURL;
506 }
507
508 function updateCAAlgorithm()
509 {
510
511 var form = document.getElementById("UpdateCAForm");
512
513 var caaMenu = form.elements["caAlgorithm"];
514
515 var caIndexPos = caaMenu.options[caaMenu.selectedIndex].value
516
517 var currentURL = document.location.toString();
518 var newURL;
519 if (currentURL.match(/p.caAlgorithm=(\d+)/)) {
520 newURL = currentURL.replace(/p.caAlgorithm=(\d+)/,"p.caAlgorithm="+caIndexPos);
521 }
522 else {
523 var urlParts = currentURL.split("#");
524 newURL = urlParts.shift();
525 newURL += "&amp;p.caAlgorithm="+caIndexPos;
526 newURL += "#" + urlParts.join("#");
527 }
528
529 document.location = newURL;
530
531 }
532
533
534
535 </xsl:text>
536
537</script>
538
539
540 </div>
541 </xsl:template>
542
543
544
545
546 </format>
547 </display>
548
549 <replaceListRef id="gs2-standard"/>
550 <replaceListRef id="gs2-image" />
551 <serviceRackList>
552 <!-- comment out the following serviceRack if you want to disable OAI for this collection -->
553 <serviceRack name="OAIPMH">
554 <ListMetadataFormats>
555 <!--What metadata sets to support is collection specific. To support other metadata schema, simply add a metadataFormat element here.
556 The support of unqualified Dublin Core metadata set is mandatory in the oai specification.
557 -->
558 <metadataFormat metadataPrefix="oai_dc">
559 <metadataPrefix>oai_dc</metadataPrefix>
560 <schema>http://www.openarchives.org/OAI/2.0/oai_dc.xsd</schema>
561 <metadataNamespace>http://www.openarchives.org/OAI/2.0/oai_dc/</metadataNamespace>
562 <!--<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>-->
563 <mappingList>
564 <!--
565 The mapping is in the form: <publicly supported metadata name>,<mapped metadata name>, short as <A>,<B>
566 The first metadata name is medatory; if there is no mapped name followed, then the first name must be used by the records and
567 searchable in the database, otherwise it is the mapped name stored in the database. The number of mapping elements matches the
568 number of external metadata of the records. If only one name is present, the returned metadata will use this name plus the retrieved value;
569 if both <A>,<B> are present, the returned metadata will use <A>'s name plus <B>'s value retrieved from database.
570
571 **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.
572
573 **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.
574 -->
575 <mapping>dc:title,Title</mapping>
576 <!-- 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. -->
577 </mappingList>
578 </metadataFormat>
579 </ListMetadataFormats>
580 </serviceRack>
581 </serviceRackList>
582</CollectionConfig>
Note: See TracBrowser for help on using the repository browser.