The University of Queensland Homepage
Matthew Smith Library Systems Programmer

Leaving UQ Library

This is my last day at UQ Library as I’m moving on to find fortune and glory at a new workplace and of course I won’t be posting anything new on this blog after today.

It’s been a fun ride here at UQ. I’ve found the environment to be quite relaxed yet focussed on doing a good job and there is a good level of camaraderie amongst the troops. I suppose that most people here don’t find it difficult to find a sense of belief in what the library does and most people working here are here because they want to be.

Contrast this with some of my past jobs where there is a much higher contingent of people who are motivated by money and status.

I will miss working on campus here, there is a certain buzz or energy that comes from the students, a variety of food options, some fun architecture and the peace and tranquility of the lakes (only interrupted by attacking geese, the ferrari lawn mower and students who couldn’t get a room).

I will also miss the diversity of staff here. IT and engineering is a male dominated industry and tends to attract harder, more rational personalities. There is probably less mixing between different levels of managment in private industry too.

I’m not sure how much work I’ll be doing in the library field in the future but I have a half plan to be working on some projects in my own time. If you’re interested, you can follow some of my progress at my IT and engineering blog: Smithology . Otherwise, some might be interested in my more frequently updated blog of finding lifes meaning amongst the confusion of postmodern predystopian “raised on television” society at Bogosity

A podcast of possible interest

TPN :: On The Pod » Blog Archive » On The Pod #10: Kathryn Greenhill

Perth based Library 2.0 advocate Karthryn Greenhill joins me On The Pod this week to talk about the changing role of libraries as the information revolution sweeps the world.

The Librarians

I’m sure everyone’s heard of this The Librarians thing on the ABC. I hope it lives up to the hype. Here’s a review and feel free to comment with your own reviews.

The Librarians also dabbles with a few social hot potatoes, but with slightly less malice than from Ja’mie or Mr G. Unlike Chris Lilley’s dark mockumentary these are clearly actors doing schtick

Collections considered …

Peter Sefton of the AANRO project (and USQ) has raised the question of whether Fez can support dynamic collections and do away with the fixed community / collection model completely.

The AANRO project at USQ is evaluating repositories for use with a project for Land and Water Australia.

In Fez, the communities and collection model is hardwired for the use of the authorisation framework. The model is used so that an authorisation profile can be applied to a large group of objects. This is needed in Fez because our UQ eSpace repository contains some objects which can’t be published for copyright reasons so are only available to certain groups at UQ.

One of the problems with the current authorisation system is that rules can be applied on collections or communities or both and it can be confusing as to which rules are being applied. Furthermore, objects can belong to more than one collection. It would be good to see a central place where all of the authorisation settings can be seen.

If Fez were to go down the dynamic collections road, then the dynamic collections would occur on common specific metata items that define the collection. This is already implemented with the browse by author and browse by date links. Dynamic collections would extend these options to include configuring any metadata to be used as the criteria for browsing.

However, without the communities and collections heirarchy, Fez would need a new way to apply the authorisation rules to groups of objects.

My proposal is to achieve this by implementing a central authorisation rules table which would map FezACML rulesets to a set of search criteria. The search criteria defines the set of objects which will have the FezACML rules applied to them.

Using the concept of a rules table would allow Fez to break out of the communities / collections mindset and centralise the authorisation rules making them easier to mange.

Liaison Profile and Requirements Specs

Besides working on Fez, I’ve been putting together a kind of hybrid ticketing / CRM system that is taylored to Liaison Librarians. The project is called Liaison Profile because “Liaison Database” sounded too boring and my suggestiong of “Liaison Tracker” was thought to have Big Brother connotations.

There are no plans to release Liaison Profile as an open source project but it’s not out of the question if there is interest in it.

The project has been running for a long time which is probably due to me trying to be ‘agile’ and using the prototype software as the spec. What this meant is that everytime I’ve showed it to the focus group, they have thought of lots of things they’d like it to do differently and we’ve never settled on when the project will be officially ‘finished’. So I’ve had to resort to the old-fashioned and boring technique of writing a requirements specification and seeking agreement on that.

My approach to requirement specs is to try and be workflow oriented so that I’m describing what the users will be trying to do rather than what the software does. In my opinion, this makes the spec easier to read and understand and possibly allows you to identify what the important things are.

Delete and Undelete in Fez

I’ve just commited changes to Fez that support the fedora ‘D’ object state which is the way to delete items in fedora without purging them. In previous version of Fez, deleting objects meant they were purged from fedora. In the next version, deleting an object will just set the object state to ‘D’ in fedora and remove the object from the Fez index so that it doesn’t show up in searches etc.

I’ve also written an interface for finding and undeleting fedora objects that have the ‘D’ state set. This process is similar to the rewritten ‘Discover new fedora objects’ management function.

To get this undelete functionality, do an svn update or checkout, hit the /upgrade url and import the /upgrade/workflows_delete.xml workflow. (NOTE: svn trunk is by no means a stable or well tested branch but until we do a release, it’s the way to go if you need bleeding edge features)

