The Blake Archive will soon be launching its new site, housed on UNC servers. Here is a preview of the site’s Technical Summary:

System Architecture and Basic Front-End Navigation

The new Blake Archive site does not use some of the technologies that the old site did, such as Java and ImageSizer, and the entire architecture of the old site’s web application has been replaced. The new application is divided into four parts: the site proper, meaning our archive of Blake’s works; a collection of back issues from Blake: An Illustrated Quarterly; our blog; and The Complete Poetry and Prose of William Blake edited by David Erdman.

The site proper is made up of three components: images, data, and application code. Images are processed as they have been since 2007 (see above). The data come in two forms, CSV files and XML files. Our CSV files encode such data as: relationships between objects; types of those relationships; work information; virtual groupings of works; homepage images and links; and more. We have two types of XML documents. The first we call a work info file. It lists ‘All Known Related Works’ for a particular work, which include works or objects not currently in the Archive. The second type of XML document we use is what we call a Blake Archive Document, or BAD, which contains the entire critical apparatus for a particular copy of a work and all of its objects.

These data meet the application code at Python scripts, which convert some of them into JSON for further processing, import them into a PostgreSQL database, and index them in a Solr instance. The database has three tables: BlakeWork, BlakeCopy, and BlakeObject. They overlap somewhat. For example, a BlakeWork and a BlakeCopy both contain the composition date of the associated work. They are constructed this way to allow for the most efficient access from the modular architecture of the AngularJS that governs the site.

This part of the application code begins in main.html, which imports all the necessary Javascript libraries and CSS stylesheets. It also establishes a number of stable parts of the site: the persistent banner, from which a user may return to the homepage, select a work, change viewing modes, or search the Archive; a persistent footer, from which a user may get to the site’s static pages; and a viewport, through which our AngularJS application is routed. The AngularJS application is divided into a few minor controllers and five main ones. The main ones are: a Home controller, a Work, Copy, Static Page, and Search controller. At a high level, they are practically self-explanatory. The Home controller operates the homepage, which gives access to a random set of objects in the Archive. The Work controller operates the work info page for each of Blake’s works. The Copy controller operates the object view page for each copy, the compare view for objects being compared, and the reading view. The Static Page controller operates the static pages accessible via the persistent footer. And the Search controller operates the search feature in the banner and the search results page.

In our Solr schema, the data is broken down in a way similar to the way it is in the database. Our Solr index has three types of documents: a blake_work, a blake_copy, and a blake_object document. This structure allows searching within a work within a copy within an object. See the search results page for a visualization. A user may select a resulting object from a particular copy of a single work, and may filter a search by date, type, or medium.

On the site proper, a user may switch between two modes, Gallery Mode and Reading Mode, each providing a different viewing experience. In the default Gallery Mode, copies of works are displayed in a gallery format on the object view page. In the object view, a suite of tools is provided for each image: Rotate, Zoom, True Size, Enlargement, Transcription, Generate Citation, and if applicable, Supplemental Views. They are self-explanatory. Part of the critical apparatus for the copy is provided in the info box accessible via the ‘i’ button on the gallery window. Here, a user may see the textual transcription, illustration description, and editors’ notes for the object being viewed. The rest of the critical apparatus is provided at the bottom half of the object view page under some subset of the following tabs, depending on which ones are applicable to the object being viewed: Objects in Copy/Group, Objects from the Same Matrix, Objects from the Same Production Sequence, Objects with a Similar Design, Textually Referenced Objects, Copy/Work/Letter Information, and Electronic Edition Information.

Under tabs having to do with relationships, a user may select objects for comparison in the compare view, which is essentially the same as the object view except that in the compare view the gallery contains a side-by-side comparison of the selected related objects. In the compare view, the information under the critical apparatus tabs is always tied to the highlighted object in the gallery window.

In Reading Mode, copies of works are displayed in a reading view, that is, a horizontally scrollable window containing the objects of the copy in sequence with their accompanying transcriptions and without any supporting critical apparatus.

The banner of the site changes, depending on where a user is stationed and what mode the user is in. If the user is viewing a static page, the banner will display the title of the page in a little black strip. In Reading Mode, the black strip will show the title of the work being viewed and the copy designation if applicable. In Gallery Mode, the black strip will do the same if in the object view, or will indicate ‘Selected’ if in the compare view. The work title in both modes is always linked to an overlay window containing an index of all the copies of that work. This overlay is equivalent to the work info page for the work, but being accessible beyond the work info page, the overlay allows the user to more efficiently navigate between copies.

The front end of the site is styled with CSS. Some of the site’s marked-up text, such as the transcriptions, is rendered with XSLT. And the code for the entire site is written on top of Bootstrap, the Javascript framework for responsive design, so the Archive may be enjoyed in miniature on mobile devices.

The other parts of the Archive–to repeat–are: a collection of back issues from Blake: An Illustrated Quarterly, our blog, and The Complete Poetry and Prose of William Blake edited by David Erdman. The journal archive is written in PHP and indexed in its own Solr core. The blog is done in WordPress, and the digital Erdman edition, architected similarly to the site proper, is encoded in XML, which is indexed in its own Solr core and transformed with XSLT. And the application for the edition is written in AngularJS and styled with CSS.

We also make available an API for those users who wish to mine our data.

In the near future, the Archive will add two substantive parts to the web application: an exhibition space, where peer-reviewed exhibitions will be published; and a Lightbox application, where users may manipulate or curate Archive images for more refined study.