LITA Guide on usability

A new LITA Guide on usability is available from Neal-Schuman:

If your library’s website is not as user-friendly as it could or should be, you need this book. A LITA guide, it is the most authoritative, current reference on usability testing for libraries. It gives you practical advice in clear, non-technical prose, plus success stories from 18 academic, public, corporate, and government libraries. Read it and you will learn what usability assessments are, why they are important for libraries, why you should do them regularly, and what the most common challenges are. You will also learn all of the necessary how-tos, whats, and whys for the most common assessment techniques and how to interpret your results, document findings, and effectively communicate results and recommendations. Usability-in-action success stories from Purdue, the University of Virginia, and Wright State University libraries; the Clinton Macomb Public Library in Michigan; the MITRE corporate library; and the library at NASA Goddard offer rare insights and practical advice for facing challenges like limited time, working within a budget, and rallying support for website changes. For library webmasters, members of library Web or usability teams, and library administrators committed to putting their patrons at the center of their website design strategy but unsure of how to begin.

Interestingly enough, the Guide got its start from the current MyLibrary manual.

“Information behavior of the researcher of the future” and MyLibrary

I have read with great interest the latest report from the British Library and JISC called “Information behavior of the researcher of the future”. [1] Some of the comments support the need for MyLibrary-like applications.

Purpose

The purpose of the study was to predict how younger (school and pre-school aged) people are likely to access and interact with digital resources in five to ten year’s time. Consequently, much of the report reads like an American Library Association Annual Meeting Top Tech Trends session.

Interesting concepts

In the course of the report, they emphasize a number of interesting concepts. For example, the “Google Generation” is anybody born after 1993. Such people are more comfortable with keyboards as opposed to spiral notebooks, they are accustomed to reading computer screens, and just as importantly, they are constantly connected to the ‘Net. Another interesting definition is “power browsing” — a behavior characterized by instant gratification, looking for “the answer” as opposed to formats of information, horizontal scanning, flicking, and going for quick wins.

Behaviors and observations

Given these characteristics, plus evidence gathered from a CIBERstudy the report outlines a number of information seeking behaviors and observations:

  • library-sponsored resources are not intuitive
  • people are not evaluating information
  • people find it difficult to assess relevance
  • people’s information literacy has not improved
  • there is a preference for natural language queries
  • young people have unsophisticated mental maps of the Internet

Myths

The report also gives credence or not to a number of Google Generation “myths”. Some of those myths say that the Google Generation:

  • are a set of “cut & pasters” — true
  • are a set of expert searchers — a “dangerous myth”
  • are more competent with technology — generally true
  • have zero tolerance for delay — false
  • think everything is on the Web and free — don’t know, yet

The report qualifies much of what it has to say with two things. First, more longitudinal studies need to be done, and second, the sorts of characteristics demonstrated by these younger people are not necessary age-related. Many people from many age ranges are exhibiting these behaviors.

Future

There are a few other thing in the future environment that need to be acknowledged. There are an increasing number of powerful brands on the Internet: Google, eBay, Amazon, Facebook, Yahoo!, etc. The report thinks these brands will become more personalized, mobile, and intuitive. Print sales will decline as consumer demand will drive up the sales of electronic books. More and more content, especially user-created content, will become available. Blog postings. Wikis. Pre-published scholarly content. Etc. Library-sponsored will shrink in comparison and increasingly be seen as difficult to use — not worth the time to use. Virtual realities will be more of a… reality. Think Second Life. Finally, the “Semantic Web” — an interconnected, machine-to-machine language network for making decisions — will either be a reality or more of a reality than it is now.

Suggestions and challenges

Give such an environment, the report outlines a number of suggestions in the form of challenges. Specifically, libraries should:

  • be less complacent regarding awareness of collections and services
  • better integrate their content and services with the wider Internet
  • design systems around user-behavior by supporting “power browsing”, getting away from hit counting, and investing in data collection/analysis
  • design systems that are simpler to use
  • emulate personal/social searching guidance
  • get information [literacy] skills on the agenda
  • move away from the one-size-fits all policy for library systems design
  • shift from a content-orientation to a user-facing perspective and then to a outcome focus

MyLibrary

Believe it or not, MyLibrary is intended to address many of the suggestions and challenges outlined in the report. Specifically, MyLibrary is expected to support things like personalization, customization, user-centered design, integration with the wider network through social networking sites and Google, marketing, etc.