I’m not going to be working on Fez for a couple of weeks as I need to play catchup on a few other software projects but I’ll still be on the mailing lists and putting in a few bugfixes in my spare time… (and I’d like to write a LOT more PHPUnit tests. If anyone out there feels like they want to learn Fez a lot more, I recomend writing unit tests and sending your work in)

Also drop me a line here if you are going to the OSDC http://www.osdc.com.au/

Changes to sublooping elements

There have been some big changes commited to the Fez trunk recently: some may have seen Rev 923, labelled ‘MAJOR COMMIT! FEZ 2!’ by a uqckorte. That was a change to how Fez indexes the records stored in fedora. The Fez index is used throughout Fez whenever it produces a listing of records or searches for information in fedora. Rewriting it touched almost every file in Fez which has prompted us to consider incrementing the major version number on the next release. The new index has made Fez a lot faster and paved the way for adding better search tools later but I’ve already blogged about that.

My changes today were much less exciting but have come with a bit of documentation which might help others who have tried to figure out these things in the Fez XML mappings called sublooping elements.

We came across a problem recently where we realised that we couldn’t put a sublooping element on mods:identifier. The problem was that sublooping elements assume that the actual element that is the base of the loop can’t have a value stored in the XML.

In order to fix this, I decided to document the sublooping elements to some extent in order to get clear in my head how they work. The results of that effort can be read here on the FezWiki.

Once I felt I’d fully gotten my head around these sublooping elements, I dived into the code and tried to get the mods:identifier values mapped. My first attempt was heading down a pretty radical departure from the current code so I decided to rewind and keep the changes within the current framework. The result is Rev 1032. In order to show how the changes work, I’ve also recorded a quick screencast of the mappings I made for mods:identifier.

I hope that anyone mapping their own document types in Fez will find these resources of help.

Darkness of the Stack

It’s been awhile since I posted here so here’s a library art piece to keep you all going.

the art life: Darkness of the Stack

They come in with requests. They want to use the photocopier for free. Some of them want blank paper to write down their filthy secrets. Most of ‘em just sleep in the reading room. Yes, it’s your local library and that long haired guy behind the counter, the bloke with the smile on his face ready to help you sort out the mysteries of quarto non-fiction

Fez 1.4 ??

It’s about time Fez had a new release but as you probably know from following the mailing lists, we are just really busy supporting the RQF project which is to enable UQ to meet DEST requirements for all Australian Universities.

There is no release date for Fez 1.4 and when we do release it, the changes will all be purely driven by the RQF work. A more community driven release will probably then be on the cards. The most common requests popping up on the mailing lists are for Multilingual support and fulltext searching.

It is also apparant that the interface for mapping XSDs to input forms is far from intuitive. Unfortunately, the problem of allowing an arbitrary mapping from a complex nested tree structure to a flat input form and then back again is just plain difficult so I don’t think it will ever be solved using simple wizard like click throughs. The future probably involves a scripting language or an API for writing the mappings as code fragments which are run in a sanitised environment.

What will Fez 1.4 look like?

We are debating whether to release the Fez as 1.4 or as 2.0 because Christiaan has rewritten a huge chunk of code that does the indexing for the repository. Instead of storing our metadata index in one big table of PID / mapping Id / value, he has broken it out into a table for each search key in Fez (a search key groups semantically similar mapping ids together which allows us to search title fields or authors across multiple document types even though they may map to slightly different places in the metadata). The new design results in faster Fez searching and browsing. It is simpler to code with so the queries we write are less buggy. It will also pave the way for postgres support in Fez and the adition of bolt on search engines such as lucene.

As I may have mentioned, I have been working on an interface which allows duplicate objects in Fez to be located, merged and ‘retired’ using an interactive report object. This tool is essential as we are populating UQ eSpace with data from multiple sources which may have overlap.

The third member of our team, Lachlan, has been busy scripting up bulk ingest processes for a number of data sources to go into UQ eSpace. While these scripts will be of little use to the Fez community (or will they?), a benefit is that Fez is being used at UQ with a much larger set of records and by a larger number of users which has allowed us to find and fix a greater number of bugs. The process for indexing new fedora objects into Fez has been improved: it is speedier, less buggy and easier to use. We also have experience of the many pitfalls of transfering data between systems and can give lots of advice to organisations that have large collections

In a perfect world, I would expect to see a Fez release in late October at the earliest. Now I hear some people expressing shock and disgust but the thing is whenever I make a prediction about a timeline, my first estimate is usually pretty right, then I get pressured to change it to be more in line with what people are wishing for, then we try to do it, the timelines blow out and we end up delivering on my original estimate. So there. (reminder: the latest (ranging fro m slightly to completely untested) Fez code is always available in the Fez subversion repository )

March of the Engineers

In the same vein as “March of the Librarians”, here is “March of the Engineers” filmed at UQ. The the Dorothy Hill Engineering Library Entrance is featured in this video too.

For fans of “Ask a Ninja”, there are also “Ask a Mining Engineer” vids on YouTube filmed at UQ.