1 | <?xml version="1.0" encoding="UTF-8"?>
|
---|
2 | <CollectionConfig xmlns:gsf="http://www.greenstone.org/greenstone3/schema/ConfigFormat" xmlns:gslib="http://www.greenstone.org/skinning" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
---|
3 | <security default_access="public" scope="collection">
|
---|
4 | <exception>
|
---|
5 | <group name="atea"/>
|
---|
6 | </exception>
|
---|
7 | </security>
|
---|
8 | <metadataList>
|
---|
9 | <metadata lang="en" name="creator"/>
|
---|
10 | <metadata lang="en" name="maintainer"/>
|
---|
11 | <metadata lang="en" name="public">true</metadata>
|
---|
12 | </metadataList>
|
---|
13 | <displayItemList>
|
---|
14 | <displayItem lang="en" name="name">HMS Programmes and Performers</displayItem>
|
---|
15 | <displayItem lang="en" name="text">text</displayItem>
|
---|
16 | <displayItem lang="en" name="im.Work,dc.Title,ex.dc.Title,Title">titles</displayItem>
|
---|
17 | <displayItem lang="en" name="Source">filenames</displayItem>
|
---|
18 | <displayItem lang="en" name="document:text">text</displayItem>
|
---|
19 | <displayItem lang="en" name="document:ex.Title">Title</displayItem>
|
---|
20 | <displayItem lang="en" name="document:ex.Source">Source</displayItem>
|
---|
21 | <displayItem lang="en" name="document">document</displayItem>
|
---|
22 | <displayItem lang="en" name="section">section</displayItem>
|
---|
23 | <!--
|
---|
24 | <displayItem lang="en" name="shortDescription">Programmes from the InterMusE corpus enhanced at ingest time using the Google Vision API</displayItem>
|
---|
25 | -->
|
---|
26 | <displayItem lang="en" name="shortDescription">OCR'd programmes from the InterMusE corpus enriched with metadata about the performances and performers</displayItem>
|
---|
27 | </displayItemList>
|
---|
28 | <format>
|
---|
29 | <gsf:template name="choose-title">
|
---|
30 | <gsf:choose-metadata>
|
---|
31 | <gsf:metadata name="im.Work"/>
|
---|
32 | <gsf:metadata name="dc.Title"/>
|
---|
33 | <gsf:metadata name="exp.Title"/>
|
---|
34 | <gsf:metadata name="ex.dc.Title"/>
|
---|
35 | <gsf:metadata name="ex.Title"/>
|
---|
36 | <gsf:metadata name="Title"/>
|
---|
37 | <gsf:default>Untitled</gsf:default>
|
---|
38 | </gsf:choose-metadata>
|
---|
39 | </gsf:template>
|
---|
40 |
|
---|
41 | <xsl:template name="document-link-mirador-ahref">
|
---|
42 | <xsl:param name="embed"/>
|
---|
43 | <xsl:variable name="href"><xsl:value-of select="$library_name"/><xsl:text>/collection/</xsl:text><xsl:value-of select="/page/pageResponse/collection/@name"/><xsl:text>/document/</xsl:text><xsl:choose><xsl:when test="@OID"><xsl:value-of select="@OID"/></xsl:when><xsl:when test="@OIDmetadata"><xsl:variable name="OIDmeta" select="@OIDmetadata"/><xsl:value-of select="metadataList/metadata[@name='{$OIDmeta}']"/></xsl:when><xsl:otherwise><xsl:value-of select="@nodeID"/></xsl:otherwise></xsl:choose><xsl:text>?book=mirador&ed=1</xsl:text></xsl:variable>
|
---|
44 | <a>
|
---|
45 | <xsl:attribute name="href"><xsl:value-of select="$href"/></xsl:attribute>
|
---|
46 | <xsl:copy-of select="$embed"/>
|
---|
47 | </a>
|
---|
48 | </xsl:template>
|
---|
49 |
|
---|
50 | <!-- modify the collection description template to output the "this collection contains X documents and was last built Y days ago" message -->
|
---|
51 | <xsl:template name="coll-description">
|
---|
52 | <div style="float: right; width: 300px;">
|
---|
53 | <img style="width: 100%;" src="interfaces/{$interface_name}/images/intermuse-title-logo.png" />
|
---|
54 | </div>
|
---|
55 |
|
---|
56 | <p style="padding-top: 0.7rem;">
|
---|
57 | The text describing the prototype has been relocated to the DL's main <a href="{$library_name}/page/home">Home</a> page.
|
---|
58 |
|
---|
59 | </p>
|
---|
60 | </xsl:template>
|
---|
61 |
|
---|
62 | <xsl:template name="coll-descriptionXXX">
|
---|
63 | <div style="float: right; width: 300px;">
|
---|
64 | <img style="width: 100%;" src="interfaces/{$interface_name}/images/intermuse-title-logo.png" />
|
---|
65 | </div>
|
---|
66 |
|
---|
67 | <p style="padding-top: 0.7rem;">
|
---|
68 |
|
---|
69 | Live musical events play a vital role in community life across the
|
---|
70 | globe, yet their very âlivenessâ means they often leave only faint
|
---|
71 | traces on the historical record, even in modern times. While
|
---|
72 | musicologists have used some types of concert ephemera to capture the
|
---|
73 | nature and identity of musical events, by their very nature these
|
---|
74 | resources can be confusingly inconsistent, tantalisingly incomplete,
|
---|
75 | and often scattered between different archives and collections.
|
---|
76 | </p>
|
---|
77 | <p>
|
---|
78 | This <a href="https://intermuse.datatodata.org/" target="_blank">InterMusE Project</a>
|
---|
79 | is a two-year research endeavour,
|
---|
80 | funded by AHRCâs UK-US New Directions for Digital
|
---|
81 | Scholarship in Cultural Institutions programme, that seeks
|
---|
82 | to better capture and represent these historical events,
|
---|
83 | leveraging natural-language processing, optical character recognition (OCR),
|
---|
84 | and other forms of artificial intelligence.
|
---|
85 | To illustrate the potential of the approach we work with digitised resources
|
---|
86 | sourced from:
|
---|
87 | </p>
|
---|
88 |
|
---|
89 | <ul>
|
---|
90 | <li>
|
---|
91 | University of Yorkâs <a href="https://www.york.ac.uk/borthwick/" target="_blank" rel="noreferrer noopener">Borthwick Institute for Archives</a>,
|
---|
92 | </li>
|
---|
93 | <li>
|
---|
94 | <a href="https://krannertcenter.com/" target="_blank" rel="noreferrer noopener">Krannert Center for the Performing Arts</a> (University of Illinois at Urbana-Champaign),
|
---|
95 | </li>
|
---|
96 | <li>
|
---|
97 | <a href="https://linenhall.com/?gclid=CjwKCAiAmrOBBhA0EiwArn3mfAtN1-wdaaatezqK2X672WkKTS2he3g-8eDTZPc2INaYSHIdBQ4DExoCh-kQAvD_BwE" target="_blank" rel="noreferrer noopener">Linen Hall Library (Belfast</a>), and
|
---|
98 | </li>
|
---|
99 | <li>
|
---|
100 | <a href="https://www.rcm.ac.uk/" target="_blank" rel="noreferrer noopener">Royal College of Music</a>.
|
---|
101 | </li>
|
---|
102 | </ul>
|
---|
103 | <p>Material is also sourced from three former chapters of the British Music Society (est. 1918):</p>
|
---|
104 | <ul>
|
---|
105 | <li>
|
---|
106 | <a href="http://www.huddersfield-music-society.org.uk/" target="_blank" rel="noreferrer noopener">Huddersfield Music Society</a>,
|
---|
107 | </li>
|
---|
108 | <li>
|
---|
109 | <a href="http://www.bms-york.org.uk/" target="_blank" rel="noreferrer noopener">British Music Society of York</a>, and
|
---|
110 | </li>
|
---|
111 | <li>
|
---|
112 | <a href="https://www.belfastmusicsociety.org/" target="_blank" rel="noreferrer noopener">Belfast Music Society</a>.
|
---|
113 | </li>
|
---|
114 | </ul>
|
---|
115 |
|
---|
116 |
|
---|
117 |
|
---|
118 | <h3>Prototype Digital Library</h3>
|
---|
119 |
|
---|
120 | <p>
|
---|
121 | Greenstone3 is an open source digital library system with a
|
---|
122 | versatile service-based software architecture, managed through an extension
|
---|
123 | mechanism.
|
---|
124 | Taking the Huddersfield Music Society Programmes as the
|
---|
125 | set of digitised content processed,
|
---|
126 | this online resource demonstrates how Greenstone3 can be used
|
---|
127 | to meet the aspirations of the InterMuSe project.
|
---|
128 | of the InterMusE project we have
|
---|
129 | </p>
|
---|
130 |
|
---|
131 | <p>
|
---|
132 | <!-- Linked Open Data is used to unify these resources. -->
|
---|
133 |
|
---|
134 | When content is added to the Digital Library it is automatically
|
---|
135 | processed using the Google Vision API, and any text extracted added
|
---|
136 | to the digital library's full-text index
|
---|
137 | as well as stored as Linked Open Data using the
|
---|
138 | <a href="https://dev.gdmrdigital.com/" target="_blank">Simple Annotation Server</a>.
|
---|
139 | We make the OCR'd text available asOpen Annotations,
|
---|
140 | accessible through a <a href="https://projectmirador.org/" target="_blank">Mirador3 Image Viewer</a>
|
---|
141 | embedded into the digital library.
|
---|
142 | Through the Mirador3 Viewer, annotations can be edited (correcting OCR errors, for example),
|
---|
143 | and well allowing for the
|
---|
144 | addition of complete new annotations (unrelated to the OCR'd text, if so desired).
|
---|
145 | As we use <a href="https://jena.apache.org/" target="_blank">Apache Jena Fuseki</a>
|
---|
146 | as the internal triplestore the Simple Annotation Server uses.
|
---|
147 | This means all the OCR'd contentâalong with
|
---|
148 | all the other metadata amassed in the digital libraryâcan also be accessed via a SPARQL endpoint.
|
---|
149 | More details are available through the
|
---|
150 | <a href="https://intermuse.datatodata.org/" target="_blank">InterMuse project website</a>.
|
---|
151 | </p>
|
---|
152 |
|
---|
153 | <p>
|
---|
154 | In addition to the automatically generated OCR'd content,
|
---|
155 | through the InterMusE Project an Excel spreadsheet
|
---|
156 | has been painstakingly assembled from the programmes,
|
---|
157 | recording who the performers were, and which musical works they performed at what concert.
|
---|
158 | We fold this into the digital library collection, both as information to display, but
|
---|
159 | also as metadata that can be used to enrich how users can locate content of
|
---|
160 | interest to them in the collection.
|
---|
161 | </p>
|
---|
162 |
|
---|
163 | <h3>Designed for Different Types of User</h3>
|
---|
164 | <p>
|
---|
165 | Use the browsing and searching features the digital library provides to locate content
|
---|
166 | of interest. Register as a user to become an annotator/editor of the content.
|
---|
167 | As an external developer, interested in further enriching the forms of access to this content,
|
---|
168 | a machine-readable version of the content is accessible through the following
|
---|
169 | <a href="{$library_name}/collection/{$collName}/page/sparql">SPARQL endpoint</a>
|
---|
170 | </p>
|
---|
171 | <p>
|
---|
172 | <gslib:collectionDescriptionTextAndServicesLinks/>
|
---|
173 | </p>
|
---|
174 |
|
---|
175 | <xsl:variable name="raw_date">
|
---|
176 | <gslib:collectionMeta name="buildDate"/>
|
---|
177 | </xsl:variable>
|
---|
178 | <xsl:variable name="formatted_date">
|
---|
179 | <xsl:value-of select="util:formatTimeStamp($raw_date, 0, 3, /page/@lang)"/>
|
---|
180 | </xsl:variable>
|
---|
181 | <xsl:variable name="numdocs">
|
---|
182 | <gslib:collectionMeta name="numDocs"/>
|
---|
183 | </xsl:variable>
|
---|
184 | <p>
|
---|
185 | This prototype collection contains <xsl:value-of select="$numdocs"/> documents focusing on a sample of programmes from the Huddersfield Music Society.
|
---|
186 | <!--
|
---|
187 | <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'about.standarddescriptiondays', concat($numdocs, ';', $formatted_date))"/>
|
---|
188 | -->
|
---|
189 | </p>
|
---|
190 |
|
---|
191 |
|
---|
192 | <h3>Implementation Details</h3>
|
---|
193 |
|
---|
194 | <p>
|
---|
195 | To form this prototype InterMusE digital library we have taken
|
---|
196 | the base digital library system and added in Greenstone's
|
---|
197 | extensions for:
|
---|
198 | <ul>
|
---|
199 | <li>
|
---|
200 | <a href="https://trac.greenstone.org/browser/gs3-extensions/structured-image/trunk">structured-image</a>
|
---|
201 | to automatically perform OCR on programme pages using Google Vision's API;
|
---|
202 | </li>
|
---|
203 | <li>
|
---|
204 | <a href="https://trac.greenstone.org/browser/gs3-extensions/iiif-servlet/trunk/src">iiif-servlet</a>
|
---|
205 | to allow images in the digital library to be
|
---|
206 | available at a range of resolutions via the IIIF Image API; and
|
---|
207 | </li>
|
---|
208 | <li>
|
---|
209 | <a href="https://trac.greenstone.org/browser/gs2-extensions/apache-jena/trunk/src">apache-jena</a>
|
---|
210 | so contentâsuch as annotations added to
|
---|
211 | programme pagesâcan be accessed as Linked Data.
|
---|
212 | </li>
|
---|
213 | </ul>
|
---|
214 | </p>
|
---|
215 |
|
---|
216 | <p>
|
---|
217 | A key strength to the Greenstone3 software architecture is its
|
---|
218 | ability to be customised, which is aligned with its three phases
|
---|
219 | for forming a digital library collection: importing, building,
|
---|
220 | and runtime presentation. The first two phases typically go
|
---|
221 | hand-in-hand, and form the ingest process by which content
|
---|
222 | selected for the digital library collection is turned into a
|
---|
223 | browseable and searchable online resource.
|
---|
224 | </p>
|
---|
225 | <p>
|
---|
226 | Importing centres around a pipeline of document processing
|
---|
227 | plugins, written in Perl, that turn a wide array of document
|
---|
228 | and metadata formats into a canonical format known as
|
---|
229 | GreenstoneXML. Using one folder per document, this format
|
---|
230 | represents everything that constitutes the processed document:
|
---|
231 | the text and metadata of the document,
|
---|
232 | along with any supporting files. The internal format
|
---|
233 | allows for hierarchical structure, such as occurs
|
---|
234 | in Word, PDF, and HTML documents using headings.
|
---|
235 | Metadata can be attached to any level of the hierarchy.
|
---|
236 | Examples of associated files include automatically generated
|
---|
237 | web-friendly resources such as
|
---|
238 | screen-sized and thumbnail-sized images in the case
|
---|
239 | of photos, embedded resources, and the original file itself so it can be
|
---|
240 | downloaded.
|
---|
241 |
|
---|
242 | <!-- GreenstoneMETS -->
|
---|
243 | </p>
|
---|
244 | <p>
|
---|
245 | In terms of customisation, plugins support a
|
---|
246 | myriad of settings for fine-tuning how the processing is
|
---|
247 | undertaken. New plugins can also be introduced at any time,
|
---|
248 | with the digital library system automatically detecting their
|
---|
249 | presence.
|
---|
250 | </p>
|
---|
251 |
|
---|
252 | <p>
|
---|
253 | The building step takes the standardised XML form, and processes
|
---|
254 | it to form the backend indexes and database structures needed to
|
---|
255 | deliver the forms of searchingâsuch as full-text search, and
|
---|
256 | search by titleâand browsingâsuch as a hierarchical subject
|
---|
257 | classificationâspecified in the collection's configuration file.
|
---|
258 |
|
---|
259 | Effectively the building phase turns the standardised/serialised
|
---|
260 | GreenstoneXML form back into in-memory data-structures representing
|
---|
261 | a document's hierarchical structure of text and metadata, along
|
---|
262 | with how supporting files relate to that.
|
---|
263 | Following the directives specified in the collection's
|
---|
264 | configuration file, it is
|
---|
265 | then a simple matter to transmit this text, metadata, and associated
|
---|
266 | files as needed to the digital libraries indexing/database/backing-store.
|
---|
267 | </p>
|
---|
268 | <p>
|
---|
269 | Beyond the customisations that can be specified in a collection
|
---|
270 | configuration file for the building phase, Greenstone supports
|
---|
271 | orthogonal indexers. Like the document processing plugins used
|
---|
272 | in importing, orthogonal indexers are modules written in Perl,
|
---|
273 | and their inclusion is automatically detected by the Greenstone3
|
---|
274 | installation. Orthogonal indexers get presented the same of
|
---|
275 | in-memory stream of "reconstructed" documents,
|
---|
276 | allowing them to undertake additional processing if
|
---|
277 | required (such as computing audio features), which can
|
---|
278 | then be transmitted to specialist indexing/database/backing-store
|
---|
279 | (such as a content-based music recommender system), or otherwise
|
---|
280 | added to the existing indexing/database/backing-store.
|
---|
281 | </p>
|
---|
282 | <p>
|
---|
283 | The third phase of the Greenstone3 digital library architecture
|
---|
284 | governs how functionality is accessed and data is extracted from
|
---|
285 | the digital library and presented to the user. The Greenstone3
|
---|
286 | runtime is a service-based architecture, written in Java,
|
---|
287 | consisting of a network of connected modules. Modules are
|
---|
288 | self-describing and advertise the services they offer.
|
---|
289 | Communication between modules is by XML messages, with the
|
---|
290 | service handling the final layer of communication responsible
|
---|
291 | for presentation. Here, XSL Transforms (XSLTs) are used to
|
---|
292 | convert the underlying XML content into the web page displayed
|
---|
293 | by the digital library, blending in CSS and Javascript
|
---|
294 | files that control appearance and functionality.
|
---|
295 | files.
|
---|
296 | </p>
|
---|
297 | <p>
|
---|
298 | The XSLT files are grouped together in one place, forming the
|
---|
299 | interface for the digital library. An inheritance mechanism is
|
---|
300 | deployed throughout this part of the design. A collection can
|
---|
301 | override individual XSLT template rules as required to tweak
|
---|
302 | presentation details. A collection can also provide an entire
|
---|
303 | replacement XSLT file if so desired. For more substantial
|
---|
304 | changes a new interface is typically developed.
|
---|
305 | </p>
|
---|
306 |
|
---|
307 | <p>
|
---|
308 |
|
---|
309 | In terms of crafting the features and functionality to form this
|
---|
310 | prototype InterMusE digital library,
|
---|
311 | we made use of all three area for customisation.
|
---|
312 | </p>
|
---|
313 |
|
---|
314 |
|
---|
315 | </xsl:template>
|
---|
316 | </format>
|
---|
317 | <search type="solr">
|
---|
318 | <index name="text">
|
---|
319 | <displayItem lang="en" name="name">text</displayItem>
|
---|
320 | </index>
|
---|
321 | <!--
|
---|
322 | <index name="im.Work,dc.Title,ex.dc.Title,Title">
|
---|
323 | -->
|
---|
324 | <index name="im.Work">
|
---|
325 | <displayItem lang="en" name="name">titles</displayItem>
|
---|
326 | </index>
|
---|
327 | <index name="im.Artist">
|
---|
328 | <displayItem lang="en" name="name">artists</displayItem>
|
---|
329 | </index>
|
---|
330 | <index name="im.Composer">
|
---|
331 | <displayItem lang="en" name="name">composers</displayItem>
|
---|
332 | </index>
|
---|
333 | <index name="im.Venue">
|
---|
334 | <displayItem lang="en" name="name">venues</displayItem>
|
---|
335 | </index>
|
---|
336 | <index name="gs.usercomment">
|
---|
337 | <displayItem lang="en" name="name">user comments</displayItem>
|
---|
338 | </index>
|
---|
339 | <defaultIndex name="text"/>
|
---|
340 |
|
---|
341 | <level name="document">
|
---|
342 | <displayItem lang="en" name="name">document</displayItem>
|
---|
343 | </level>
|
---|
344 | <level name="section">
|
---|
345 | <displayItem lang="en" name="name">page</displayItem>
|
---|
346 | </level>
|
---|
347 | <defaultLevel name="section"/>
|
---|
348 |
|
---|
349 | <sort name="rank">
|
---|
350 | <displayItem lang="en" name="name">rank</displayItem>
|
---|
351 | </sort>
|
---|
352 | <sort name="none">
|
---|
353 | <displayItem lang="en" name="name">natural (build) order</displayItem>
|
---|
354 | </sort>
|
---|
355 |
|
---|
356 |
|
---|
357 | <facet name="im.GSFriendlyArtist">
|
---|
358 | <displayItem lang="en" name="name">artist</displayItem>
|
---|
359 | </facet>
|
---|
360 | <facet name="im.Composer">
|
---|
361 | <displayItem lang="en" name="name">composer</displayItem>
|
---|
362 | </facet>
|
---|
363 | <facet name="im.Venue">
|
---|
364 | <displayItem lang="en" name="name">venue</displayItem>
|
---|
365 | </facet>
|
---|
366 | <searchType name="plain"/>
|
---|
367 | <searchType name="advancedform"/>
|
---|
368 |
|
---|
369 | <format>
|
---|
370 | <gsf:template match="documentNode">
|
---|
371 | <!--
|
---|
372 | <xsl:call-template name="documentNode-CSVMetadata-or-IIIFViewer"/>
|
---|
373 | -->
|
---|
374 |
|
---|
375 | <gsf:switch>
|
---|
376 | <gsf:metadata name="HasGoogleVisionDocumentOCRJSON"/>
|
---|
377 | <gsf:when test="exists">
|
---|
378 | <td valign="top">
|
---|
379 | <xsl:call-template name="document-link-mirador-ahref">
|
---|
380 | <xsl:with-param name="embed"><gsf:icon style="vertical-align:middle;" type="document"/></xsl:with-param>
|
---|
381 | </xsl:call-template>
|
---|
382 | </td>
|
---|
383 | <td valign="top" style="width: 100%"> <!-- causes this (final) table cell to autofill -->
|
---|
384 | <xsl:call-template name="document-link-mirador-ahref">
|
---|
385 | <xsl:with-param name="embed">
|
---|
386 | <xsl:call-template name="choose-title"/>
|
---|
387 | <!-- The following currently isn't triggered, as Programmes don't have Artist metadata -->
|
---|
388 | <gsf:switch>
|
---|
389 | <gsf:metadata name="im.Artist"/>
|
---|
390 | <gsf:when test="exists">, performed by<gsf:metadata name="im.Artist"/></gsf:when>
|
---|
391 | </gsf:switch>
|
---|
392 | </xsl:with-param>
|
---|
393 | </xsl:call-template>
|
---|
394 | </td>
|
---|
395 | </gsf:when>
|
---|
396 | <gsf:otherwise>
|
---|
397 | <td valign="top">
|
---|
398 | <gsf:link type="document">
|
---|
399 | <gsf:choose-metadata>
|
---|
400 | <gsf:metadata name="thumbicon"/>
|
---|
401 | <gsf:metadata name="srcicon"/>
|
---|
402 | <gsf:default>
|
---|
403 | <gsf:icon style="vertical-align:middle;" type="document"/>
|
---|
404 | </gsf:default>
|
---|
405 | </gsf:choose-metadata>
|
---|
406 | </gsf:link>
|
---|
407 | </td>
|
---|
408 | <td valign="top" style="width: 100%"> <!-- causes this (final) table cell to autofill -->
|
---|
409 | <gsf:link type="document">
|
---|
410 | <xsl:call-template name="choose-title"/>
|
---|
411 | <gsf:switch>
|
---|
412 | <gsf:metadata name="im.Composer"/>
|
---|
413 | <gsf:when test="exists">
|
---|
414 | <i> (<gsf:metadata name="im.Composer"/>)</i>
|
---|
415 | </gsf:when>
|
---|
416 | </gsf:switch>
|
---|
417 | <gsf:switch>
|
---|
418 | <gsf:metadata name="im.Artist"/>
|
---|
419 | <gsf:when test="exists">, performed by <gsf:metadata name="im.Artist"/></gsf:when>
|
---|
420 | </gsf:switch>
|
---|
421 | </gsf:link>
|
---|
422 | </td>
|
---|
423 | </gsf:otherwise>
|
---|
424 | </gsf:switch>
|
---|
425 |
|
---|
426 |
|
---|
427 | </gsf:template>
|
---|
428 |
|
---|
429 | </format>
|
---|
430 | </search>
|
---|
431 |
|
---|
432 | <search type="jenaTDB" orthogonal="true"/>
|
---|
433 |
|
---|
434 | <infodb type="jdbm"/>
|
---|
435 |
|
---|
436 | <import>
|
---|
437 | <pluginList>
|
---|
438 | <plugin name="ZIPPlugin"/>
|
---|
439 | <plugin name="GreenstoneXMLPlugin"/>
|
---|
440 | <plugin name="CSVPlugin">
|
---|
441 | <option name="-use_namespace_for_field_names" value="im"/>
|
---|
442 | <option name="-OIDtype" value="assigned"/>
|
---|
443 | <option name="-OIDmetadata" value="im.GSFriendlyID"/>
|
---|
444 | <option name="-metadata_value_separator" value=",(?!\s\w\.)"/>
|
---|
445 | <option name="-metadata_separate_fields" value="im.Artist,im.Composer"/>
|
---|
446 | <option name="-store_field_values_as_document_text"/>
|
---|
447 | </plugin>
|
---|
448 | <plugin name="GoogleVisionPagedImagePlugin">
|
---|
449 | <option name="-enable_cache"/>
|
---|
450 | <option name="-enable_document_ocr"/>
|
---|
451 | <option name="-OIDtype" value="filename"/>
|
---|
452 | <option name="-create_screenview" value="true"/>
|
---|
453 | <option name="-create_thumbnail" value="true"/>
|
---|
454 | <option name="-screenviewtype" value="png"/>
|
---|
455 | <option name="-thumbnailtype" value="png"/>
|
---|
456 | </plugin>
|
---|
457 | <plugin name="GoogleVisionImagePlugin">
|
---|
458 | <option name="-enable_cache"/>
|
---|
459 | <option name="-enable_document_ocr"/>
|
---|
460 | <option name="-enable_image_labelling"/>
|
---|
461 | </plugin>
|
---|
462 | <plugin name="TextPlugin">
|
---|
463 | <option name="-process_exp" value="(?=(?i).te?xt\$)(?=^(?!.*tk_))"/>
|
---|
464 | </plugin>
|
---|
465 | <plugin name="HTMLPlugin"/>
|
---|
466 | <plugin name="EmailPlugin"/>
|
---|
467 | <plugin name="PDFv2Plugin"/>
|
---|
468 | <plugin name="UnknownConverterPlugin">
|
---|
469 | <option name="-exec_cmd" value="java -jar $GSDLHOME/ext/tika/tika-app-*.jar --html --pretty-print --encoding=UTF-8 %%INPUT_FILE > %%OUTPUT"/>
|
---|
470 | <option name="-convert_to" value="html"/>
|
---|
471 | <option name="-mime_type" value="application/vnd.openxmlformats-officedocument.wordprocessingml.document"/>
|
---|
472 | <option name="-srcicon" value="icondocx"/>
|
---|
473 | <option name="-process_extension" value="docx"/>
|
---|
474 | </plugin>
|
---|
475 | <plugin name="RTFPlugin"/>
|
---|
476 | <plugin name="WordPlugin"/>
|
---|
477 | <plugin name="PostScriptPlugin"/>
|
---|
478 | <plugin name="PowerPointPlugin"/>
|
---|
479 | <plugin name="ExcelPlugin"/>
|
---|
480 | <plugin name="ISISPlugin"/>
|
---|
481 | <plugin name="NulPlugin"/>
|
---|
482 | <plugin name="OAIPlugin"/>
|
---|
483 | <plugin name="MetadataXMLPlugin"/>
|
---|
484 | <plugin name="ArchivesInfPlugin"/>
|
---|
485 | <plugin name="DirectoryPlugin"/>
|
---|
486 | </pluginList>
|
---|
487 | </import>
|
---|
488 |
|
---|
489 | <browse>
|
---|
490 | <classifier name="List">
|
---|
491 | <!--
|
---|
492 | <option name="-metadata" value="dc.Title,Title"/>
|
---|
493 | -->
|
---|
494 | <option name="-metadata" value="Volume"/>
|
---|
495 | <option name="-buttonname" value="Programmes"/>
|
---|
496 | <option name="-partition_type_within_level" value="approximate_size"/>
|
---|
497 | <option name="-numeric_partition_type_within_level" value="approximate_size"/>
|
---|
498 | <option name="-metadata_selection_mode_within_level" value="firstvalue"/>
|
---|
499 |
|
---|
500 | <format>
|
---|
501 | <gsf:template match="documentNode">
|
---|
502 | <td valign="top">
|
---|
503 | <xsl:call-template name="document-link-mirador-ahref">
|
---|
504 | <xsl:with-param name="embed"><gsf:icon style="vertical-align:middle;" type="document"/></xsl:with-param>
|
---|
505 | </xsl:call-template>
|
---|
506 | </td>
|
---|
507 | <td valign="top">
|
---|
508 | <xsl:call-template name="document-link-mirador-ahref">
|
---|
509 | <xsl:with-param name="embed">
|
---|
510 | <xsl:call-template name="choose-title"/>
|
---|
511 | <gsf:switch>
|
---|
512 | <gsf:metadata name="im.Artist"/>
|
---|
513 | <gsf:when test="exists">, performed by<gsf:metadata name="im.Artist"/></gsf:when>
|
---|
514 | </gsf:switch>
|
---|
515 | </xsl:with-param>
|
---|
516 | </xsl:call-template>
|
---|
517 | </td>
|
---|
518 | <!--
|
---|
519 | <td valign="top">
|
---|
520 | <gsf:link type="document">
|
---|
521 | <xsl:call-template name="choose-title"/>
|
---|
522 | <gsf:switch>
|
---|
523 | <gsf:metadata name="im.Artist"/>
|
---|
524 | <gsf:when test="exists">, performed by<gsf:metadata name="im.Artist"/></gsf:when>
|
---|
525 | </gsf:switch>
|
---|
526 |
|
---|
527 | </gsf:link>
|
---|
528 | </td>
|
---|
529 | -->
|
---|
530 | </gsf:template>
|
---|
531 | <gsf:template match="classifierNode[@classifierStyle = 'VList']">
|
---|
532 | <td valign="top">
|
---|
533 | <gsf:link style="static" type="classifier">
|
---|
534 | <gsf:icon type="classifier"/>
|
---|
535 | </gsf:link>
|
---|
536 | </td>
|
---|
537 | <td valign="top">
|
---|
538 | <gsf:link type="classifier">
|
---|
539 | <gsf:metadata name="Title"/>
|
---|
540 | </gsf:link>
|
---|
541 | </td>
|
---|
542 | </gsf:template>
|
---|
543 | <gsf:template match="classifierNode[@classifierStyle = 'HList']">
|
---|
544 | <gsf:link style="static" type="classifier">
|
---|
545 | <gsf:metadata name="Title"/>
|
---|
546 | </gsf:link>
|
---|
547 | </gsf:template>
|
---|
548 | </format>
|
---|
549 | </classifier>
|
---|
550 |
|
---|
551 | <classifier name="AZCompactList">
|
---|
552 | <option name="-metadata" value="im.Work"/>
|
---|
553 | <option name="-buttonname" value="Performances"/>
|
---|
554 | <option name="-mingroup" value="2"/>
|
---|
555 | </classifier>
|
---|
556 | <classifier name="AZCompactList">
|
---|
557 | <option name="-metadata" value="im.Artist"/>
|
---|
558 | <option name="-buttonname" value="Artists"/>
|
---|
559 | <option name="-removesuffix" value="\s*\([^)]*\)"/>
|
---|
560 | </classifier>
|
---|
561 | <classifier name="AZCompactList">
|
---|
562 | <option name="-metadata" value="im.Composer"/>
|
---|
563 | <option name="-buttonname" value="Composers"/>
|
---|
564 | <option name="-removeprefix" value="arr(\.?)\s*"/>
|
---|
565 | </classifier>
|
---|
566 | <classifier name="AZCompactList">
|
---|
567 | <option name="-metadata" value="im.Venue"/>
|
---|
568 | <option name="-buttonname" value="Venues"/>
|
---|
569 | </classifier>
|
---|
570 |
|
---|
571 |
|
---|
572 |
|
---|
573 | <format>
|
---|
574 | <gsf:template match="documentNode">
|
---|
575 | <td valign="top">
|
---|
576 | <gsf:link type="document">
|
---|
577 | <gsf:choose-metadata>
|
---|
578 | <gsf:metadata name="thumbicon"/>
|
---|
579 | <gsf:metadata name="srcicon"/>
|
---|
580 | <gsf:default>
|
---|
581 | <gsf:icon style="vertical-align:middle;" type="document"/>
|
---|
582 | </gsf:default>
|
---|
583 | </gsf:choose-metadata>
|
---|
584 | </gsf:link>
|
---|
585 | </td>
|
---|
586 | <td valign="top">
|
---|
587 | <gsf:link type="document">
|
---|
588 | <!--
|
---|
589 | Defined in the global format statement
|
---|
590 | -->
|
---|
591 | <xsl:call-template name="choose-title"/>
|
---|
592 | <gsf:switch>
|
---|
593 | <gsf:metadata name="im.Composer"/>
|
---|
594 | <gsf:when test="exists">
|
---|
595 | <i> (<gsf:metadata name="im.Composer"/>)</i>
|
---|
596 | </gsf:when>
|
---|
597 | </gsf:switch>
|
---|
598 | <gsf:switch>
|
---|
599 | <gsf:metadata name="im.Artist"/>
|
---|
600 | <gsf:when test="exists">, performed by <gsf:metadata name="im.Artist"/></gsf:when>
|
---|
601 | </gsf:switch>
|
---|
602 | </gsf:link>
|
---|
603 | </td>
|
---|
604 | </gsf:template>
|
---|
605 | <gsf:template match="classifierNode[@classifierStyle = 'VList']">
|
---|
606 | <td valign="top">
|
---|
607 | <gsf:link styleXX="static" type="classifier">
|
---|
608 | <gsf:icon style="vertical-align:middle;" type="classifier"/>
|
---|
609 | </gsf:link>
|
---|
610 | <gsf:link styleXX="static" type="classifier">
|
---|
611 | <span style="padding: 2px 2px 2px 0px;">[<gsf:metadata name="numleafdocs"/>]</span>
|
---|
612 | </gsf:link>
|
---|
613 | </td>
|
---|
614 | <td valign="top">
|
---|
615 | <gsf:link type="classifier">
|
---|
616 | <gsf:metadata name="Title"/>
|
---|
617 | </gsf:link>
|
---|
618 | </td>
|
---|
619 | </gsf:template>
|
---|
620 | <gsf:template match="classifierNode[@classifierStyle = 'HList']">
|
---|
621 | <gsf:link style="static" type="classifier">
|
---|
622 | <gsf:metadata name="Title"/>
|
---|
623 | </gsf:link>
|
---|
624 | </gsf:template>
|
---|
625 | </format>
|
---|
626 |
|
---|
627 | </browse>
|
---|
628 | <display>
|
---|
629 | <format>
|
---|
630 | <gsf:headMetaTags>
|
---|
631 | <gsf:metadata name="Title"/>
|
---|
632 | <gsf:metadata name="Image"/>
|
---|
633 | <gsf:metadata name="HasGoogleVisionDocumentOCRJSON"/>
|
---|
634 | <gsf:metadata name="GVDocumentOCRJSON"/>
|
---|
635 |
|
---|
636 | <gsf:metadata name="im.No"/>
|
---|
637 | <gsf:metadata name="im.Work"/>
|
---|
638 | <gsf:metadata name="im.Date"/>
|
---|
639 | <gsf:metadata name="im.Artist"/>
|
---|
640 | <gsf:metadata name="im.Venue"/>
|
---|
641 | <gsf:metadata name="im.Composer"/>
|
---|
642 | <gsf:metadata name="im.Date"/>
|
---|
643 | <gsf:metadata name="im.ProgAndPage"/>
|
---|
644 |
|
---|
645 | </gsf:headMetaTags>
|
---|
646 |
|
---|
647 | <gsf:option name="TOC" value="true"/>
|
---|
648 | <gsf:option name="allowUserComments" value="true"/>
|
---|
649 | <gsf:option name="allowDocumentEditing" value="true"/>
|
---|
650 | <gsf:option name="allowMapGPSEditing" value="true"/>
|
---|
651 |
|
---|
652 |
|
---|
653 | <gsf:option name="includeFileAssocOpenAnnotations" value="false"/>
|
---|
654 | <gsf:option name="includeEditableOpenAnnotations" value="true" endpointURL="/simpleAnnotationStore/annotation" />
|
---|
655 | <!--
|
---|
656 | <gsf:option name="includeEditableOpenAnnotations" value="true" endpointURL="localStorage" />
|
---|
657 | -->
|
---|
658 |
|
---|
659 | <!--
|
---|
660 | <gsf:variable name="openAnnotationEndpoint">https://intermuse.sowemustthink.space/simpleAnnotationStore/annotation</gsf:variable>
|
---|
661 | -->
|
---|
662 |
|
---|
663 | <!--
|
---|
664 | Overwriting this template allows you to change the heading of the document.
|
---|
665 | -->
|
---|
666 |
|
---|
667 | <xsl:template name="documentHeading">
|
---|
668 | <!--
|
---|
669 | <gsf:metadata hidden="true" name="HasGoogleVisionDocumentOCRJSON"/>
|
---|
670 | <gsf:metadata hidden="true" name="GVDocumentOCRJSON"/>
|
---|
671 | <gsf:metadata hidden="true" name="Image"/>
|
---|
672 | -->
|
---|
673 | <!--
|
---|
674 | **** currently needed to ensure ILT TOC gets Image (rather than Source) metadata ?????
|
---|
675 | -->
|
---|
676 |
|
---|
677 | <gsf:metadata hidden="true" name="im.Programme" select="root"/>
|
---|
678 | <gsf:metadata hidden="true" name="SASShortID" />
|
---|
679 | <gsf:metadata hidden="true" name="im.GSFriendlyProg"/>
|
---|
680 | <gsf:metadata hidden="true" name="im.GSFriendlyPage"/>
|
---|
681 |
|
---|
682 | <xsl:if test="$bookswitch != 'mirador'">
|
---|
683 | <span style="font-weight:bold; font-size: 120%;">
|
---|
684 | <xsl:call-template name="choose-title"/>
|
---|
685 | </span>
|
---|
686 | </xsl:if>
|
---|
687 |
|
---|
688 | <gsf:metadata-table>
|
---|
689 | <gsf:metadata name="im.No" >Performance ID:</gsf:metadata>
|
---|
690 | <gsf:metadata name="im.Work" >Work: </gsf:metadata>
|
---|
691 | <gsf:metadata name="im.Artist" >Artist(s): </gsf:metadata>
|
---|
692 | <gsf:metadata name="im.Composer" >Composer: </gsf:metadata>
|
---|
693 | <gsf:metadata name="im.Venue" >Venue: </gsf:metadata>
|
---|
694 | <gsf:metadata name="im.Date" >Date: </gsf:metadata>
|
---|
695 | <gsf:metadata name="im.ProgAndPage">Programme/Concert:</gsf:metadata>
|
---|
696 | </gsf:metadata-table>
|
---|
697 | </xsl:template>
|
---|
698 | <!--
|
---|
699 | Overwriting this template can be used to change the content of section headings.
|
---|
700 | -->
|
---|
701 | <gsf:template name="sectionHeading">
|
---|
702 | <xsl:call-template name="choose-title"/>
|
---|
703 | </gsf:template>
|
---|
704 | </format>
|
---|
705 | </display>
|
---|
706 | <replaceListRef id="gs2-standard"/>
|
---|
707 | <replaceListRef id="gs2-image"/>
|
---|
708 | <serviceRackList><!-- comment out the following serviceRack if you want to disable RSS for this collection -->
|
---|
709 | <serviceRack name="RSSRetrieve"/><!-- comment out the following serviceRack if you want to disable OAI for this collection -->
|
---|
710 | <serviceRack name="OAIPMH">
|
---|
711 | <setName>intermuseprogammes</setName>
|
---|
712 | <setDescription/><!-- uncomment the following and set the name attribute if
|
---|
713 | you want this collection to be part of a super set. --><!--<oaiSuperSet name="xxx"/>-->
|
---|
714 | <ListMetadataFormats><!--What metadata sets to support for this collection. You can select any set that is specified in OAIConfig.xml. To use a new set, you need to add a set definition in OAIConfig.xml, then reference it here, like:
|
---|
715 | <metadataFormat metadataPrefix="prefix"/> -->
|
---|
716 | <metadataFormat metadataPrefix="oai_dc"><!-- you can customize the mappings by adding elements in here. See resources/oai/OAIConfig.xml for the format--></metadataFormat>
|
---|
717 | </ListMetadataFormats>
|
---|
718 | </serviceRack>
|
---|
719 | <serviceRack name="IIIFPMH">
|
---|
720 | <setName>intermuseprogammes</setName>
|
---|
721 | <setDescription/><!-- uncomment the following and set the name attribute if
|
---|
722 | you want this collection to be part of a super set. --><!--<oaiSuperSet name="xxx"/>-->
|
---|
723 | <ListMetadataFormats><!--What metadata sets to support for this collection. You can select any set that is specified in OAIConfig.xml. To use a new set, you need to add a set definition in OAIConfig.xml, then reference it here, like:
|
---|
724 | <metadataFormat metadataPrefix="prefix"/> -->
|
---|
725 | <metadataFormat metadataPrefix="oai_dc"><!-- you can customize the mappings by adding elements in here. See resources/oai/OAIConfig.xml for the format--></metadataFormat>
|
---|
726 | </ListMetadataFormats>
|
---|
727 | </serviceRack>
|
---|
728 | </serviceRackList>
|
---|
729 | </CollectionConfig>
|
---|