Lillian - A Natural Language Library Interface and Library 2.0 Mash-Up

lillian.jpg

BACKGROUND

Introduction

Lillian is a virtual librarian. She is designed to answer user queries about books, and particularly library holdings. As well as being able to tell a user if a library holds a particular book she can also:


  • Deep link them to the library's own holdings page for the book, which may have availability and reservation data

  • Direct them to another library that holds the book if the local library doesn't

  • Direct them to the right page on Amazon if the book is not held

  • Advise them of books by a particular author held

  • Advise them of books on a particular subject held

  • Tell them what the book is about

  • Tell them what other people thought of the book

  • Tell them what books people like who also liked this book

Lillian combines:


  • The Discourseâ„¢ Natural Language Interface and Chatbot engine from Daden Limited

  • The Sitepalâ„¢ animated avatar and text to speech system from Oddcast Inc

  • Web services interfaces from:

    • Talis

    • Amazon

    • OCLC

Lillian is a web native, web delivered application, requiring only a browser with the Flash plug-in installed to work (Flash plug-in only required for avatar and text-to-speech).

The current version of Lillian is only a proof-of-concept. As such she lacks the security, resilience and error trapping that would be found in a production system, and only implements some of the knowledge cases which would be required in a publicly accessible system.

Lillian can be found at:

http://www.daden.co.uk/chatbots/livebots/lillian/

A text only version is also available for low-bandwidth use.

Lillian was originally built for Talis' Mashing Up The Library competition.

Note: Lillian is intended as a proof-of-concept only and does not yet cover every possible combination of input question and web service response, however addressing these issues is mainly a case of developing more question/response cases rather than writing new code.


Basic Operation

The basic operation of Lillian in response to a user query about a particular books (as in the user asking "Do you have The Stone Diaries?") is:

Use a title-to-ISBN look-up service to identify an ISBN for the book (currently using Amazon AWS )
Use a related-ISBN look-up service to identify other ISBNs for the book (currently using OCLC xISBN)
Use the Talis Holdings API to determine all libraries holding those ISBNs
Filter holdings to only show those from the home or chosen Library
Prepare a plain language response to the question
Prepare a deep-link to the book in question on the libraries own system
Return the results web page to the user
The user's browser calls the Sitepal system to produce the text-to-speech and the animated avatar

