WPopac: An OPAC 2.0 Testbed

First things first, this thing probably needs a better name, but I’m not up to the task. Got ideas? Post in the comments. For the rest of this, let’s just pretend it’s an interview.

What is WPopac? It’s an OPAC — a library catalog, for my readers outside libraries — inside the framework of WordPress, the hugely popular blog management application.

Why misuse WordPress that way? WordPress has a a few things we care about built-in: permalinks, comments, and trackbacks (and a good comment spam filter), just to start. But it also offers something we’ve never seen in a library application before: access to a community of knowledge, programmers, and designers outside libraries. Because the core of WPopac is WordPress, and because it preserves WordPress’s rich plugin API and themes structure, it already has more users, designers, developers, and administrators than all the ILS vendors combined.

So, down with the ILS? Well, no. There are some brave souls working on full-fledged open-source ILSs, but that’s not my goal here. The ILS does a lot of stuff I don’t want to be responsible for, like the acquisitions workflow and financial, inventory, and circulation management. When you peak inside your ILS, you realize there’s a lot there you don’t want to have fix.

So, we have to have both an ILS and WPopac? Well, you don’t have to have anything, but if you want it, at least WPopac is free, extensible, and open-source. Less flippant answer: yes, it does assume there’s an ILS in the background somewhere, but more than a few people see potential for projects like this to serve underfunded libraries that may lack automation. That could be interesting.

But blog posts are unstructured and library data is full of structure. What gives? The standard WordPress content database is buttressed with extra tables to represent all the bibliographic information in its atomic detail. But even the ‘unstructured’ data takes some clues from the microformats camp, putting everything in XML parsable XHTML.

How’s that work again? Well, let me be careful here. I’m not proposing WPopac as a solution, rather as a framework for building a solution. That said, you can get a pretty good idea of how the first draft of this concept works by looking at a real record (be sure to view the source, as there are some hidden divs in there). But if you don’t like that, you can change the look by fiddling with the stylesheet or switching themes, and you can change the content with the WordPress API or by changing the way it’s loaded in the first place.

Further, because all the bibliographic data is there in its atomic detail, plugins can use and display that data anywhere on the page. Try a search to see how I’m using that data in the right column to improve findability, as in my clustered search results prototype from last fall.

So, does that mean I can do XYZ that I’ve wanted to do? Maybe. Anybody who knows how to write a WordPress plugin can take a stab at playing with all that data. The “refine search” content in the right column, and the “alternate searches” content at the bottom is generated that way. Try this one: I’ve finally got the Wikipedia results I’ve always wanted in the catalog, just look in the right column. Or take a look at the “add to del.icio.us” link in the record display, that’s generated by a regular wordpress plugin written by Arne Brachhold, who wasn’t thinking of libraries or OPACs when he wrote it. And down at the bottom of the page you’ll see the a list of related works that’s built by my own bsuite plugin. Want COinS-PMH/unAPI? The interface and all the data are there to make it happen, and here’s a good plugin to start from.

So no guarantees, but hey, give it a try. And if you run into trouble you’ll be among hundreds of thousands of WordPress users and supported by a huge community of plugin and theme authors.

What about RSS, XML, OpenSearch? WordPress solves the RSS feed for us (look at this URL to see). A feature-complete XML API, is a bit further off, but maybe somebody wants to pitch in to help solve that one? And full OpenSearch support, taking advantage of the suggested and alternate search features, is my next big project (here’s where I’m going with that).

This is awesome, can I run it at my library? Well, Jenny called dibs… But, really, this project started with my attempts to find a way to make my work sharable, so, yes. Call me a dreamer, but I find the notion of a community of libraries sharing plugins and code changes really exciting. But right now, there are three major components — the data importer, the plugin, and some modifications to the WordPress baseline code — and all of them need a little more work to make them distributable. Stay tuned.

This sucks, it doesn’t do X, and your plan for Y is all wrong. You’re probably right. This is my first stab at a really big problem, and there’s a lot that isn’t done and certainly a few things I didn’t think of. The plan here is to build a framework that let’s us ask questions, build possible solutions, and share them easily. The only thing I’m certain of is our need to find ways to make our systems easier to use, easier to extend, and integrated into the larger stream of progress that’s shaping the internet that over 200 million Americans are making an essential part of their lives. Take this as an invitation to get involved, there’s lots to do.