Again, MyLibrary is about three things: 1) information resources, 2) people (patrons and librarians), and 3) relationships between items #1 and #2. The addition of people into library information systems, coupled with a relationship-building vocabulary moves a library from a content-centric institution to a user-centric institution. I alluded to this concept in an essay written in 2003 called “MyLibrary: A Copernican revolution in libraries”:

Is MyLibrary a “Copernican revolution” for describing information resources? No, probably not. On the other hand, by creating local classification schemes rooted in the experience of the patrons and then describing information resources using these schemes, MyLibrary does turn classification a bit on its head. Instead of the classification process revolving around objective, one-size-fits-all terms, MyLibrary might allow classification to revolve around the patron and their personal knowledge and characteristics. Only time will tell.

MyLibrary as a digital library toolbox and framework allows librarians and developers to harvest and integrate content from the wider Internet. It allows librarians and developers to syndicate content to places beyond the library. By inserting people into the system, it allows librarians and developers to do things like “People who used this also used that.”

Finally, MyLibrary is not the tool to accomplish such goals, but it is a tool. MyLibrary truly does embody the philosophy much of what the report above suggests.

I never did figure out what and where CIBER was.

[1] http://www.jisc.ac.uk/media/documents/programmes/reppres/gg_final_keynote_11012008.pdf

[2] http://infomotions.com/musings/copernican-mylibrary/

More Facebook and MyLibrary

I believe I have finished writing my first Facebook/MyLibrary application.As stated on the application’s about page:

MyLibrary is an application allowing you to save to your profile sets of scholarly and academic information resources enabling you to be more effective in your learning, teaching, and research.

To this end it displays a default set of library resources. You are then given the opportunity to choose an alternative set based on a subject term. After the alternative sets are displayed the user’s profile page is updated. Links on the profile page provide access to various indexes and databases.Next steps might be to read a user’s profile (and/or their friend’s profiles) and suggest other resources. Hmmm… Software is never done.Attached should be the Perl script I used to implement the program.

Single sign-on and MyLibrary

We are playing with single sign-on technology here at the University Libraries of Notre Dame, and its implementation makes putting the “my” into MyLibrary almost trivial.

More specifically, we are experimenting with a thing called CAS (Central Authentication Service). It is relatively easy to install. Download WAR file. Drop it into your Java servlette container. Configure it to interact with your local authentication mechanism. (We use Kerberos.) Add CAS module to Apache. Configure specific directories to require authentication. Go.

When people access an authentication-required page on your Apache server and they are not authenticated, Apache redirects them to a login page. Enter username and password. Upon authentication a session-based cookie is saved to their browser as well as their username. No passwords are recorded in this process. Users are then returned to the initial page where your script can read their cookie, or in the case of Apache, read the remote_user environment variable. Using these values (remote_user or the cookie) as keys, you can then lookup patron information using MyLibrary::Patron.

Assuming you have pre-populated a MyLibrary instance with patrons, here is a “Hello, World!” sort of application using CAS authentication and MyLibrary:

#!/usr/bin/perl

# require
use CGI;
use MyLibrary::Core;
use MyLibrary::Patron;
use strict;

# define
use constant INSTANCE => 'mylibrary';

# initialize
my $cgi  = CGI->new;
MyLibrary::Config->instance( INSTANCE );

# get the patron's id
my $user_id = uc( $cgi->remote_user );
my $patron  = MyLibrary::Patron->new( username => $user_id );

# build a response
my $html = $cgi->p( 'Hello, ' . $patron->patron_firstname . '!' );

# return the response and done
print $cgi->header;
print $html;
exit;

Once you know a username, you can map it to related terms with the patron_terms method. From the list of returned terms you can retrieve lists of information resources, librarians, classes, etc to with which to populate a person’s page.

Facebook framework

I have (finally) written a working Facebook application, and I can now post here a skeleton for a MyLibrary/Facebook application:

# require
use CGI;
use strict;
use WWW::Facebook::API;

# initialize
my $cgi  = CGI->new;
my $fbml = '';
my $facebook = WWW::Facebook::API->new(
    api_key  => "foo",
    secret   => "bar",
    app_path => "http://url/to/your/script.cgi"
);

# get the user id
my $uid = $facebook->canvas->get_user( $cgi );

# Employ $uid as a key to do things like create a Patron
# resource. Use $uid to look up the user's interests, map
# them to facet/term combinations, and suggest resources.
# Use $uid to find the user's friends, and create more
# relationships.

# create a user interface by stuffing markup into $fbml

# output a HTTP header
print $cgi->header;

# update the user's profile page
print $facebook->profile->set_fbml( markup => $fbml, uid => $uid );

