Pick up where I left off…

If you’re up to the task, my old job was just posted on the AADL website.  Good luck to whomever it goes to!

Chatting with Jon Udell and Ed Vielmetti

I had a great chat with Jon Udell and Ed Vielmetti last week during a recorded podcast that Jon has made available on his new blog. Jon is a great podcaster–he has the ability to make a session feel like a conversation and less like an interview which makes for a very interesting and enjoyable experience as one of the participants.

Anyway, we talked about superlibrarians and superpatrons within the context of Eric Von Hippel’s notion of “lead users.” This is an area that should be of great interest to libraries–specifically, how do we identify those lead users, then enable them to mash-up, remix, and create services, tools, and content. We can learn a great deal more from our users than we are currently used to and Von Hippel shows us how in a series of online videos and papers.

I mostly talked about PatREST–its history, what it is, where it might lead, and my decision to build a patron-oriented API on top of our existing ILS. Ed shared some interesting insights into his perspective as a consumer of PatREST and other non-standard distribution channels made available on AADL’s system.

Dynamic item recommendations

So today, at AADL, we quietly rolled out dynamic item recommendations. That means that when you're looking at a catalog record, you'll be given Amazon-like recommendations ("Users who checked out this item also checked out these library items..").

This little feature uses data from our opt-in patron history system. Since we've been offering that system for about a year now, we've been able to accumulate over 300,000 data points. This is another great example of how to reuse your existing data to enrich use experience. Like I've said before, you need to use the data you have to its full potential--even if it's not the data's primary purpose.

Ok, so let's look at the nuts and bolts of this. I was able to cobble this together with two SQL queries. Actually, I was able to get the same results with a single nested query, but for some reason, non-cached results took upward of ten seconds, so splitting the query seemed like the right thing to do.

Anyway..

PHP:
  1. $bibinfo = $xmlopac->get_opac_data($bnum);
  2. $mattype = $bibinfo[mattype];
  3.  
  4. $rec_uids = db_query("SELECT DISTINCT(uid) AS uid FROM iii_hist_data WHERE bnum = '$bnum'");
  5. $subcrit = '';
  6. while ($rec_uid = db_fetch_array($rec_uids)) {
  7. if ($rec_uid[uid] != $user->uid) {
  8. $subcrit .= $rec_uid[uid] . ', ';
  9. }
  10. }
  11. $subcrit = substr($subcrit, 0, -2);
  12. $rec_bibs = db_query("SELECT DISTINCT(bnum), COUNT(bnum) AS total FROM iii_hist_data WHERE mattype = '$mattype' AND bnum != '$bnum' AND uid IN ($subcrit) GROUP BY bnum HAVING count(bnum)> 2 ORDER BY RAND() DESC LIMIT 5");
  13.  
  14. if (!db_num_rows($rec_bibs)) { return; }
  15. while ($rec = db_fetch_array($rec_bibs)) {
  16. // Do your business here
  17. }

So basically, you can see what's happening here. First I get an array of all the other users who have checked out this item. Then I get a list of items that three or more of those people have checked out and display it randomly (so it's not always the same list). Pretty easy, of course you need to grow that data before it becomes useful. 300,000 records makes the results pertinent, 300 does not.

If you're curious, head on over to AADL's catalog and test it out.. you might stumble on something new.

The next step, of course, in all this SOPAC business is to try to determine how check-out patterns are changing and whether it will have an impact on collection development.

SOPAC, 4 days later.

AADL Catalog Tags Cloud - 1/25/2007A number of people have been curious about the type of reception aadl.org's social OPAC would get. I would say that it has been very well received by our community with a moderate level of participation.

I just snapped this screenshot about five minutes ago of our tag cloud. As you can see, a real cloud is emerging. But let's look at stats for a second.

As far as tagging is concerned, 330 tags have been entered. 97 catalog items have been tagged with 245 distinct tags. 27 people have put tags into our catalog.

Stats for reviews are a little smaller, probably because reviewing an items demands a greater time investment on the part of the user. As of now, 21 reviews have been placed on 21 items by 16 people (4 of whom are staff members). That's about an average of 9 per day. I expect that will pick up as more users become aware of this service.

Of course, compared to a high-traffic social web site like Flickr, these stats are unimpressive, but for a single library, I think they are promising.

Library web site users tend to cross a wider spectrum of computer literacy, so the whole concept of reviewing and tagging may be completely alien to a lot of aadl.org's visitors. We're in a little bit of uncharted territory here, so I'll be sure to do a number of updates as time goes on.

AADL.org Goes Social

I have a good excuse for dropping off the face of the biblioblogosphere for a month.

It only took a year, but I finally got permission to go ahead with implementing what I've dubbed "The SOPAC" here at AADL. That would be "cute-speak" for Social OPAC. The SOPAC represents a slew of features that I've wanted to implement for quite some time now. I'm rather excited to see if library users will respond to these tools in an OPAC setting as much as Web 2.0 users have to commercial social networking sites. I'm fairly confident they will. Mainly, I'm relieved that I no longer need to talk conceptually about features I've been planning to build on top of the catalog.

So what is the SOPAC? It's basically a set of social networking tools integrated into the AADL catalog. It gives users the ability to rate, review, comment-on, and tag items. The concept is nothing new, but the nature of our systems do not yield readily to this kind of retrofitting--something I plan to really start tackling in earnest, but that's a topic for another post.

If you're wondering (and didn't know already), AADL's automation system is III which recently released a software package called "Encore" that does some of what the SOPAC does. We did not purchase it, nor do we intend to. Instead we're going to use the money we saved to buy a Lexus. *grin*

Anyway, I've been messing around a bit with Snapz Pro, and thought that since this is a pretty big upgrade to AADL's site, I would include a screencast covering most of the new features. So for those with 15 minutes or so to kill (ignore the screaming kids in the background):

(Download Movie ~88 MB)

SOPAC Features

The "front door" to the SOPAC is, of course, the main catalog search screen. Drupal's API made development of this code relatively painless. For example, the blocks on the right-hand side use Drupal's hook_block function, making the development of those blocks simply a matter of writing a function that would return the content. In this case, the right-hand column contains search, tag, and review information.

Let's take a look at some of those blocks:

These two blocks represent the contextual nature of SOPAC. The first block appears in the regular SOPAC, while the second is displayed in the use management tools.

Here are some sample review pages:

Top of review page:

Reviews themselves:

Public view of all my reviews:

Private view of all my reviews:

While writing a review, you can simultaneously add tags for the item you're reviewing. Or you can simply tag catalog items without reviewing them. Here are some same examples of the tag system:

Personal tag cloud (My tags in cloud-vew mode):

Personal tag list. This is where users can manage their tags. Delete, modify, view, etc.

List of items in the catalog tagged with "dogs":

Feel free to visit the AADL catalog to tag and/or review some items. You do need an account to create content, but you don't need a library card to get an account, so these features are not limited to cardholders in any way.

Because I feel that this version of AADL.org is a significant milestone, I've made a tarball of the source code publicly available for download. Included in the tarball is our middle-ware "glue" that allows us to interface Drupal with the III server in addition to all the SOPAC code and supporting libraries. Bear in mind that this code will definitely not work out-of-the-box but could definitely be made to work with any III server with XMLOPAC support.

You can download the package here, or from my files section.