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.

Google Gadgets on the Go-go

Well, Stephen Abram and Richard Wallis beat me to it, but I thought it would be worth mentioning that Google is now enabling users to extend the Google Gadget to their own personal web pages.

For example, here is the AADL top items list using onr of my Google gadgets (seems to not work in some browsers):

Very cool and very easy.

PatREST to Include OCLC Audience Level Data

I’ve updated AADL’s PatREST interface to reflect an addition I’ve made to the PatREST specification (now 1.3). This addition takes advantage of OCLC’s Audience Level indicator. OCLC makes this information available via an XML web service. From their service page:

There are a variety of ways to characterize library materials. The type of reader believed to be interested in a particular item is one. Such an indicator, generally known as the audience level, is potentially useful for a variety of activities, including the development of new ways to improve information relevance for retrieval, reference services (including readers advisory) and collection development. Audience-level filters could be implemented in existing retrieval systems to assist users in finding content based on their information needs.

This is not the first OCLC service PatREST has taken advantage of. PatREST has been incorporating data from OCLC’s xISBN service for quite some time. By pulling in the data they make available, the data PatREST is able to return becomes significantly more valuable.

Because AADL’s PatREST implementation relies heavily upon III’s XML server, I’ve added OCLC’s Audience Level functionality to the PHP XMLOPAC class code which is freely available from my files page or you can directly grab it right here.

Mucho Mashup

The best part of winning a competition is, by far, is that I get to sport my very own winner’s tile!

Given all the other wonderful entries, I was very surprised and honored to find out that I won Talis’s Mashing up the Library competition. The fact that Talis offered the competition in the first place is a testament to their dedication toward building a new kind of library system–one that places its users at the center. Whether that user be a patron or a systems guru, mashups imply openness: a virtue that the beleaguered Old Way lacks. By promoting development in such a way, by extending this competition to anyone–not just their customers–Talis has valued the message over the messenger. Back in June, the competition was announced. It was followed by a series of blog posts and a podcast introducing the library community to mashups and their significance. This gave librarians time to digest the concept and experiment with it.

I was impressed with all the entries. Several, in particular, caught my eye as either particularly interesting or meaningful. Of course, the second place entry, submitted by the Alliance Library System for their Second Life library is unique indeed. Paul Miller lauds their spirit of cooperation. I think it’s just dang cool and I would participate more in it if I could figure out how to take the grand piano off my head!

Another interesting entry was submitted by Art Rhyno and Ross Singer. Their idea was to use Google Desktop as a catalog repository. As far as mashups go, it’s a little more technically involved, but its possible applications are very compelling indeed.

The folks at The State and University Library (In Denmark?) submitted what looks to be a search engine that aggregates a number of data sources. It appears to be modular so that new sources can be easily plugged in. Definitely a project worth watching. They call it Summa.

Mike Cunningham threw together a slick little book cover browser using Yahoo’s carousel component. It’s definitely a mashup in the true sense of the word and it gives me some ideas…

Someone whose username is dburden put together a little text-to-speech reference robot. I couldn’t get it to work on my laptop, but the idea seemed solid and was ingenious!

Talis has decided to renew the competition but keep it open on an ongoing basis. My hope (and theirs too) is that more library folk will join the fray and showcase their creations for the betterment of libraries everywhere.

Thanks to Talis and all who participated.

AADL.org upgrades to Drupal 4.7

A little over a year after launch, AADL's Drupal-powered site has been upgraded to 4.7 from 4.6. Those familiar with Drupal's release schedule and changelog will know that this is a substantial upgrade that puts us in a good position to be ready for the touted and forthcoming 5.0 release (for which there is now a code freeze).

Drupal 4.7 sports a number of great new features. I'm most excited about the new search engine which does a much better job of indexing the site and allows users to do an advanced search. Searches now actually return meaningful results. Other features include a new Ajax-enabled content creation system with nifty improvements such as re-sizable text fields, collapsible elements, a file upload system that doesn't require authors to leave their work, and live menu updates. On the development side, these new features are accessible via the new form-handling system. In other words, coders can easily incorporate these new Ajax elements in their own work. Theme developers will be happy with the ability to create an infinite number of regions--nice to achieve that highly-polished CSS look. I think a couple new block types were added as well.

Another great feature is the wiki-style revision system that allows editors to roll-back their work and leave editorial log messages (a very useful feature in large, collaborative environments). Commenting benefits, as well, with the ability of site administrators to manage and moderate multiple entries at once. Finally, Drupal 4.7 supports free tagging. Not something we're using at this point, but, from my point of view, it means that the engine is there for future module work. I have a feeling I'll be using those hooks for some forthcoming feature upgrades on the website itself...

The upgrade was fairly smooth. Drupal ships with an update script which ran flawlessly, but that's the easy part. A fair amount of prep-work was done ahead of time to ensure that all of our custom modules were 4.7-compatible. Basically, this meant updating all of our form-handling code to handle the new system. We also segregated all of our own code and theme information from Drupal's using the multi-site capability. This means that we can easily keep track of our own work without it getting mixed up with the vanilla code-base. This wasn't completely necessary, but it was worth the work because it'll make all future upgrades much easier to do. Doing things this way is also in-line with my philosophy of never touching stock code unless you absolutely have to.

The long and the short of this whole upgrade means that our users will probably not notice a lot of difference, but we're now in a good position to work on AADL 3.2. And that they will notice.

For more info, check out these Drupal videocasts:

[tags] AADL, AADL.ORG, Drupal, CMS, PHP, Library, Web [/tags]