# redirect the user to back to their profile page
print $facebook->redirect( "http://www.facebook.com/profile.php?id=$uid", $cgi );

# done
exit;

I guess I will now have to write something…

New Year’s resolution

Happy New Year!

Among other things, open source software is about community. In an effort to build the MyLibrary community one of my New Year’s resolutions is to increase the number of MyLibrary mailing list subscribers by 20%. There are currently 149 subscribers. Therefore, by the end of the year I hope to increase that number to 179.

The mailing list is low-traffic but it does support a greater degree of discussion. Blogs are mostly one-way communication mechanisms.

If you are reading this blog, and if you haven’t done so already, consider subscribing to the mylib-dev mailing list by sending a message to listserv@listserv.nd.edu. In the body of the message put “subscribe mylib-dev [your name]” where [your name] is… your name. Alternatively, see the mailing list home page.

Report on the Future of Bibliographic Control

I read with interest the (draft) Report on the Future of Bibliographic Control, and there are a couple of things that struck a cord with MyLibrary.

First, on page 7 (page 11 of the PDF document) the report discusses the definition of bibliographic control:

…Bibliographic control is increasingly a matter of managing relationships—among works, names, concepts, and object descriptions—across communities. Consistency of description within any single environment, such as the library catalog, is becoming less significant than the ability to make connections between environments: Amazon to WorldCat to Google to PubMed to Wikipedia, with library holdings serving as but one node in this web of connectivity. In today’s environment, bibliographic control cannot continue to be seen as limited to library catalogs.

Whew, because MyLibrary is all about creating relationships, except MyLibrary emphasizes relationships between resources and people. More specifically, Mylibrary is focused on four things: 1) information resources, 2) patrons, 3) librarians, and 4) a controlled vocabulary. Information resources are described in MyLibrary using simple Dublin Core elements. Patrons are enumerated in MyLibrary with simple names and addresses. Likewise with librarians. Like traditional bibliographic control, vocabularies are applied to information resources to draw them together. In this way they have relationships with each other. Unlike traditional bibliographic control, MyLibrary allows you to apply these vocabularies to people as well as things thus creating relations between patrons & resources, patrons & librarians, librarians & resources, as well as between resources & resources, patrons & patrons, and librarians & librarians. Libraries always have users, and it is meaningless to not include users when creating the relationships.

In any event, the emphasis on relationships is a step in the right direction.

Second, on page 11 (page 15 of the PDF document) the report discusses shared cataloging and redundant efforts:

The redundant modification of records in libraries results in unnecessary costs to the library community as a whole. Redundancies occur when individual libraries make changes to records in their local library systems but do not share those changes with the broader community. Their reasons for not sharing record modifications may be operational, technical, or economic….

These same things happen in open source software communities. Often times you will find people who download some code, use it for their own purposes, and then do not contribute their “fix” back to distribution. This does a dis-service to the community and ultimately the hacker. When upgrades to the distributed software are made available the hacker needs to incorporate their additions again. This causes friction. “Should I spend time adding my hacks to the new code, or should I just forgo any new features of the distribution?” All too often the the answer is the former.

The Report is good reading. Take 30 minutes of your time to check it out.

Tagging - Part 5

I’m going to call the tagging demo version 1.0. After signing in you can create tags, and see your tags. Without signing in you can see other people’s tags and navigate to the resources associated with them. Rudimentary. Try:

http://mylibrary.library.nd.edu/demos/tagging

BTW, there are a few known issues. First, authentication expires too quickly. I don’t know why. Second, there is no way to edit your tags. That will be in version 2.0. Finally, I wish I could get things to display faster; I don’t know why it takes so long to find location values!

Tagging - Part 4

Okay, I think I’ve finished a first pass at tagging. Try the Tagging Demonstration. You will need to create an account or sign in before anything will work. I suppose next steps are to allow people to edit their tags, view their tags as clouds or lists, and to hotlink tags to “find more like this one”. Software is never done.

Tagging - Part 3

After three days of hacking, I finally got a bit of the user interface to the tagging demo working. You can now: 1) sign in, 2) browse the collection, 3) opt to add a tag, 4) enter a tag, 5) have the input echoed back to you, and 6) restore the page to its original state. All of this is very AJAX-y.

The next steps include actually updating the underlying database accordingly. I think I will do this by: 1) create a facet called tags_[username], 2) add the term to the database and classify it with the new facet, 3) create a facet called tags, 4) add the term to the tags facet, 5) display the term (tag) when the page is restored to its original state.