source: gs3-installations/intermuse/trunk/sites/intermuse/collect/programmes-and-performers/etc/collectionConfig.xml

Last change on this file was 37713, checked in by davidb, 12 months ago

Rationalized, removing commented out blocks

File size: 30.2 KB
Line 
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&amp;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 &quot;reconstructed&quot; 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>
Note: See TracBrowser for help on using the repository browser.