Other features follow a similar process but may use additional filters and services (eg Amazon's ListMania and Reviews for consumer information about the book)

CONVERSATION TEMPLATES

Whilst it goes against the grain a bit to describe how to talk to a natural language interface a few pointers may be useful for a proof-of-concept system such as Lillian.


Setting a Home Library

Lillian is designed to "represent" an individual library. When first launched Lillian will invite the user to nominate their "home" library by stating a major town or library name, as in:

I live near Bury
I use Bury library
I am in Bury

The selected name is checked against Holdings data to ensure that the holdings service is available. If available, the user is asked to confirm the library found by saying Yes or OK, otherwise the user is asked to try again.

The library details are only stored for the session, although permanent cookie storage could be easily used. The location can be over-written at any time by just repeating one of the above statements. The location setting can be interrogated at any time by asking simply "where am I".


Asking About a Book

To find out if a particular book is held just ask:

Do you have X
Have you got X

If the book is held then the user will be told, and a deep-link presented (Note: Where xISBN has been used the link may not point to the edition that the library has - now fixed). If the book is held by another library but not the home library then details will be given. If the book is not held by a library on the system a link to Amazon is provided (Note: Amazon US is used for searches but Amazon UK for buy links, so sometimes the UK link fails if the book is only on Amazon.com - fixed, now uses Amazon.co.uk for all).

A likely problem is that there may be more than one book with the same (or similar) titles.
If two books exist the user will be given both sets of details and asked which is meant. The user can reply with any of the distinguishing data (eg author) or just say first/former or second/last/latter.
If more than two books exist (try XML for an example) then the user will be presented with a text list of the first 10, and asked to restate the query in more detail (eg "Have you got The Stone Diaries by Carol Shields"). If you don't mind which copy (for instance if they are actually all just different editions of the same book) just ask "do you have any editions of xxx".

Note that the system stores the name of the book in its context memory, so if when asked about say "The Stone Diaries" Lillian responds with the fact that other libraries have it then the use need only say "Which other libraries", or "Who else has it" for Lillian to know which book the user is talking about.

Finding Out More About a Book

People often look to librarians to tell them something about a particular book, or even make recommendations for related reading. Lillian can do some of this too. Having identified a particular book a user can ask:

What is X about - gets the editorial review from Amazon
What is X like - gets the reader reviews and scoring from Amazon
What else is like X - gets Amazon Listmania entries which also include this book

(Currently only works where only one ISBN is found for a title)

A Book and Its Author

Lillian also knows about those things called authors. The user can start by asking for a book by title and author:

Do you have The Stone Diaries by Carol Shields

The user can also ask:

What (other) books has Carol Shields written
(have you) Got anything by Carol Shields
Who wrote The Stone Diaries

(This is one of the most intensive task as Lillian has to get all the books by the author from Amazon, then use xISBN to check alternative ISBNS for every book, then fire all those ISBNs at Talis and filter by library!)

Partial Information

Lillian tries to work with whole titles. However she can cope when the user does not know all the information, for instance:

Have you got a book about Kevin - ( meaning "We Must Talk about Kevin")
Have you got a Provence book - (meaning "A Year in Provence")
Do you have anything on XML - (a general query)

In both cases Lillian does a search on Amazon and returns up to the top 10 books in Amazon sales rank order - i.e. Those most likely to be wanted by the user.

FURTHER INFORMATION

Context Tracking

Context Tracking is one of the hardest things for a natural language interface to do. As has been mentioned about Lillian tries to track context so that if a user asks "what is it like" she knows which book the user means by "it". However she can sometimes get confused, especially if the user abruptly changes context (which a real person may spot by say the user looking away and then back, but which a conversational agent like Lillian does not have the senses to detect).


Question Variations

One of the keys to good natural language interface design is to try to capture all the different ways (or at least the 95%+ ways) that a user might ask a question. Whilst some of this can be done analytically (and Lillian can already cope with almost 100 different types of question), there is no substitute for a) good pre-testing with users not involved in development and b) prompt and good "convologging" (i.e. Check logs and update cases) once the system is live. As such the current Lillian may often not understand the user. This is not normally a programming problem, just a data one.

Case Dimensions

How a question can be asked is just one dimension of cases which a natural language interface needs to cover. The others are:

Having multiple replies for the same thing so as to introduce natural variation
Having answers to follow-on questions (eg "when is the library open", "how old is Carol Shields" etc)

The limit to these is realistically only set by time and budget, although eventually you do reach a point of diminishing returns.

Future Features

Subject to the availability of the appropriate web services we could readily extend Lillian to include:

Dewey Decimal information and searches
Topic related searches (eg using Dewey, Amazon categories or LibraryThing tags)
Actual book availability
Making recommendations for multiple matches (eg highest scoring XML book or best carol shields book based on amazon ratings)
Book reservations
Book alerts (by email or SMS)
Searching for only large print or audio books (especially for visually impaired users)
Relating books to concurrent events (eg "have you got the book from that wildlife TV programme last night" - we can already access TV programming information)

Lillian will also work with a local speech recognition system so that a user can have a totally hands-free conversation with her.

CONCLUSION

We hope that you enjoy chatting with Lillian, and we are keen to explore ways to deploy her in support of real libraries and library organisations. Lillian (and similar avatars) can provide a "human" face for any library both on their web site, and on PCs within the library. Avatars have been shown to grow trust with users, and be less threatening than either conventional database query screens, or even real humans!





XML RSS Feed

intellect logo

mtpowered.gif