This tool now takes acccount of retired ids that should not be re-used.
I now have a file (/db/redirects/redirects.xml
) which contains a set of <ptr>
elements like this:
<ptr corresp="mol:THEG1" target="mol:GLOB1"/> <ptr corresp="mol:THER1" target="mol:ROSE6"/> <ptr corresp="mol:THES1" target="mol:STAN17"/> <ptr corresp="mol:THES2" target="mol:STEE2"/> <ptr corresp="mol:THES3" target="mol:STRA9"/> <ptr corresp="mol:THEV1" target="mol:VINT1"/> <ptr corresp="mol:THEW1" target="mol:WILL10"/>
@corresp is old, @target is new. The 301 redirect is implemented in the doc.xql file; when no target file is found at a particular id, it checks to see if there's a match in the redirect list, and if there is, it sends the redirect. This enables us to deprecate or retire an obsolete id, and nextFreeId.xql takes account of this when suggesting ids, so no old id should be re-used.
There are seven ids which need to be changed because they begin with "THE" (from "The" in the name). This is my tentative plan for handling this with as little disruption as possible.
Old ids and new ids are:
The Globe THEG1 GLOB1 The Rose THER1 ROSE6 The Standard (Cheapside) THES1 STAN17 The Steelyard THES2 STEE2 The Strand THES3 STRA9 The Vintry THEV1 VINT4 The Will and Testament of Isabella Whitney THEW1 WILL10
First, we enact the changes:
- Call a temporary repo freeze to stop anyone else from working.
- Change the original document ids, and svn rename the documents.
- Use regex search-and-replace to update links to each individual document (there are about 160 changes to be made).
- svn commit.
- Lift the repo freeze.
- Regenerate the gazetteer.
- Update the data collection with upyerdb.
- Upload the regenerated gazetteer documents.
- Manually delete the old files from the website.
- Test searches and links as carefully as possible.
Now we're in a position where it's as if the old ids never existed. Now we deal with the issue of old links to the original documents. This is my favoured approach:
- Create a document in a special collection which consists of old and new id pairs.
- In doc.xql, we already deal with the situation where an id does not exist; in this block of code, check for the missing id in the obsolete-ids document. If it's there, then
- Serve a header with a 301 redirect.
Working with GN to figure out how to implement an OL3 view based on not having a projection (it's not really a map). It looks as though we'll have to implement a Zoomify source on the server, as opposed to XYZ.
I was not expecting <note>
elements as direct children of <cit>
. Now I am.
Started drafting my bit of our planned paper, and got quite a way into it; discussions with GN about how we might identify and render components, and of the theoretical background to the encoding strategy. We've created some images for the paper, but will need some more. The problem will be controlling the length.
Devised and described an encoding strategy for SM's excellent regnal dates table. The notes are in data/working_files, alongside the spreadsheet.
Suppressed links and linebreaks in rendering of page TOCs. Easier than I feared it might be; hurrah for modularization.
More optimizations speed up the code for retrieving listings of elements and attributes quite a lot, and I've also added some try/catch structures for unpredictable input and to work around a bug in eXist 2.1.
Did some optimization on the element and attribute listing functions, and halved the execution time, but I'm still not happy; it's about fifteen seconds. Posted to the eXist list to see if anyone has any suggestions.
Also fixed some CSS issues and streamlined the CSS by getting rid of user-agent-specific property names.