Week Beginning 31st March 2025

My main task for this week was to complete my work on the new API for the Historical Thesaurus.  As I mentioned last week, I’ve been working on a new version of the HT website that fully separates out all data queries into a single API, which the front-end then connects to in order to pull in the necessary data.  The current version of the website was developed over many years and data queries were found all over the place – embedded in the front-end scripts and located in AJAX calls, with an additional, initial stab at an API used for the lexical sparklines.  Over time it all became something of a tangled mess.

The new API brings all data queries together in one place, offering options to access the data as either JSON or CSV files.  This is a much neater solution that is easier to maintain.  It also makes updating (or in future entirely replacing) the front-end much simpler as it no longer includes database calls and only needs to include minimal data processing.

The API endpoints I’ve created cover every data query that is required to power the front-end, and they feature descriptions, a list of the arguments that can be passed to them and examples.  As mentioned previously, the data can be accessed as JSON (used by the front-end) or CSV.  It’s possible that the structure of the CSV files could be improved – it’s difficult to represent multi-dimensional data in a two-dimensional spreadsheet – so depending on feedback from Marc and Fraser I might need to do some further work on this aspect.

In addition to developing the API I also created a new version of the front-end that connects to it.  In terms of visuals and functionality this is identical to the live site, but every script has been updated to funnel all data queries to the new API.  I’ve tested it out pretty extensively and all seems to be working perfectly, so that’s my redevelopment of the back end of the Historical Thesaurus website completed.  I just need Marc and Fraser to test out my test site, and once I have their approval I’ll replace the live site with the new version.

Also on my long-term ‘to-do’ list is redeveloping the front-end to migrate the interface to Bootstrap, as I did for the Bilingual Thesaurus (https://thesaurus.ac.uk/bth).  This will be a pretty major undertaking, as many of the features of the current site (e.g. the timeline popup) use the jQuery UI framework and this would all need to be replaced with Bootstrap equivalents.  My plan at this stage will be to replicate the current HT interface in Bootstrap, but we might want to consider a larger overhaul of the interface.  Either way it will likely be a while before I am able to devote any time to this.

This week I also published the new ‘cognate reference’ search facility that I’d created for the Anglo-Norman Dictionary, which you can find in the corresponding tab found on the search page: https://anglo-norman.net/search/.  This allows you to search for forms found in the cognate dictionaries, so for example finding all AND entries that reference OED words ending in ‘ment’: https://anglo-norman.net/search/cogref/*ment/OED.  All seems to be working perfectly and hopefully this will be a useful addition to the website.

Also this week I made some minor but hopefully very helpful tweaks to the interface for the DSL website on our test server, ahead of the launch of the new data which is scheduled to take place the week after next.  I updated the page width on narrow screens so that the pages are now wider throughout the site, meaning there is less wasted space down either side of the page.  I also updated the site buttons to make them inline-block rather than inline, with a 5px margin at the bottom.  This means buttons don’t get split over multiple lines and don’t overlap when there are multiple lines of buttons on narrow screens.  I also took the opportunity to update the ‘fixed’ header that appears as you scroll down the entry page.  This now takes up with whole width of the browser (at all screen dimensions), which gives more space and looks better.  These updates are currently only available on our test version of the site, but will go live along with the major update when it happens in a couple of weeks.

I also had a chat with the Books and Borrowing people about new data that is to be added to the resource.  It’s not going to be as simple as just allowing researchers to add new data to the CMS, as Katie and Matt want to add a versioning system to the data in order to ensure that it’s possible to search and reference only the data that was published during the course of the project, as well as searching and referencing all data including subsequent updates.  This is going to need some careful consideration as it will likely require changes to the database, the CMS, the API, the Solr indexes and the front-end, and of involvement with the project officially ended several months ago.

Finally this week I made some further updates to the new ‘lookup’ feature I’ve developed for the VARICS project.  I updated the lookup page to replace the short definitions with new ones that had bene sent to me, and to remove the measures that the team no longer require.  I also added a yellow ‘Find out more’ button to the short description that appears above the form when you press on a measure.  Pressing on this takes you to the relevant longer definition.  This currently opens in a new tab so the user doesn’t lose the form.  I then added the longer definitions to a WordPress page I created, with each definition appearing in a box that has a hidden ID, ensuring that when the ‘find out more’ button is pressed the relevant section of the page loads.  I also created a WordPress page for the ‘How to’ information that I’d been sent, which features text and infographics for each ‘how to’, again with each one in a separate box.  I made the images appear as links that when pressed on load the full-size versions, as some of the text can be somewhat indistinct in the in-page version.

I’ll be on holiday for most of next week, but will still be working for some of the week and there will be an update as normal after that.