Week Beginning 27th May 2013

Monday was a holiday this week, so I plunged back into the redevelopment of the Historical Thesaurus website on Tuesday, after being ill and then working on other things last week.  The big thing I tackled this week was the implementation of the Advanced Search.  This is now fully operational, although it is a bit slow when category information is added to the search criteria – I’ll need to look into this further.  But it does now work – you can search for words, parts of speech, labels, categories and dates (and any combination of these).  I have updated the layout of the search page, adding Jquery UI tabs to split up quick, advanced and ‘jump to category’ searches and adding in help text as hover-overs.  I may have to look at alternatives to this, though, as hover-overs don’t work on touchscreens.  I also tweaked the ‘jump to category’ page to make the ‘t’ boxes automatically focus the next field when two characters are entered in a box, which vastly speeds up the entering of information.  I’ve also made the search form ‘remember’ what a user has searched for, enabling search term refinement, and I made sure that the correct tab loads when following links from the ‘category selection’ page so for example if you’ve done an advanced search you don’t end up looking at the quick search.

I spent quite a bit of time this week working on improvements to the user interface of the website, which has been enjoyable.  I’ve updated the homepage now so there are three blocks of content – introductory text, the quick search and a random category.  The random category feature pulls back a category form the database that has at least one word in it each time the page loads, displaying up to 10 words from the category each time.  It’s quite a nice feature, and a good way to jump straight into the category browse pages.  Also this week I created a new script that generates the full HT category hierarchy from a given point in the system.  Simply pass a category ID to the function and get an array of all parent categories.  This is a very useful piece of code, and I’ve added it to both the random category feature and the category page, allowing users to jump straight to any point higher up in the HT hierarchy.

I also implemented some major updates to the category pages.  I completely overhauled the way subcategories are displayed.  Previously they were just displayed in a long line with no indication as to which subcategories were direct children of the main category and which were actually subcategories of other subcategories.  This has now been rectified using indentation and changes in shade.  Top level subcategories have no indent and a white background, level two subcategories are indented and have a slightly darker background, level three more so etc.  I think it works pretty well.  It can take up a lot of space for categories that have many subcategories though, and for this reason I’ve used a bit of jQuery to hide the list until a button is clicked on.  I’ve also updated the links back to the main category from a subcategory so that the user is taken back to the open list of subcategories if following this navigation path, rather than being taken back to the top of the main category page and then having to scroll down to the list of subcategories and open it again.

I further updated the category page to improve the layout of the hierarchy traversal options and the options to view different parts of speech at the level currently being viewed.  I think these navigation options work pretty well, but will await feedback from others.

I still need to do some further work with subcategories.  Although the subcategory list is now hierarchical, subcategory pages are still actually all at one level.  No matter how ‘deep’ the subcategory the only link back is to the main category, rather than to a parent subcategory.  I will need to tackle this next week.

I met with Marc and Christian on Thursday and we spent a very useful couple of hours going through the site and tackling some of the questions that had accumulated since the last meeting.  One outcome of the meeting is that I will need to update the way dates are searched for in the advanced search.  Currently dates such as 1400/50 are recorded with 1400 in one column and 50 in another.  I will need to update the database so that (for last cited dates) the later date is used.  I will also need to update the search boxes to incorporate OE and Current options in both the first and the last cited date lines.  There is also still a massive amount to do with the refresh of data from Access.  That is going to be a rather large and somewhat daunting task.

Other than HT stuff this week I met with Stevie Barratt for a catch-up regarding the Corpus server.  He had posted a question about redeveloping the user interface on the cqpweb mailing list and Andrew Hardie replied stating that separating out the user interface from the rest of the code to allow different layouts to be plugged in is not something that they are planning to tackle.  They are hoping to develop an API, which would be hugely useful, but there is no timetable for this at the moment.  It looks like Stevie is going to have to try and delve into the code and make changes directly to it, and he’s going to keep me posted on his progress, as eventually SCS will be wanting to use the same infrastructure.  I also attended the HATII developers meeting on Thursday, which has now grown to encompass developers across the College of Arts, which is great.  It is really useful to keep up to speed with projects and technical staff and know what people are working on.