CINXE.COM
Computational access to digital collections
<!DOCTYPE html> <html id="" class="no-js" lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="x-ua-compatible" content="ie=edge"><script type="text/javascript">(window.NREUM||(NREUM={})).init={ajax:{deny_list:["bam.nr-data.net"]}};(window.NREUM||(NREUM={})).loader_config={licenseKey:"3eb56368de",applicationID:"339949050"};;/*! For license information please see nr-loader-rum-1.274.0.min.js.LICENSE.txt */ (()=>{var e,t,r={8122:(e,t,r)=>{"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>u});var n=r(384),i=r(8122);const o={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){try{const t=c(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function u(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.info=a[e])}},9417:(e,t,r)=>{"use strict";r.d(t,{D0:()=>g,gD:()=>h,xN:()=>p});var n=r(993);const i=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var o=r(2614),a=r(944),s=r(384),c=r(8122);const u="[data-nr-mask]",d=()=>{const e={mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,harvestTimeSeconds:10,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},feature_flags:[],generic_events:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},harvest:{tooManyRequestsDelay:60},jserrors:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},logging:{enabled:!0,harvestTimeSeconds:10,autoStart:!0,level:n.p_.INFO},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:o.wk,inactiveMs:o.BB},session_replay:{autoStart:!0,enabled:!1,harvestTimeSeconds:60,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){i(t)?e.mask_selector="".concat(t,",").concat(u):""===t||null===t?e.mask_selector=u:(0,a.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){i(t)?e.block_selector+=",".concat(t):""!==t&&(0,a.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,a.R)(7,t)}},session_trace:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},soft_navigations:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},spa:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},ssl:void 0,user_actions:{enabled:!0}}},l={},f="All configuration objects require an agent identifier!";function g(e){if(!e)throw new Error(f);if(!l[e])throw new Error("Configuration for ".concat(e," was never set"));return l[e]}function p(e,t){if(!e)throw new Error(f);l[e]=(0,c.a)(t,d());const r=(0,s.nY)(e);r&&(r.init=l[e])}function h(e,t){if(!e)throw new Error(f);var r=g(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},3371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>l});var n=r(8122),i=r(384),o=r(6154),a=r(9324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},u={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0},d={};function l(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!d[e])throw new Error("Runtime for ".concat(e," was never set"));return d[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");d[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(d[e],"harvestCount")||Object.defineProperty(d[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=d[e])}},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,xv:()=>n});const n="1.274.0",i="PROD",o="CDN"},6154:(e,t,r)=>{"use strict";r.d(t,{OF:()=>c,RI:()=>i,WN:()=>d,bv:()=>o,gm:()=>a,mw:()=>s,sb:()=>u});var n=r(1863);const i="undefined"!=typeof window&&!!window.document,o="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),s=Boolean("hidden"===a?.document?.visibilityState),c=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=c&&"undefined"==typeof SharedWorker,d=((()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);Array.isArray(e)&&e.length>=2&&e[1]})(),Date.now()-(0,n.t)())},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>u});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),g(e,t,!1),s[e].size&&f(e))}function d(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(d(e),!e||!s[e].get(t)||r)return g(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),g(e,t)})))}function g(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t<e.length;++t)p(e[t],r);Object.entries(r).forEach((([e,t])=>{Object.values(t||{}).forEach((t=>{t[0]?.on&&t[0]?.context()instanceof a.y&&t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function p(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>u});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c="nr@context:".concat(s.W),u=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length&&(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=g(n),c=h(e),d=c.length,l=0;l<d;l++)c[l].apply(a,r);var p=m()[s[e]];p&&p.push([f,e,r,a]);return a},get:v,listeners:h,context:g,buffer:function(e,t){const r=m();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=>{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!m()[s[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function g(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function p(e,t){n[e]=h(e).concat(t)}function h(e){return n[e]||[]}function v(t){return d[t]=d[t]||e(f,t)}function m(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=u)},2646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3878:(e,t,r)=>{"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,bz:()=>a});var n=r(6154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}},2614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>u,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},944:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.debug&&console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t)}r.d(t,{R:()=>n})},5284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(7836),i=r(6154);const o="newrelic";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e&&"object"==typeof e&&(a.has(t)||(r.emit("rumresp",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},8990:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389:(e,t,r)=>{"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout((()=>{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=>{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(3878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>d,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>u,pV:()=>l});var n=r(6154),i=r(1863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},3434:(e,t,r)=>{"use strict";r.d(t,{YM:()=>c});var n=r(7836),i=r(5607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],d],e)}i(r+"start",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],d,c),e}finally{i(r+"end",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function d(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},993:(e,t,r)=>{"use strict";r.d(t,{ET:()=>o,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o="log";n.K7.logging},3969:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,XG:()=>s,rs:()=>i,xV:()=>a,z_:()=>o});const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},6630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=>{"use strict";r.d(t,{G4:()=>i});var n=r(2614);r(860).K7.sessionReplay;const i={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"};n.g.ERROR,n.g.FULL,n.g.OFF},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7603:(e,t,r)=>{"use strict";r.d(t,{j:()=>P});var n=r(860),i=r(2555),o=r(3371),a=r(9908),s=r(7836),c=r(1687),u=r(5289),d=r(6154),l=r(944),f=r(3969),g=r(384),p=r(6344);const h=["setErrorHandler","finished","addToTrace","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",p.G4.RECORD,p.G4.PAUSE,"log","wrapLogger"],v=["setErrorHandler","finished","addToTrace","addRelease"];var m=r(1863),b=r(2614),y=r(993);var w=r(2646),A=r(3434);function R(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const i=function(e){return(e||s.ee).get("logger")}(e),o=(0,A.YM)(i),a=new w.y(s.P);return a.level=n.level,a.customAttributes=n.customAttributes,o.inPlace(t,[r],"wrap-logger-",a),i}function E(){const e=(0,g.pV)();h.forEach((t=>{e[t]=(...r)=>function(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=>{e&&e.api?e.exposed&&e.api[t]&&n.push(e.api[t](...r)):(0,l.R)(38,t)})),n.length>1?n:n[0]}(t,...r)}))}const x={};function _(e,t,g=!1){t||(0,c.Ak)(e,"api");const h={};var w=s.ee.get(e),A=w.get("tracer");x[e]=b.g.OFF,w.on(p.G4.REPLAY_RUNNING,(t=>{x[e]=t}));var E="api-",_=E+"ixn-";function N(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),j(E,n,!0,o||null===r?"session":void 0)(t,r)}function T(){}h.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,w),function(e,t,r={},i=y.p_.INFO){(0,a.p)(f.xV,["API/logging/".concat(i.toLowerCase(),"/called")],void 0,n.K7.metrics,e),(0,a.p)(y.ET,[(0,m.t)(),t,r,i],void 0,n.K7.logging,e)}(w,e,t,r)},h.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,w),R(w,e,t,{customAttributes:r,level:i})},v.forEach((e=>{h[e]=j(E,e,!0,"api")})),h.addPageAction=j(E,"addPageAction",!0,n.K7.genericEvents),h.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,j(E,"setPageViewName",!0)()},h.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return N(e,t,"setCustomAttribute",r);(0,l.R)(40,typeof t)}else(0,l.R)(39,typeof e)},h.setUserId=function(e){if("string"==typeof e||null===e)return N("enduser.id",e,"setUserId",!0);(0,l.R)(41,typeof e)},h.setApplicationVersion=function(e){if("string"==typeof e||null===e)return N("application.version",e,"setApplicationVersion",!1);(0,l.R)(42,typeof e)},h.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,w),w.emit("manual-start-all")}catch(e){(0,l.R)(23,e)}},h[p.G4.RECORD]=function(){(0,a.p)(f.xV,["API/recordReplay/called"],void 0,n.K7.metrics,w),(0,a.p)(p.G4.RECORD,[],void 0,n.K7.sessionReplay,w)},h[p.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,w),(0,a.p)(p.G4.PAUSE,[],void 0,n.K7.sessionReplay,w)},h.interaction=function(e){return(new T).get("object"==typeof e?e:{})};const S=T.prototype={createTracer:function(e,t){var r={},i=this,o="function"==typeof t;return(0,a.p)(f.xV,["API/createTracer/called"],void 0,n.K7.metrics,w),g||(0,a.p)(_+"tracer",[(0,m.t)(),e,r],i,n.K7.spa,w),function(){if(A.emit((o?"":"no-")+"fn-start",[(0,m.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw A.emit("fn-err",[arguments,this,t],r),t}finally{A.emit("fn-end",[(0,m.t)()],r)}}}};function j(e,t,r,i){return function(){return(0,a.p)(f.xV,["API/"+t+"/called"],void 0,n.K7.metrics,w),i&&(0,a.p)(e+t,[(0,m.t)(),...arguments],r?null:this,i,w),r?void 0:this}}function k(){r.e(296).then(r.bind(r,8778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,l.R)(27,e),w.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{S[e]=j(_,e,void 0,g?n.K7.softNav:n.K7.spa)})),h.setCurrentRouteName=g?j(_,"routeName",void 0,n.K7.softNav):j(E,"routeName",!0,n.K7.spa),h.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,a.p)(f.xV,["API/noticeError/called"],void 0,n.K7.metrics,w),(0,a.p)("err",[t,(0,m.t)(),!1,r,!!x[e]],void 0,n.K7.jserrors,w)},d.RI?(0,u.GG)((()=>k()),!0):k(),h}var N=r(9417),T=r(8122);const S={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},j={};var k=r(5284);const I=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let O=!1;function P(e,t={},r,n){let{init:a,info:c,loader_config:u,runtime:l={},exposed:f=!0}=t;l.loaderType=r;const p=(0,g.pV)();c||(a=p.init,c=p.info,u=p.loader_config),(0,N.xN)(e.agentIdentifier,a||{}),function(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");j[e]=(0,T.a)(t,S);const r=(0,g.nY)(e);r&&(r.loader_config=j[e])}(e.agentIdentifier,u||{}),c.jsAttributes??={},d.bv&&(c.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,c);const h=(0,N.D0)(e.agentIdentifier),v=[c.beacon,c.errorBeacon];O||(h.proxy.assets&&(I(h.proxy.assets),v.push(h.proxy.assets)),h.proxy.beacon&&v.push(h.proxy.beacon),E(),(0,g.US)("activatedFeatures",k.B),e.runSoftNavOverSpa&&=!0===h.soft_navigations.enabled&&h.feature_flags.includes("soft_nav")),l.denyList=[...h.ajax.deny_list||[],...h.ajax.block_internal?v:[]],l.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,l),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=_(e.agentIdentifier,n,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=f),O=!0}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>o,K7:()=>n,P3:()=>i});const n={ajax:"ajax",genericEvents:"generic_events",jserrors:"jserrors",logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.spa]:5,[n.ajax]:6,[n.sessionTrace]:7,[n.softNav]:8,[n.sessionReplay]:9,[n.logging]:10,[n.genericEvents]:11},o={[n.pageViewTiming]:"events",[n.ajax]:"events",[n.spa]:"events",[n.softNav]:"events",[n.metrics]:"jserrors",[n.jserrors]:"jserrors",[n.sessionTrace]:"browser/blobs",[n.sessionReplay]:"browser/blobs",[n.logging]:"browser/logs",[n.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>"nr-rum-1.274.0.min.js",i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.274.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={296:"sha512-gkYkZDAwQ9PwaDXs2YM+rNIdRej1Ac1mupWobRJ8eahQcXz6/sunGZCKklrzi5kWxhOGRZr2tn0rEKuLTXzfAA=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var g=(t,n)=>{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},p=setTimeout(g.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=g.bind(null,s.onerror),s.onload=g.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={840:0,374:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.274.0.PROD"]=self["webpackChunk:NRBA-1.274.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(e=(0,r.LA)(16)){this.agentIdentifier=e}#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e("addPageAction",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}addRelease(e,t){return this.#e("addRelease",e,t)}log(e,t){return this.#e("log",e,t)}}class o extends n{#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e("start")}finished(e){return this.#e("finished",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}wrapLogger(e,t,r){return this.#e("wrapLogger",e,t,r)}}var a=i(860),s=i(9417);const c=Object.values(a.K7);function u(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.gD)(t,"".concat(e,".enabled"))}(r,e)})),t}var d=i(7603);var l=i(1687),f=i(4234),g=i(5289),p=i(6154),h=i(384);const v=e=>p.RI&&!0===(0,s.gD)(e,"privacy.cookies_enabled");function m(e){return!!(0,h.dV)().o.MO&&v(e)&&!0===(0,s.gD)(e,"session_trace.enabled")}var b=i(6389);class y extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart&&(this.auto=!1),this.auto?(0,l.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,b.J)((()=>{(0,l.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let o;try{if(v(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(296).then(i.bind(i,3861));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit("internal-error",[t]),this.featureName===a.K7.sessionReplay&&this.abortHandler?.()}try{if(t.sharedAggregator)await t.sharedAggregator;else{t.sharedAggregator=i.e(296).then(i.bind(i,9337));const{EventAggregator:e}=await t.sharedAggregator;t.sharedAggregator=new e}if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(296).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};p.RI?(0,g.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return m(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var w=i(6630);class A extends y{static featureName=w.T;constructor(e,t=!0){super(e,w.T,t),this.importAggregator(e)}}var R=i(9908),E=i(2843),x=i(3878),_=i(782),N=i(1863);class T extends y{static featureName=_.T;constructor(e,t=!0){super(e,_.T,t),p.RI&&((0,E.u)((()=>(0,R.p)("docHidden",[(0,N.t)()],void 0,_.T,this.ee)),!0),(0,x.sp)("pagehide",(()=>(0,R.p)("winPagehide",[(0,N.t)()],void 0,_.T,this.ee))),this.importAggregator(e))}}var S=i(3969);class j extends y{static featureName=S.TZ;constructor(e,t=!0){super(e,S.TZ,t),this.importAggregator(e)}}new class extends o{constructor(t,r){super(r),p.gm?(this.features={},(0,h.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(A),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,d.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=>!(e in this.features)));n.length>0&&(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,h.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[A,T,j],loaderType:"lite"})})()})();</script><script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","errorBeacon":"bam.nr-data.net","licenseKey":"3eb56368de","applicationID":"339949050","transactionName":"ZQAEYEYEDBZTBkUMC1xKIEFaBhYMXQseEgVVEQddWEsBCkAAHxMNVxIVDkcAEBNX","queueTime":0,"applicationTime":355,"agent":""}</script> <title>Computational access to digital collections</title> <meta name="description" content="Computational access to digital collections"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> <meta name="format-detection" content="telephone=no"> <meta name="copyright" content="Copyright 2019 - 2024"/> <meta name="robots" content="index,follow"/> <link rel="canonical" href="https://glamlabs.io/computational-access-to-digital-collections/"/> <link rel="icon" href="https://glam-labs.s3.amazonaws.com/media/dd/images/favicon.2c18cd9.png" type="image/x-icon"/> <link rel="apple-touch-icon-precomposed" href="https://glam-labs.s3.amazonaws.com/media/dd/images/icon.0b3001b.png"> <!--[if lt IE 9]> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.js"></script> <![endif]--> <!-- /// PAGE LOADING SCREEN /// --> <style> .loading-screen { position: fixed; z-index: 0; left: 0; right: 0; top: 0; bottom: 0; width: 100vw; height: 100vh; background-color: #F5F5F5; background-image: url("/static/images/loading.706fec3c10e9.gif"); background-repeat: no-repeat; background-position: center center; background-size: 40px 40px; } .body-inner { position: relative; height: 100vh; overflow: hidden; background-color: #FFFFFF; opacity: 0; pointer-events: none; } .page-loaded .loading-screen { opacity: 0; transition: opacity 0.2s ease-in-out; } .page-loaded .body-inner { height: auto; overflow: visible; opacity: 1; transition: opacity 1s ease-in-out; pointer-events: auto; } .warning { margin: 20px 0; padding: 20px; background-color: #ffc107; color: black; } </style> <noscript> <style> .loading-screen { display: none; } .body-inner { height: auto; overflow: auto; opacity: 1; pointer-events: auto; } </style> </noscript> <link rel="stylesheet" href="/static/js/vendor/leaflet/leaflet.911184d2df73.css"> <link rel="stylesheet" href="/static/js/vendor/leaflet-fullscreen/leaflet.fullscreen.6dd7f1493d15.css"> <!-- ///// CSS ///// --> <link id="base-stylesheet" rel="stylesheet" href="/static/css/glam_labs_community_base.10dbae6c8030.css"> <!--[if !IE]><!--> <link id="main-stylesheet" rel="stylesheet" href="/static/css/glam_labs_community_main.00c7c29167c3.css" disabled> <!--<![endif]--> <!-- ///// SOCIAL MEDIA TAGS ///// --> <!-- Twitter Card data --> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:site" content="@GLAM_labs"> <meta name="twitter:title" content="Computational access to digital collections"> <meta name="twitter:description" content="Computational access to digital collections"> <meta name="twitter:creator" content="@GLAM_labs"> <meta name="twitter:image:src" content="https://glam-labs.s3.amazonaws.com/media/dd/images/glam-labs-community-default-image.1297644.jpg"> <!-- Open Graph data --> <meta property="og:title" content="Computational access to digital collections"/> <meta property="og:type" content="website"/> <meta property="og:url" content="https://glamlabs.io/computational-access-to-digital-collections/"/> <meta property="og:image" content="https://glam-labs.s3.amazonaws.com/media/dd/images/glam-labs-community-default-image.1297644.jpg"/> <meta property="og:image:width" content="2000"/> <meta property="og:image:height" content="1000"/> <meta property="og:description" content="Computational access to digital collections"/> <meta property="og:site_name" content="International GLAM Labs Community"/> <meta property="og:locale" content="en_AU"/> <!-- Global Site Tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-151219721-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', 'UA-151219721-1'); </script> </head> <body id="top" class="landing-page" itemscope itemtype="http://schema.org/WebPage"> <!--[if lte IE 9]> <p class="warning">You are using an <strong>outdated browser</strong>. Please <a href="https://browsehappy.com/" style="color:black;">upgrade your browser</a> to improve your user experience and security.</p> <![endif]--> <!--[if !IE]><!--> <div class="loading-screen"></div> <!--<![endif]--> <noscript> <p class="warning"><strong>Javascript is disabled</strong>. In order to provide a better user experience, website styles have also been disabled. Some features and content may not be visible.</p> </noscript> <!-- ///// PAGE SCHEMA ///// --> <div class="page-schema"> <div itemscope itemtype="http://schema.org/WebPage"> <meta itemprop="name" content="Computational access to digital collections"> <meta itemprop="description" content="Computational access to digital collections"> <meta itemprop="image" content="https://glam-labs.s3.amazonaws.com/media/dd/images/glam-labs-community-default-image.1297644.jpg"> </div> </div> <div class="body-inner"> <nav class="accessibility-nav" aria-label="Skip links"> <a class="sr-skip-link" href="#page-main">Skip to main content</a><br> <a class="sr-skip-link" href="#site-footer">Skip to footer</a> </nav> <!--[if !IE]><!--> <div class="basic-view-message no-js-hide" aria-hidden="true"> <div class="basic-view-message__inner"> <span class="basic-view-message__text">Having trouble with this site?</span> <button class="basic-view-btn js-basic-view-btn"> Try the Basic View<span class="basic-view-btn__switch"></span> </button> <button class="basic-view-message__dismiss js-basic-view-message-dismiss"> <span class="basic-view-message__dismiss-txt">Dismiss this message</span> <span class="css-shape css-shape--x"></span> </button> </div> </div> <!--<![endif]--> <div class="page-wrap"> <header id="site-header" class="site-header " role="banner" itemscope itemtype="http://schema.org/WPHeader"> <div class="site-header__bkg"> <div class="site-header__inner"> <div class="site-header__masthead"> <a class="site-header__logo" href="/" title="Go to homepage"> <span class="site-header__logo-print"> <img src="/static/images/glam-labs-community-logotype-print.af97f1aa0ba1.jpg" width="200" alt="International GLAM Labs Community logotype"/> </span> <span class="site-header__logo-web"> <strong class="sr-only">International GLAM Lab Community</strong> </span> </a> <!-- Button for search modal on mobile view --> <button class="site-header__btn site-header__btn--nav js-nav-btn"> <span class="navicon"> <span></span> <span></span> <span></span> <strong>Menu</strong> </span> </button> </div> <!-- Checkbox Nav Toogle for when Javascript is disabled / used for more complex nav structures --> <!-- <label class="site-header__nav-checkbox-label" for="site-header__nav-checkbox" onclick>Show Menu</label> --> <!-- <input id="site-header__nav-checkbox" type="checkbox"> --> <div id="js-nav-pane" class="site-header__nav-pane"> <div class="site-header__nav-pane-inner"> <nav class="site-header__main-nav" aria-label="Main"> <ul class="main-nav sr-unmarked-list"> <li class="main-nav__item"><a class="main-nav__link" href="/">Home</a></li> <li class="main-nav__item"> <a class="main-nav__link" href="/member-map/">Member Map</a> </li> <li class="main-nav__item"> <a class="main-nav__link" href="/books/">Publications</a> </li> <li class="main-nav__item"> <a class="main-nav__link" href="/computational-access-to-digital-collections/">Computational access</a> </li> <li class="main-nav__item"> <a class="main-nav__link" href="/checklist/">Checklist</a> </li> </ul> </nav> <!-- Search form inside site header --> <button class="site-header__btn site-header__btn--nav js-nav-btn"> <span class="navicon"> <span></span> <span></span> <span></span> <strong class="sr-only">Close menu</strong> </span> </button> </div> </div> </div> </div> </header> <hr> <main id="page-main" class="page-main" role="main" itemscope itemtype="http://schema.org/WebPageElement" itemprop="mainContentOfPage"> <div class="page-main__inner"> <article> <header class="page-header"> <div class="page-header__breadcrumbs"> <div class="page-header__breadcrumbs-inner"> <div class="breadcrumbs-container"><div class="breadcrumbs-container__inner"><nav aria-label="Breadcrumb"><ol class="breadcrumbs sr-unmarked-list"><li class="breadcrumbs__item"><a class="breadcrumbs__link" href="/">Home</a></li><li class="breadcrumbs__item" aria-current="page">Computational access</li></ol></nav></div></div><hr> </div> </div> <div class="page-header__inner"> <div class="page-header__content"> <div class="page-header__content-inner"> <h1 class="page-header__title">Computational access to digital collections</h1> </div> </div> </div> </header> <hr> <div class="page-body"> <section class="page-section" id="computational-access-to-digital-collections"> <div class="page-section__inner"> <div class="content-block block-richtext"> <div class="block-richtext__inner"> <p>GLAM institutions have explored new ways of publishing digitised and born-digital collections in order to apply computational methods. The initiative <a href="https://collectionsasdata.github.io/"><i>Always Already Computational: Collections as Data</i></a> guides institutions and researchers to provide collections as data. This section introduces several relevant projects and innovative initiatives that reuse digital collections and explore the application of computational methods by means of <a href="https://jupyter.org/">Jupyter Notebooks</a>.</p><p>The information describing the Jupyter Notebook projects and the datasets reused has been introduced into <a href="https://www.wikidata.org">Wikidata</a>, a collaborative edition platform, to provide a clickable graphical visualization that is shown below. The list of projects introduced in this section can be retrieved from Wikidata by clicking on the following <a href="https://w.wiki/4$Ud">link</a>.</p><p>In addition, an approach to assess the quality of Jupyter projects published by GLAM institutions have been recently published in the form of a research article in the <a href="https://doi.org/10.1002/asi.24835">Journal of the Association for Information Science and Technology</a>.</p> </div> </div> <div class="content-block block-html"> <div class="block-html__inner"> <iframe style="width: 60%; height: 700px; border: none;" src="https://query.wikidata.org/embed.html#%23defaultView%3AGraph%0ASELECT%20%3Fnbs%20%3FnbsLabel%20%3Fnbspic%20%3FlinkTo%20%3FlinkToLabel%20%3Flinknb%20%3Fpic%0AWHERE%0A%7B%0A%20%20values%20%3Fnbs%20%7Bwd%3AQ111396450%20wd%3AQ111396660%20wd%3AQ111411199%20wd%3AQ111421153%20wd%3AQ111421205%20wd%3AQ111450546%20wd%3AQ123852539%7D%0A%20%20%3Fnbs%20wdt%3AP2283%20%3FlinkTo%20.%0A%20%20%3FlinkTo%20wdt%3AP856%20%3Flinknb%20.%0A%20%20OPTIONAL%20%7B%3Fnbs%20wdt%3AP154%20%3Fnbspic%20.%7D%0A%20%20OPTIONAL%20%7B%3FlinkTo%20wdt%3AP127%20%3Fowner.%20%3Fowner%20wdt%3AP154%20%3Fpic%20.%7D%0A%20%20OPTIONAL%20%7B%3FlinkTo%20wdt%3AP126%20%3Fmanteiner.%20%3Fmanteiner%20wdt%3AP154%20%3Fpic%20.%7D%0A%20%20OPTIONAL%20%7B%3FlinkTo%20wdt%3AP154%20%3Fpic%20.%7D%0A%20%20OPTIONAL%20%7B%3FlinkTo%20wdt%3AP18%20%3Fpic%20.%7D%20%0A%20%20SERVICE%20wikibase%3Alabel%20%7Bbd%3AserviceParam%20wikibase%3Alanguage%20%22en%2Cfr%2Ces%22%20%7D%0A%7D" referrerpolicy="origin" sandbox="allow-scripts allow-same-origin allow-popups" ></iframe> </div> <hr> </div> <div class="content-block block-promo"> <div class="block-promo__inner"> <div class="block-promo__image"> <div class="block-promo__image-inner"> <div class="lazyload-container-outer" style="max-width: 1200px;"> <div class="lazyload-container" style="padding-top: 44.25%;"> <img class="lazyload" data-srcset=" https://thumbor.ixchosted.com/l7QM533-abi74sBAJGAzQ_VgCwg=/fit-in/600x400/https://glam-labs.s3.amazonaws.com/media/dd/images/data-foundry.fb54366.jpg 600w, https://thumbor.ixchosted.com/MUtOmgvAvXhrvytjPW1E2YjTOZo=/fit-in/900x600/https://glam-labs.s3.amazonaws.com/media/dd/images/data-foundry.fb54366.jpg 900w, https://thumbor.ixchosted.com/0vg9-OToe2-zX3k1Zxgly1C_md4=/fit-in/1200x800/https://glam-labs.s3.amazonaws.com/media/dd/images/data-foundry.fb54366.jpg 1200w" data-src=" https://thumbor.ixchosted.com/l7QM533-abi74sBAJGAzQ_VgCwg=/fit-in/600x400/https://glam-labs.s3.amazonaws.com/media/dd/images/data-foundry.fb54366.jpg" sizes="(min-width: 650px) 600px, 100vw" alt="" > <span class="lazyload-print-message"></span> </div> </div> <noscript><img src="https://thumbor.ixchosted.com/0vg9-OToe2-zX3k1Zxgly1C_md4=/fit-in/1200x800/https://glam-labs.s3.amazonaws.com/media/dd/images/data-foundry.fb54366.jpg" alt=""></noscript> </div> </div> <div class="block-promo__info"> <div class="block-promo__info-inner"> <div class="block-promo__text"> <h3 class="block-promo__title">Data Foundry - Jupyter Notebooks</h3> <p class="block-promo__description">These Jupyter Notebooks provide initial, exploratory analysis of some of the National Library of Scotland datasets. No prior programming experience is needed to access and use these Notebooks.</p> </div> <div class="block-promo__cta"> <a class="block-promo__cta-item btn btn--primary" href="https://data.nls.uk/tools/jupyter-notebooks/"> View more </a> </div> </div> </div> </div> <hr> </div> <div class="content-block block-promo"> <div class="block-promo__inner"> <div class="block-promo__image"> <div class="block-promo__image-inner"> <div class="lazyload-container-outer" style="max-width: 600px;"> <div class="lazyload-container" style="padding-top: 50.0%;"> <img class="lazyload" data-srcset=" https://thumbor.ixchosted.com/CWdlQOkbP8e_1Y17lVB0MbMJOws=/fit-in/600x400/https://glam-labs.s3.amazonaws.com/media/dd/images/glam-workbench-slider.81f58a3.png 600w, https://thumbor.ixchosted.com/7hF1Xnz9Xze3UgtoqTDr4biT7ko=/fit-in/900x600/https://glam-labs.s3.amazonaws.com/media/dd/images/glam-workbench-slider.81f58a3.png 600w, https://thumbor.ixchosted.com/SXV88TgpsVn-x35SkB-Of5vONVs=/fit-in/1200x800/https://glam-labs.s3.amazonaws.com/media/dd/images/glam-workbench-slider.81f58a3.png 600w" data-src=" https://thumbor.ixchosted.com/CWdlQOkbP8e_1Y17lVB0MbMJOws=/fit-in/600x400/https://glam-labs.s3.amazonaws.com/media/dd/images/glam-workbench-slider.81f58a3.png" sizes="(min-width: 650px) 600px, 100vw" alt="" > <span class="lazyload-print-message"></span> </div> </div> <noscript><img src="https://thumbor.ixchosted.com/SXV88TgpsVn-x35SkB-Of5vONVs=/fit-in/1200x800/https://glam-labs.s3.amazonaws.com/media/dd/images/glam-workbench-slider.81f58a3.png" alt=""></noscript> </div> </div> <div class="block-promo__info"> <div class="block-promo__info-inner"> <div class="block-promo__text"> <h3 class="block-promo__title">GLAM Workbench</h3> <p class="block-promo__description">A collection of tools, tutorials, examples, and hacks to help you work with data from GLAM institutions. While the primary focus is Australia and New Zealand, new collections are being added all the time.</p> </div> <div class="block-promo__cta"> <a class="block-promo__cta-item btn btn--primary" href="https://glam-workbench.net/"> View more </a> </div> </div> </div> </div> <hr> </div> <div class="content-block block-promo"> <div class="block-promo__inner"> <div class="block-promo__image"> <div class="block-promo__image-inner"> <div class="lazyload-container-outer" style="max-width: 600px;"> <div class="lazyload-container" style="padding-top: 50.0%;"> <img class="lazyload" data-srcset=" https://thumbor.ixchosted.com/Oovb-tf6jJVZaInem9XXBFTIbqw=/fit-in/600x400/https://glam-labs.s3.amazonaws.com/media/dd/images/lc-robots-slider.5241d4a.png 600w, https://thumbor.ixchosted.com/0Jg02tQYYcr8vs-lySNLL-a6WrU=/fit-in/900x600/https://glam-labs.s3.amazonaws.com/media/dd/images/lc-robots-slider.5241d4a.png 600w, https://thumbor.ixchosted.com/wTK-8bPuPS7yiwkyOI7K3rd5_3U=/fit-in/1200x800/https://glam-labs.s3.amazonaws.com/media/dd/images/lc-robots-slider.5241d4a.png 600w" data-src=" https://thumbor.ixchosted.com/Oovb-tf6jJVZaInem9XXBFTIbqw=/fit-in/600x400/https://glam-labs.s3.amazonaws.com/media/dd/images/lc-robots-slider.5241d4a.png" sizes="(min-width: 650px) 600px, 100vw" alt="" > <span class="lazyload-print-message"></span> </div> </div> <noscript><img src="https://thumbor.ixchosted.com/wTK-8bPuPS7yiwkyOI7K3rd5_3U=/fit-in/1200x800/https://glam-labs.s3.amazonaws.com/media/dd/images/lc-robots-slider.5241d4a.png" alt=""></noscript> </div> </div> <div class="block-promo__info"> <div class="block-promo__info-inner"> <div class="block-promo__text"> <h3 class="block-promo__title">LC for Robots</h3> <p class="block-promo__description">The data-exploration repository includes Jupyter Notebooks and example scripts using openly available Library of Congress Digital Collections or records.</p> </div> <div class="block-promo__cta"> <a class="block-promo__cta-item btn btn--primary" href="https://github.com/LibraryOfCongress/data-exploration"> View more </a> </div> </div> </div> </div> <hr> </div> <div class="content-block block-promo"> <div class="block-promo__inner"> <div class="block-promo__image"> <div class="block-promo__image-inner"> <div class="lazyload-container-outer" style="max-width: 600px;"> <div class="lazyload-container" style="padding-top: 50.0%;"> <img class="lazyload" data-srcset=" https://thumbor.ixchosted.com/rcgjLomloQDvm-irjFFAffjj99g=/fit-in/600x400/https://glam-labs.s3.amazonaws.com/media/dd/images/bl-slider.216d0bb.png 600w, https://thumbor.ixchosted.com/R9smKGKRieaR1vgcfFxE1TWWPY4=/fit-in/900x600/https://glam-labs.s3.amazonaws.com/media/dd/images/bl-slider.216d0bb.png 600w, https://thumbor.ixchosted.com/B4wjik4nWE6cYg5xmM49_lT_UX8=/fit-in/1200x800/https://glam-labs.s3.amazonaws.com/media/dd/images/bl-slider.216d0bb.png 600w" data-src=" https://thumbor.ixchosted.com/rcgjLomloQDvm-irjFFAffjj99g=/fit-in/600x400/https://glam-labs.s3.amazonaws.com/media/dd/images/bl-slider.216d0bb.png" sizes="(min-width: 650px) 600px, 100vw" alt="" > <span class="lazyload-print-message"></span> </div> </div> <noscript><img src="https://thumbor.ixchosted.com/B4wjik4nWE6cYg5xmM49_lT_UX8=/fit-in/1200x800/https://glam-labs.s3.amazonaws.com/media/dd/images/bl-slider.216d0bb.png" alt=""></noscript> </div> </div> <div class="block-promo__info"> <div class="block-promo__info-inner"> <div class="block-promo__text"> <h3 class="block-promo__title">Jupyter Notebooks using the British Library鈥檚 Digital Collections and Data</h3> <p class="block-promo__description">A list of Jupyter Notebook' projects using the British Library鈥檚 digital collections and data.</p> </div> <div class="block-promo__cta"> <a class="block-promo__cta-item btn btn--primary" href="https://github.com/BL-Labs/Jupyter-notebooks-projects-using-BL-Sources"> View more </a> </div> </div> </div> </div> <hr> </div> <div class="content-block block-promo"> <div class="block-promo__inner"> <div class="block-promo__image"> <div class="block-promo__image-inner"> <div class="lazyload-container-outer" style="max-width: 959px;"> <div class="lazyload-container" style="padding-top: 43.06569343065693%;"> <img class="lazyload" data-srcset=" https://thumbor.ixchosted.com/MmK1JjbaEmgjlfFQ10Z8yy1zA8g=/fit-in/600x400/https://glam-labs.s3.amazonaws.com/media/dd/images/glam-labs-logo.fc8a08c.png 600w, https://thumbor.ixchosted.com/Kg5snPZVV6wmRRA8aBgvrweByuA=/fit-in/900x600/https://glam-labs.s3.amazonaws.com/media/dd/images/glam-labs-logo.fc8a08c.png 900w, https://thumbor.ixchosted.com/opzqWbwQPNDlgzJpbU6iBswa1Hs=/fit-in/1200x800/https://glam-labs.s3.amazonaws.com/media/dd/images/glam-labs-logo.fc8a08c.png 959w" data-src=" https://thumbor.ixchosted.com/MmK1JjbaEmgjlfFQ10Z8yy1zA8g=/fit-in/600x400/https://glam-labs.s3.amazonaws.com/media/dd/images/glam-labs-logo.fc8a08c.png" sizes="(min-width: 650px) 600px, 100vw" alt="" > <span class="lazyload-print-message"></span> </div> </div> <noscript><img src="https://thumbor.ixchosted.com/opzqWbwQPNDlgzJpbU6iBswa1Hs=/fit-in/1200x800/https://glam-labs.s3.amazonaws.com/media/dd/images/glam-labs-logo.fc8a08c.png" alt=""></noscript> </div> </div> <div class="block-promo__info"> <div class="block-promo__info-inner"> <div class="block-promo__text"> <h3 class="block-promo__title">GLAM Jupyter Notebooks</h3> <p class="block-promo__description">A collection of Jupyter Notebooks based on GLAM institutions provided by Biblioteca Virtual Miguel de Cervantes. Additional notebooks are provided by ONB Labs.</p> </div> <div class="block-promo__cta"> <a class="block-promo__cta-item btn btn--primary" href="https://data.cervantesvirtual.com/glam-jupyter-notebooks"> View more </a> </div> </div> </div> </div> <hr> </div> <div class="content-block block-promo"> <div class="block-promo__inner"> <div class="block-promo__image"> <div class="block-promo__image-inner"> <div class="lazyload-container-outer" style="max-width: 600px;"> <div class="lazyload-container" style="padding-top: 50.0%;"> <img class="lazyload" data-srcset=" https://thumbor.ixchosted.com/pkPj-rY3FfNWuuNw1GXD8tU588I=/fit-in/600x400/https://glam-labs.s3.amazonaws.com/media/dd/images/rara-slider.8116a75.png 600w, https://thumbor.ixchosted.com/H3fiNMOdbvzpAZ7uNRv3aR5Xf8g=/fit-in/900x600/https://glam-labs.s3.amazonaws.com/media/dd/images/rara-slider.8116a75.png 600w, https://thumbor.ixchosted.com/l1qij6qsJ0D_mxKM5ugY0bffguc=/fit-in/1200x800/https://glam-labs.s3.amazonaws.com/media/dd/images/rara-slider.8116a75.png 600w" data-src=" https://thumbor.ixchosted.com/pkPj-rY3FfNWuuNw1GXD8tU588I=/fit-in/600x400/https://glam-labs.s3.amazonaws.com/media/dd/images/rara-slider.8116a75.png" sizes="(min-width: 650px) 600px, 100vw" alt="" > <span class="lazyload-print-message"></span> </div> </div> <noscript><img src="https://thumbor.ixchosted.com/l1qij6qsJ0D_mxKM5ugY0bffguc=/fit-in/1200x800/https://glam-labs.s3.amazonaws.com/media/dd/images/rara-slider.8116a75.png" alt=""></noscript> </div> </div> <div class="block-promo__info"> <div class="block-promo__info-inner"> <div class="block-promo__text"> <h3 class="block-promo__title">Access to the National Library of Estonia newspaper and periodical collections</h3> <p class="block-promo__description">This repository presents simple tools and a workflow to access the Digitized Newspaper Collections at the National Library of Estonia.</p> </div> <div class="block-promo__cta"> <a class="block-promo__cta-item btn btn--primary" href="https://data.digar.ee/samples/access_eng.html"> View more </a> </div> </div> </div> </div> <hr> </div> <div class="content-block block-promo"> <div class="block-promo__inner"> <div class="block-promo__image"> <div class="block-promo__image-inner"> <div class="lazyload-container-outer" style="max-width: 1200px;"> <div class="lazyload-container" style="padding-top: 66.66666666666666%;"> <img class="lazyload" data-srcset=" https://thumbor.ixchosted.com/jjtTDlFmNjpAbaxeFjEUUji1a3g=/600x400/https://glam-labs.s3.amazonaws.com/media/dd/images/onb-notebooks.ff346e8.png 600w, https://thumbor.ixchosted.com/49txGtZ2ws46iykWqra5d0-sqrI=/900x600/https://glam-labs.s3.amazonaws.com/media/dd/images/onb-notebooks.ff346e8.png 900w, https://thumbor.ixchosted.com/oNO2UYLeJx4R_c_sZFlXTA0YGoc=/1200x800/https://glam-labs.s3.amazonaws.com/media/dd/images/onb-notebooks.ff346e8.png 1200w" data-src=" https://thumbor.ixchosted.com/jjtTDlFmNjpAbaxeFjEUUji1a3g=/600x400/https://glam-labs.s3.amazonaws.com/media/dd/images/onb-notebooks.ff346e8.png" sizes="(min-width: 650px) 600px, 100vw" alt="" > <span class="lazyload-print-message"></span> </div> </div> <noscript><img src="https://thumbor.ixchosted.com/oNO2UYLeJx4R_c_sZFlXTA0YGoc=/1200x800/https://glam-labs.s3.amazonaws.com/media/dd/images/onb-notebooks.ff346e8.png" alt=""></noscript> </div> </div> <div class="block-promo__info"> <div class="block-promo__info-inner"> <div class="block-promo__text"> <h3 class="block-promo__title">Austrian National Library</h3> <p class="block-promo__description">Jupyter Notebooks using the Austrian National Library鈥檚 Digital Collections and Data.</p> </div> <div class="block-promo__cta"> <a class="block-promo__cta-item btn btn--primary" href="https://labs.onb.ac.at/gitlab/users/a.rabensteiner/projects"> View more </a> </div> </div> </div> </div> <hr> </div> <div class="content-block block-logo-wall "> <h3 class="content-block__title">Additional Collections as Data initiatives</h3> <div class="block-logo-wall__container"> <div class="block-logo-wall__group "> <ul class="block-logo-wall__list sr-unmarked-list"> <li class="block-logo-wall__item"> <div class="block-logo-wall__item-inner"> <h5 class="sr-only">Det Kgl. Bibliotek - The Royal Danish Library</h5> <a class="block-logo-wall__item-link" href="http://www.kb.dk/en/"> <span class="sr-only">Visit the website for Det Kgl. Bibliotek - The Royal Danish Library</span> <div class="lazyload-container-outer" style="width: 186px; max-width: 186px;"> <div class="lazyload-container" style="padding-top: 39.5%;"> <img class="lazyload block-logo-wall__logo" data-src="https://thumbor.ixchosted.com/mj8hDhls6KkUaIKg7kHZYZMKxMw=/400x0/https://glam-labs.s3.amazonaws.com/media/dd/images/DKB-logo-expanded-black-small.0a8f4c7.png" alt="The Royal Danish Library logo" /> <span class="lazyload-print-message"></span> </div> </div> <noscript> <img src="https://thumbor.ixchosted.com/mj8hDhls6KkUaIKg7kHZYZMKxMw=/400x0/https://glam-labs.s3.amazonaws.com/media/dd/images/DKB-logo-expanded-black-small.0a8f4c7.png" alt=""/> </noscript> </a> </div> </li> <li class="block-logo-wall__item"> <div class="block-logo-wall__item-inner"> <h5 class="sr-only">KBR - The Royal Library of Belgium</h5> <a class="block-logo-wall__item-link" href="https://www.kbr.be/en/projects/data-kbr-be/"> <span class="sr-only">Visit the website for KBR - The Royal Library of Belgium</span> <div class="lazyload-container-outer" style="width: 180px; max-width: 180px;"> <div class="lazyload-container" style="padding-top: 19.0%;"> <img class="lazyload block-logo-wall__logo" data-src="https://thumbor.ixchosted.com/OrpKGLoCHOEf16dAsQUMGUoSeZU=/400x0/https://glam-labs.s3.amazonaws.com/media/dd/images/KBR-Logo-Black_EN.891daf8.png" alt="KBR - The Royal Library of Belgium logo" /> <span class="lazyload-print-message"></span> </div> </div> <noscript> <img src="https://thumbor.ixchosted.com/OrpKGLoCHOEf16dAsQUMGUoSeZU=/400x0/https://glam-labs.s3.amazonaws.com/media/dd/images/KBR-Logo-Black_EN.891daf8.png" alt=""/> </noscript> </a> </div> </li> </ul> </div> </div> <div class="block-logo-wall__footer"> <p></p> </div> <hr> </div> <div class="content-block block-form js-skip-content" data-contentType="Form"> <div class="block-form__inner"> <h3 class="block-form__title">Please, send us your Jupyter Notebook projects</h3> <form class="block-form__form" action="." method="post" novalidate> <input type="hidden" name="csrfmiddlewaretoken" value="vaL921S2RQyAVL88ZGZQuHPSWSlaAfLGZyWsALvNHJPNMrpx1V2qwRu0vI1KtK63"> <input type="hidden" name="form_id" value="4" id="id_form_id"><input type="hidden" name="form_reference" value="833bf6dd-c424-4911-969b-8123a6884add" id="id_form_reference"> <div class="block-form__field-row"> <label for="id_email">Email</label> <input type="email" name="email" required id="id_email"> </div> <div class="block-form__field-row"> <label for="id_url-of-the-project">URL of the project</label> <input type="url" name="url-of-the-project" required id="id_url-of-the-project"> <p class="block-form__help-text">Link including the code repository such as GitHub</p> </div> <div class="block-form__field-row"> <label for="id_link-to-banner-or-logo">Link to banner or logo</label> <input type="url" name="link-to-banner-or-logo" id="id_link-to-banner-or-logo"> <p class="block-form__help-text">An image that can be used on the GLAMLabs' website with the project description</p> </div> <div class="block-form__field-row"> <label for="id_description-of-the-project">Description of the project</label> <input type="text" name="description-of-the-project" required id="id_description-of-the-project"> <p class="block-form__help-text">A brief description of the project</p> </div> <div class="block-form__submit"> <br> <input type="submit" value="Submit"> </div> </form> </div> <hr> </div> </div> </section> </div> </article> </div> </main> <nav class="accessibility-nav" aria-label="Skip links"> <span class="sr-only">You have reached the end of the main content.</span><br> <a class="sr-skip-link" href="#page-main">Go back to start of main content</a><br> <a class="sr-skip-link" href="#top">Go to top of page</a> </nav> <hr> <footer id="site-footer" class="site-footer" role="contentinfo" itemscope itemtype="http://schema.org/WPFooter"> <div class="site-footer__main"> <div class="site-footer__main-inner"> <div class="footer-block"> <div class="h-card vcard" itemscope itemtype="http://schema.org/Organization"> <img class="u-photo photo" itemprop="image" src="https://glam-labs.s3.amazonaws.com/media/dd/images/glam-labs-community-logotype-print.af97f1a.jpg" alt="International GLAM Labs Community logotype" hidden/> <h5 itemprop="name"> <span class="p-org org">International GLAM Labs Community</span> </h5> </div> <div> </div> </div> <div class="footer-block"> <p>This site is openly licensed <a href="https://creativecommons.org/publicdomain/zero/1.0/">CC0</a></p> </div> <div class="footer-block"> <h5>Follow us</h5> <ul class="social-links sr-unmarked-list"> <li class="social-links__item social-links__item--twitter"> <a class="social-links__link" href="https://twitter.com/@GLAM_labs" rel="nofollow"> <span class="share-links__label">Twitter</span> </a> </li> </ul> </div> </div> </div> <div class="site-footer__secondary"> <div class="site-footer__secondary-inner"> <!--[if !IE]><!--> <div class="footer__basic-view no-js-hide" aria-hidden="true"> <hr> <button class="basic-view-btn js-basic-view-btn"> Basic Website View<span class="basic-view-btn__switch"></span> </button> </div> <!--<![endif]--> </div> </div> </footer> <hr> <div class="js-fixed-scroll-top" aria-hidden="true"> <a class="js-scroll-btn" href="#top"> <span>Back to top</span> </a> </div> <span class="sr-only">You have reached the end of the page. Thank you for reading.</span> </div> </div> <!-- Search Modal Window --> <!-- ///// JAVASCRIPT ///// --> <script type="text/javascript" src="/static/CACHE/js/3e8d1ed586cd.js"></script> <script src="/static/dist/leaflet_maps-98b78868839ffae2f358.js"></script> <!-- Headroom - hide/reveal header on scroll --> <script> // grab an element var myElement = document.querySelector(".site-header"); // construct an instance of Headroom, passing the element var headroom = new Headroom(myElement); // initialise headroom.init(); </script> <!-- Crucial Javascript components have loaded --> <!-- Add a slight delay to avoid flash of unstyled content --> <script> $(document).ready(function () { setTimeout(function () { $('html').addClass('js-active page-loaded'); $('html').removeClass('no-js'); }, 500); }); </script> <!-- FancyBox --> <script> $().fancybox({ selector: '[data-fancybox^="gallery"]' }); </script> </body> </html>