Changeset 36858
- Timestamp:
- 2022-10-22T10:10:41+13:00 (18 months ago)
- Location:
- gs3-installations/mars/trunk/sites/mars
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
gs3-installations/mars/trunk/sites/mars/README.txt
r35220 r36858 72 72 Note: there is no need to build this collection 73 73 74 5. Generate the Arousal-Valence prediction values for the 'amc-essentia l' collection74 5. Generate the Arousal-Valence prediction values for the 'amc-essentia' collection 75 75 76 76 At the 'mars site' level: -
gs3-installations/mars/trunk/sites/mars/collect/amc-essentia/RECONFIGURE.sh
r36817 r36858 1 1 #!/bin/bash 2 2 3 wget -O - http://localhost:7373/greenstone3/library?a=s&sa=c&c=amc-essentia 3 wget -O - "http://localhost:7373/greenstone3/library?a=s&sa=c&c=amc-essentia" >/dev/null 4 5 -
gs3-installations/mars/trunk/sites/mars/collect/amc-essentia/etc/collectionConfig.xml
r36823 r36858 10 10 <displayItem assigned="true" lang="en" name="description"> 11 11 <p> 12 This conent analysis enhanced digital library collection is 13 based around 9960 audio files from 14 <a href="https://www.australianmusiccentre.com.au/"> 15 Australian Muisc Centre </a>, which exhibits the country's 16 best contemporary classical, improvisatory and experimental 17 music and sound art. 18 </p> 19 20 <p> 21 Using the <a href="https://essentia.upf.edu/documentation/">Essentia</a> 22 DSP library, a range of audio features are computed. This is 23 combined with the 24 <a href="http://cvml.unige.ch/databases/DEAM/">media-eval 25 Database for Emotional Analysis of Music (DEAM)</a> dataset to 26 produced a Machine Learning model to predict levels of arousal 27 and valence that a section of music evokes. We have chosen 28 REPTree for the predictive modeling, a fast decision tree 29 learner that explots gain/variance and pruning (with 30 backfitting) to build a regression tree. 31 </p> 32 33 <p> 34 Next, we have taken this modeling capability and woven it 35 into the <a href="https://greenstone.org">Greenstone3</a> 36 Digital Library software architecture. The act of building 37 the digital library triggers the computation of the audio 38 features, which are then used to predict arousal and valence 39 features throughout each audio file, currently set to using 40 a window of 6 seconds and an overal of 50%. This is stored 41 as metadata within the built digital library, alongside 42 the more regular metadata values for title and artist. 43 </p> 44 45 <p>Finally, using 46 Greenstone3's <a href="https://files.greenstone.org/technical/gs3design.pdf">extensible 47 service-based architecture</a> we have enriched the user's experience 48 of listening to a work in the digital library collection. The most prominent 49 feature is a frequency specogram of the work, with a timeline bar that 50 moves through the work as it is play. The timeline bar visually shows the 51 computed level of arousal by broadening the width the timeline bar as the 52 level of arousal rises. The timeline bar is rendered in white, varying 53 the brightness used to reflect the computed level of valence. 54 </p> 55 56 <p> 57 Below the AV frequecy visualizer, is a <i>Recommend</i> 58 button. If a user clicks on this, thenâagain leveraging 59 the service-based architecture to the digital library 60 softwareâfor the passage of work being played its values 61 of arousal and valence are used to select other works 62 in the digital library collection that 63 share similar features. This are added at the bottom of 64 the page as recommendations that the user might also like 65 to listen to. 66 </p> 67 68 <!-- 69 <p> 12 70 This collection shows the capabilities of the 13 71 <a href="https://essentia.upf.edu/documentation/">Essentia</a> DSP library 14 72 in combination with Greenstone3, based on the 15 253MP3 files from16 <a href="https://www.australianmusiccentre.com.au/">A MC</a>73 9960 MP3 files from 74 <a href="https://www.australianmusiccentre.com.au/">Australian Music Centre</a> 17 75 </p> 18 76 … … 23 81 the document in the digital library correspondig to the source MP3 file. 24 82 </p> 25 83 --> 84 26 85 </displayItem> 27 86 </displayItemList> … … 36 95 --> 37 96 <defaultLevel name="document"/> 38 <index name="dc.Title,dc.Creator, LastFM.LastFMArtistWikiSummary">97 <index name="dc.Title,dc.Creator,amc.title,amc.artist"> 39 98 <displayItem lang="en" name="name">all fields</displayItem> 40 99 </index> 41 <index name="dc.Title ">100 <index name="dc.Title,amc.title"> 42 101 <displayItem lang="en" name="name">titles</displayItem> 43 102 </index> 44 <index name="dc.Creator ">103 <index name="dc.Creator,amc.artist"> 45 104 <displayItem lang="en" name="name">artists</displayItem> 46 105 </index> 47 <defaultIndex name="dc.Title,dc.Creator, LastFM.LastFMArtistWikiSummary"/>106 <defaultIndex name="dc.Title,dc.Creator,amc.title,amc.artist"/> 48 107 <searchType name="plain"/> 49 108 <searchType name="simpleform"/> … … 57 116 </td> 58 117 <td> 59 <gsf:switch> 60 <gsf:metadata name="Title" select="ancestors" separator=": "/> 61 <gsf:when test="exists"> 62 <gsf:metadata name="Title" select="ancestors" separator=": "/>: 63 </gsf:when> 64 </gsf:switch> 65 <gsf:link type="document"> 66 <gsf:metadata name="Title"/> 67 </gsf:link> 118 119 <xsl:choose> 120 <xsl:when test="/page/pageResponse/service/@name = 'AudioQuery'"> 121 <a> 122 <xsl:choose> 123 <xsl:when test="/page/pageResponse/collection/@name"> 124 <xsl:attribute name="href"><xsl:value-of select="$library_name"/>?a=d&c=<xsl:value-of select="/page/pageResponse/collection/@name"/>&d=<xsl:value-of select="@nodeID"/>&dt=<xsl:value-of select="@docType"/>&p.frameOffset=<xsl:value-of select="@frameOffset"/>&p.a=q&p.s=<xsl:value-of select="/page/pageResponse/service/@name"/>&hl=on&ed=1#<xsl:value-of select="@nodeID"/></xsl:attribute> 125 </xsl:when> 126 <xsl:when test="@collection"> 127 <xsl:attribute name="href"><xsl:value-of select="$library_name"/>?a=d&c=<xsl:value-of select="@collection"/>&d=<xsl:value-of select="@nodeID"/>&dt=<xsl:value-of select="@docType"/>p.frameOffset=<xsl:value-of select="@frameOffset"/>&p.a=q&p.s=<xsl:value-of select="/page/pageResponse/service/@name"/>&hl=on&ed=1#<xsl:value-of select="@nodeID"/></xsl:attribute> 128 </xsl:when> 129 </xsl:choose> 130 <gsf:metadata name="amc.title"/> 131 by <gsf:metadata name="amc.artist"/> 132 </a> 133 </xsl:when> 134 <xsl:otherwise> 135 <gsf:link type="document"> 136 <gsf:metadata name="amc.title"/> 137 by <gsf:metadata name="amc.artist"/> 138 </gsf:link> 139 <!-- 140 <gsf:switch> 141 <gsf:metadata name="Title" select="ancestors" separator=": "/> 142 <gsf:when test="exists"> 143 <gsf:metadata name="Title" select="ancestors" separator=": "/>: 144 </gsf:when> 145 </gsf:switch> 146 <gsf:link type="document"> 147 <gsf:metadata name="Title"/> 148 </gsf:link> 149 --> 150 </xsl:otherwise> 151 </xsl:choose> 152 153 <!-- 154 <xsl:if test="/page/pageResponse/service/@name = 'AudioQuery'"> 155 <span style="font-style: italics; font-size: 90%" > 156 Matching offset @ 157 <script> 158 <xsl:text disable-output-escaping="yes"> 159 var frameOffsetStr="</xsl:text><xsl:value-of select="@frameOffset"/><xsl:text disable-output-escaping="yes">"; 160 var frameOffsetList = frameOffsetStr.split(","); 161 for(i=0; i < frameOffsetList.length; i++) { 162 var frameOffset = frameOffsetList[i]; 163 var offsetInSecs=(250*frameOffset)/1000.0; 164 if (i > 0) { document.write(", "); } 165 document.write(offsetInSecs.toFixed(2)); 166 } 167 </xsl:text> 168 </script> secs 169 </span> 170 </xsl:if> 171 172 --> 173 68 174 </td> 69 175 </gsf:template> … … 71 177 </search> 72 178 73 <search type="wekaDB" orthogonal="true"/> 74 179 <!-- 180 <search type="wekaDB" orthogonal="true" /> 181 --> 182 183 <search type="wekaDB" orthogonal="true" serviceRack="GS2WekaDBSearch" /> 184 185 <!-- 186 <search type="wekaDB" orthogonal="true" serviceRack="GS2WekaAVRecommender" /> 187 188 <search type="wekaAVFeatures" orthogonal="true" serviceRack="GS2WekaAVRecommender" /> 189 --> 190 75 191 <infodb type="jdbm"/> 76 192 … … 400 516 .doc-metadata td { padding: 7px; } 401 517 </style> 402 <table class="doc-metadata" >518 <table class="doc-metadata" style="width: 100%;"> 403 519 <tbody> 404 520 <tr style="background-color:#C4CBA1"> 405 <td >406 Title 521 <td style="width: 4rem;"> 522 Title: 407 523 </td> 408 524 <td> … … 412 528 413 529 <tr style="background-color:#fff"> 414 <td>Artist </td>530 <td>Artist:</td> 415 531 <td><gsf:metadata name="amc.artist"/></td> 416 532 </tr> 417 533 534 <!-- 418 535 <tr style="background-color:#C4CBA1"> 419 536 <td>Essentia MFCC Features:</td><td><a href="{$httpCollection}/index/assoc/{$assocFilePath}/pessentia.json">Download</a></td> … … 423 540 <td>Weka Predicted Arousal-Valence Features:</td><td><a href="{$httpCollection}/index/assoc/{$assocFilePath}/av.json">Download</a></td> 424 541 </tr> 425 542 --> 543 426 544 </tbody> 427 545 </table> … … 480 598 // Load audio from URL 481 599 wavesurfer.load(gs.variables.mp3url); 600 601 wavesurfer.on('audioprocess', function () { 602 var current_time = wavesurfer.getCurrentTime(); 603 var current_time_rounded = Math.round(current_time * 10) / 10 604 var current_time_rounded = current_time.toFixed(1); 605 $('#audioCurrentPos').html(current_time_rounded + " secs"); 606 }); 482 607 }); 483 608 </gsf:script> 484 609 </div> 610 611 612 613 <gsf:variable name="docID"><xsl:value-of select="@nodeID"/></gsf:variable> 614 615 <hr/> 616 <form action="{$library_name}" method="get" name="QueryForm"> 617 <input name="a" type="hidden" value="q"/> 618 <input name="sa" type="hidden"> 619 <xsl:attribute name="value"> 620 <xsl:value-of select="/page/pageRequest/@subaction"/> 621 </xsl:attribute> 622 </input> 623 <input name="rt" type="hidden" value="rd"/> 624 <input name="s" type="hidden" value="AudioQuery"/> 625 <input name="c" type="hidden" value="{$collName}"/> 626 <xsl:if test="not(paramList/param[@name='startPage'])"> 627 <input name="startPage" type="hidden" value="1"/> 628 </xsl:if> 629 <xsl:choose> 630 <xsl:when test="/page/pageRequest/paramList/param[@name = 's1.maxDocs']"> 631 <input name="s1.maxDocs" type="hidden"> 632 <xsl:attribute name="value"> 633 <xsl:value-of select="/page/pageRequest/paramList/param[@name = 's1.maxDocs']/@value"/> 634 </xsl:attribute> 635 </input> 636 </xsl:when> 637 <xsl:otherwise> 638 <input name="s1.maxDocs" type="hidden" value="100"/> 639 </xsl:otherwise> 640 </xsl:choose> 641 <xsl:choose> 642 <xsl:when test="/page/pageRequest/paramList/param[@name = 's1.hitsPerPage']"> 643 <input name="s1.hitsPerPage" type="hidden"> 644 <xsl:attribute name="value"> 645 <xsl:value-of select="/page/pageRequest/paramList/param[@name = 's1.hitsPerPage']/@value"/> 646 </xsl:attribute> 647 </input> 648 </xsl:when> 649 <xsl:otherwise> 650 <input name="s1.hitsPerPage" type="hidden" value="20"/> 651 </xsl:otherwise> 652 </xsl:choose> 653 654 <!-- 655 <input name="q" type="hidden" value="{$assocFilePath}" /> 656 --> 657 <input name="q" type="hidden" value="{$docID}" /> 658 <input name="s1.query" type="hidden" value="{$docID}" /> 659 660 <input name="s1.offset" type="hidden" value="0"/> 661 <input name="s1.length" type="hidden" value="200"/> 662 <div style="font-style: italics;">Make arousal-valence music recommendation based on content @ <span id="audioCurrentPos">0 secs</span>: 663 <!--, 664 with excerpt lasting <span class="editable-offset" id="audioWindowDuration" style="cursor: pointer; border: 1px solid black; padding: 3px; width: 200px; min-width: 200px;">3.0</span> secs 665 --> 666 <input onclick="preSubmit(this.form);" type="submit" value="Recommend"/></div> 667 </form> 668 <hr/> 669 <script> 670 <xsl:text disable-output-escaping="yes"> 671 672 /* 673 function playFromOffset(id,frameOffset) 674 { 675 var msecOffset = 250 * frameOffset; 676 idElem = document.getElementById(id); 677 pagePlayer.handleClick({target:idElem}); /* fake a click */ 678 soundManager.stopAll(); 679 /* soundManager.setPosition(id,5000); */ 680 soundManager.play(id,{position: msecOffset}); 681 } 682 */ 683 684 function preSubmit(form) 685 { 686 // Note, the Arousal and Valence feature window values used is: 687 // 6 secs + 50% overlap 688 // So the Weka computed AV values are spaced out: 689 // 6s, 9s, 12s, ... 690 691 // clamp to ensure >= 6.0 secs 692 var current_time = Math.max(6.0,wavesurfer.getCurrentTime()); 693 694 weka_segment = Math.round(current_time/3) * 3; 695 form.elements["s1.length"].value = weka_segment; 696 697 /* 698 var currentPosElem = document.getElementById("audioCurrentPos"); 699 var offsetInMSecs = currentPosElem.getAttribute("offsetInMSecs"); 700 var frameOffset = Math.round(offsetInMSecs/250.0); 701 form.elements["s1.offset"].value = frameOffset; 702 703 var lengthInSecs = document.getElementById("audioWindowDuration").innerHTML; 704 705 var frameLength = Math.round(lengthInSecs*1000/250.0); 706 form.elements["s1.length"].value = frameLength; 707 */ 708 return true; 709 } 710 </xsl:text> 711 </script> 712 713 485 714 </xsl:template> 486 715 … … 490 719 <replaceListRef id="gs2-standard"/> 491 720 <serviceRackList> 721 <!-- 722 <serviceRack name="GS2WekaDBSearch"> 723 </serviceRack> 724 --> 725 <!-- 726 <serviceRack name="GS2WekaAVRecommender"> 727 </serviceRack> 728 --> 729 492 730 <!-- comment out the following serviceRack if you want to disable OAI for this collection --> 493 731 <serviceRack name="OAIPMH"> -
gs3-installations/mars/trunk/sites/mars/siteConfig.xml
r34777 r36858 1 1 <siteConfig xmlns:gsf='http://www.greenstone.org/greenstone3/schema/ConfigFormat' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'> 2 <siteList/> 3 <serviceRackList> 4 <!-- uncomment to provide the GATE tagging service --> 5 <!--<serviceRack name="GATEServices"/>--> 6 <!-- uncomment to provide the Authentication service --> 7 <serviceRack name='Authentication'> 8 <!-- Go to https://www.google.com/recaptcha/admin/create and replace these keys when you deploy your site --> 9 <recaptcha name="public_key" value="6LckI88SAAAAACUYjj97WMcnz5HPjVp3lI-x-ue8"/> 10 <recaptcha name="private_key" value="6LckI88SAAAAAGnGy1PwuXYZzIMXZYoPxN51bWWG"/> 11 </serviceRack> 12 13 <serviceRack name="ArchiveIO"/> 14 <serviceRack name="DocumentMaker"/> 15 <serviceRack name="DocXMLUtil"/> 16 <serviceRack name="DocumentBasket"/> 17 <serviceRack name="BerryBasket"/> 18 <serviceRack name="GS2Construct"/> 19 <serviceRack name="DebugService"/> 20 <serviceRack name="UserTracker"/> 21 <serviceRack name="CrossCollectionSearch"> 22 <format> 23 <!-- this format is used for the search results --> 24 <gsf:template match="documentNode"> 2 <metadataList xmlns:gsf="http://www.greenstone.org/greenstone3/schema/MetadataFormat" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 3 <metadata name="siteAdmin">[email protected]</metadata> 4 <!--<metadata name="siteURL">http://www.greenstone.org/greenstone3/</metadata>--> 5 </metadataList> 6 <displayItemList> 7 <displayItem name="siteName" lang="en">My Greenstone Library</displayItem> 8 <displayItem name="siteName" key="siteName" dictionary="siteConfig"/> 9 <displayItem name="siteDescription" lang="en">This is a digital library built using the open-source Greenstone Digital Library software, version 3. Edit the site name and description in web/sites/localsite/siteConfig.xml or web/sites/localsite/resources/siteConfig_xx.properties.</displayItem> 10 <displayItem name="siteDescription" key="siteDescription" dictionary="siteConfig"/> 11 </displayItemList> 12 <siteList/> 13 <format> 14 <paramDefault name="favouritebasket" value="on"/> 15 </format> 16 <serviceRackList> 17 <!--Provides the Authentication service --> 18 <serviceRack name='Authentication'> 19 <!-- Go to https://www.google.com/recaptcha/admin and replace these testing keys when you deploy your site --> 20 <recaptcha name="site_key" value="6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI"/> 21 <recaptcha name="secret_key" value="6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe"/> 22 <!-- this determines which operations to add recaptcha to. Choose from Register, AddUser, EditUser, AccountSettings --> 23 <recaptcha name="operations" value="Register,AddUser"/> 24 </serviceRack> 25 <serviceRack name="ArchiveIO"/> 26 <serviceRack name="CollectionGroups"/> 27 <serviceRack name="DocumentMaker"/> 28 <serviceRack name="DocXMLUtil"/> 29 <serviceRack name="DocumentBasket"/> 30 <!-- This provides the functionality for 'favourites' - the ability to store a list of documents you are interested in. This is activated for a servlet by setting the 'favouritebasket' servlet init-param to 'true'--> 31 <serviceRack name="FavouriteBasket"/> 32 <serviceRack name="GS2Construct"/> 33 <serviceRack name="DebugService"/> 34 <serviceRack name="UserTracker"/> 35 <serviceRack name="CrossCollectionSearch"> 36 <format> 37 <!-- this format is used for the search results --> 38 <gsf:template match="documentNode"> 25 39 <xsl:variable name="collname" select="@collection"/> 26 <td><a><xsl:attribute name='href'><xsl:value-of select="$library_name"/>/collection/<xsl:value-of select='@collection'/>/document/<xsl:value-of select='@nodeID'/></xsl:attribute><gsf:icon/></a></td> 27 <td><gsf:metadata name='Title'/></td> 28 <td><a href='{$library_name}/collection/{$collname}/page/about'><xsl:value-of select="/page/pageResponse/service/paramList/param[@name='collection']/option[@name=$collname]/displayItem[@name='name']"/> </a></td> 29 </gsf:template> 30 </format> 31 </serviceRack> 32 </serviceRackList> 33 <serviceClusterList/> 34 <!-- this is a global replace list for all collections. At this stage it only applies to greenstone 2 collections. It will attempt to resolve most of the common macros that appear in metadata. You can add more items here if you want them to apply to all collections. To turn this on/off for a particular collection, add <replaceListRef id='xx'/> into the collectionConfig for each set that you want to use --> 40 <td><gsf:if-metadata-exists><gsf:metadata name="srclinkFile"/><gsf:if><a><xsl:attribute name='href'><xsl:value-of select="$library_name"/>/sites/localsite/collect/<xsl:value-of select='@collection'/>/index/assoc/<gsf:metadata name="root_assocfilepath"/>/<gsf:metadata name="srclinkFile"/></xsl:attribute><gsf:choose-metadata><gsf:metadata name="thumbicon"/><gsf:metadata name="srcicon"/></gsf:choose-metadata></a></gsf:if></gsf:if-metadata-exists></td> 41 <td><a><xsl:attribute name='href'><xsl:value-of select="$library_name"/>/collection/<xsl:value-of select='@collection'/>/document/<xsl:value-of select='@nodeID'/><xsl:if test="$opt-doc-link-args">?<xsl:value-of select="$opt-doc-link-args"/></xsl:if></xsl:attribute><gsf:icon/></a></td> 42 <td><gsf:metadata name='Title'/></td> 43 <td><a href='{$library_name}/collection/{$collname}/page/about'><xsl:value-of select="/page/pageResponse/service/paramList/param[@name='collection']/option[@name=$collname]/displayItem[@name='name']"/> </a></td> 44 </gsf:template> 45 </format> 46 <!-- uncomment to provide the GATE tagging service --> 47 <!--<serviceRack name="GATEServices"/>--> 48 </serviceRack> 49 </serviceRackList> 50 <serviceClusterList/> 51 <!-- this is a global replace list for all collections. At this stage it only applies to greenstone 2 collections. It will attempt to resolve most of the common macros that appear in metadata. You can add more items here if you want them to apply to all collections. To turn this on/off for a particular collection, add <replaceListRef id='xx'/> into the collectionConfig for each set that you want to use --> 35 52 <!-- replace elements can look like: 36 <replace macro="original text" scope="text|metadata|all" text="replacement text"/> 37 <replace macro="original text" scope="text|metadata|all" metadata="metadata element value to replace with"/> 38 <replace macro="original text" scope="text|metadata|all" key="dictionary key" bundle="dictionary name"/> --> 39 <replaceList id="gs2-standard"> 40 <replace macro="_iconpdf_" scope="metadata" text="<img src='interfaces/default/images/ipdf.gif' border='0'/>" resolve="false"/> 41 <replace macro="_icondoc_" scope="metadata" text="<img src='interfaces/default/images/imsword.gif' border='0'/>" resolve="false"/> 42 <replace macro="_iconps_" scope="metadata" text="<img src='interfaces/default/images/ips.gif' border='0'/>" resolve="false"/> 43 <replace macro="_iconrtf_" scope="metadata" text="<img src='interfaces/default/images/irtf.gif' border='0'/>" resolve="false"/> 44 <replace macro="_iconxls_" scope="metadata" text="<img src='interfaces/default/images/iexcel.gif' border='0'/>" resolve="false"/> 45 <replace macro="_iconppt_" scope="metadata" text="<img src='interfaces/default/images/ippt.gif' border='0'/>" resolve="false"/> 46 <replace macro="_icontext_" scope="metadata" text="<img src='interfaces/default/images/itext.gif' border='0'/>" resolve="false"/> 47 <replace macro="_iconblanktext_" scope="metadata" text="<img src='interfaces/default/images/ibtext.gif' border='0'/>" resolve="false"/> 48 <replace macro="_iconmp3_" scope="metadata" text="<img src='interfaces/default/images/imp3.gif' border='0'/>" resolve="false"/> 49 <replace macro="_iconmidi_" scope="metadata" text="<img src='interfaces/default/images/imidi.gif' border='0'/>" resolve="false"/> 50 <replace macro="_iconworld_" scope="metadata" text="<img src='interfaces/default/images/iworld.gif' border='0'/>" resolve="false"/> 51 <replace macro="_iconunknown_" scope="metadata" text="<img src='interfaces/default/images/iunknown.gif' border='0'/>" resolve="false"/> 53 <replace macro="original text" scope="text|metadata|all" text="replacement text"/> 54 <replace macro="original text" scope="text|metadata|all" metadata="metadata element value to replace with"/> 55 <replace macro="original text" scope="text|metadata|all" key="dictionary key" bundle="dictionary name"/> --> 56 <replaceList id="gs2-standard"> 57 <replace macro="_iconpdf_" scope="metadata" text="<img src='interfaces/default/images/ipdf.gif' border='0'/>" resolve="false"/> 58 <replace macro="_icondoc_" scope="metadata" text="<img src='interfaces/default/images/imsword.gif' border='0'/>" resolve="false"/> 59 <replace macro="_icondocx_" scope="metadata" text="<img src='interfaces/default/images/imsword.gif' border='0'/>" resolve="false"/> 60 <replace macro="_iconps_" scope="metadata" text="<img src='interfaces/default/images/ips.gif' border='0'/>" resolve="false"/> 61 <replace macro="_iconrtf_" scope="metadata" text="<img src='interfaces/default/images/irtf.gif' border='0'/>" resolve="false"/> 62 <replace macro="_iconxls_" scope="metadata" text="<img src='interfaces/default/images/iexcel.gif' border='0'/>" resolve="false"/> 63 <replace macro="_iconppt_" scope="metadata" text="<img src='interfaces/default/images/ippt.gif' border='0'/>" resolve="false"/> 64 <replace macro="_icontext_" scope="metadata" text="<img src='interfaces/default/images/itext.gif' border='0'/>" resolve="false"/> 65 <replace macro="_iconblanktext_" scope="metadata" text="<img src='interfaces/default/images/ibtext.gif' border='0'/>" resolve="false"/> 66 <replace macro="_iconmp3_" scope="metadata" text="<img src='interfaces/default/images/imp3.gif' border='0'/>" resolve="false"/> 67 <replace macro="_iconmidi_" scope="metadata" text="<img src='interfaces/default/images/imidi.gif' border='0'/>" resolve="false"/> 68 <replace macro="_iconworld_" scope="metadata" text="<img src='interfaces/default/images/iworld.gif' border='0'/>" resolve="false"/> 69 <replace macro="_iconunknown_" scope="metadata" text="<img src='interfaces/default/images/iunknown.gif' border='0'/>" resolve="false"/> 52 70 53 <replace macro="[archivedir]" scope="all" metadata="assocfilepath" resolve="false"/> 54 <replace macro="[assocfilepath]" scope="all" metadata="assocfilepath" resolve="false"/> 55 <replace macro="[srcurl]" scope="metadata" metadata="srcurl" resolve="false"/> 56 <replace macro="[SourceFile]" scope="metadata" metadata="SourceFile" resolve="false"/> 57 <!-- _httpsite_ and _clustername_ are macros that are defined in the java code --> 58 <replace macro="_httpcollection_" scope="metadata" text="_httpsite_/collect/_clustername_" resolve="true"/> 59 <replace macro="_httpprefix_" scope="metadata" text="_httpsite_" resolve="true"/> 60 <replace macro="_httpdocimg_" scope="text" text="_httpsite_/collect/_clustername_/index/assoc/[assocfilepath]/" resolve="true"/> 61 <replace macro="_httpsamepagelink_" scope="text" text="_libraryname_/collection/_clustername_/document/[DocOID]" resolve="true"/> 62 <replace macro="[collection]" scope="all" text="_clustername_" resolve="true"/> 63 <replace macro="_httpextlink_" scope="all" text="_libraryname_?el=&a=d&c=_clustername_&d=" resolve="true"/> 64 </replaceList> 65 <replaceList id="gs2-image"> 66 <replace macro="[Image]" scope="metadata" metadata="Image" resolve="false"/> 67 <replace macro="[Thumb]" scope="metadata" metadata="Thumb" resolve="false"/> 68 <replace macro="[ThumbWidth]" scope="metadata" metadata="ThumbWidth" resolve="false"/> 69 <replace macro="[ThumbHeight]" scope="metadata" metadata="ThumbHeight" resolve="false"/> 70 <replace macro="[Screen]" scope="metadata" metadata="Screen" resolve="false"/> 71 <replace macro="[ScreenWidth]" scope="metadata" metadata="ScreenWidth" resolve="false"/> 72 <replace macro="[ScreenHeight]" scope="metadata" metadata="ScreenHeight" resolve="false"/> 73 </replaceList> 74 <metadataList xmlns:gsf="http://www.greenstone.org/greenstone3/schema/MetadataFormat" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 75 <metadata name="siteURL">/greenstone3/</metadata> 76 <!--<metadata name="siteURL">http://bedrock.resnet.cms.waikato.ac.nz/mars-greenstone3/</metadata>--> 77 <metadata name="siteName" lang="en">My Greenstone Library</metadata> 78 <metadata name="siteName" lang="fr">Mon site de dévelopment</metadata> 79 <metadata name="siteDescription" lang="en">This is just a random site for testing stuff...</metadata> 80 <metadata name="siteDescription" lang="fr">C'est juste un site pour tester des trucs...</metadata> 81 <metadata name="siteAdmin">[email protected]</metadata> 82 </metadataList> 71 <replace macro="[archivedir]" scope="all" metadata="assocfilepath" resolve="false"/> 72 <replace macro="[assocfilepath]" scope="all" metadata="assocfilepath" resolve="false"/> 73 <replace macro="[srcurl]" scope="metadata" metadata="srcurl" resolve="false"/> 74 <replace macro="[SourceFile]" scope="metadata" metadata="SourceFile" resolve="false"/> 75 <!-- _httpsite_ and _clustername_ are macros that are defined in the java code --> 76 <replace macro="_httpcollection_" scope="metadata" text="_httpsite_/collect/_clustername_" resolve="true"/> 77 <replace macro="_httpprefix_" scope="metadata" text="_httpsite_" resolve="true"/> 78 <replace macro="_httpdocimg_" scope="text" text="_httpsite_/collect/_clustername_/index/assoc/[assocfilepath]/" resolve="true"/> 79 <replace macro="_httpsamepagelink_" scope="text" text="_libraryname_/collection/_clustername_/document/[DocOID]" resolve="true"/> 80 <replace macro="[collection]" scope="all" text="_clustername_" resolve="true"/> 81 <replace macro="_httpextlink_" scope="all" text="_libraryname_?el=&a=d&c=_clustername_&d=" resolve="true"/> 82 </replaceList> 83 <replaceList id="gs2-image"> 84 <replace macro="[Image]" scope="metadata" metadata="Image" resolve="false"/> 85 <replace macro="[Thumb]" scope="metadata" metadata="Thumb" resolve="false"/> 86 <replace macro="[ThumbWidth]" scope="metadata" metadata="ThumbWidth" resolve="false"/> 87 <replace macro="[ThumbHeight]" scope="metadata" metadata="ThumbHeight" resolve="false"/> 88 <replace macro="[Screen]" scope="metadata" metadata="Screen" resolve="false"/> 89 <replace macro="[ScreenWidth]" scope="metadata" metadata="ScreenWidth" resolve="false"/> 90 <replace macro="[ScreenHeight]" scope="metadata" metadata="ScreenHeight" resolve="false"/> 91 </replaceList> 92 <replaceList id="gs2-months"> 93 <replace macro="_textmonth00_" scope="metadata" resolve="false" bundle="interface_default" key="textmonth00"/> 94 <replace macro="_textmonth01_" scope="metadata" resolve="false" bundle="interface_default" key="textmonth01"/> 95 <replace macro="_textmonth02_" scope="metadata" resolve="false" bundle="interface_default" key="textmonth02"/> 96 <replace macro="_textmonth03_" scope="metadata" resolve="false" bundle="interface_default" key="textmonth03"/> 97 <replace macro="_textmonth04_" scope="metadata" resolve="false" bundle="interface_default" key="textmonth04"/> 98 <replace macro="_textmonth05_" scope="metadata" resolve="false" bundle="interface_default" key="textmonth05"/> 99 <replace macro="_textmonth06_" scope="metadata" resolve="false" bundle="interface_default" key="textmonth06"/> 100 <replace macro="_textmonth07_" scope="metadata" resolve="false" bundle="interface_default" key="textmonth07"/> 101 <replace macro="_textmonth08_" scope="metadata" resolve="false" bundle="interface_default" key="textmonth08"/> 102 <replace macro="_textmonth09_" scope="metadata" resolve="false" bundle="interface_default" key="textmonth09"/> 103 <replace macro="_textmonth10_" scope="metadata" resolve="false" bundle="interface_default" key="textmonth10"/> 104 <replace macro="_textmonth11_" scope="metadata" resolve="false" bundle="interface_default" key="textmonth11"/> 105 <replace macro="_textmonth12_" scope="metadata" resolve="false" bundle="interface_default" key="textmonth12"/> 106 <replace bundle="interface_default" key="num" macro="_num_" resolve="false" scope="metadata"/> 107 </replaceList> 83 108 </siteConfig>
Note:
See TracChangeset
for help on using the changeset viewer.