Brillig Understanding, Inc.

Magic Library


It combines a search engine for a database of book titles, authors, locations and availability info, a recommendation engine that knows what titles are popular and/or what titles others who liked some book have read (a la Netflix), and a document reader which can summarise the contents of any documents or find documents containing particular information.


The range of places searched depends on who is signed into the system. It could be every library and bookseller on the planet or any subset of that. Ideal partners would be the Internet Archive and Google Books and Amazon.


Every user and their reading history resides in the system's memory and everything they have looked at, liked, disliked, reviewed, bought or borrowed is stored there to assist with future choices.


The presentation interface can combine data from any of the above resources in the form of a list of books and reasons why the user might want to read them.


The simple NL front end can handle any expressions, lists of information, search terms or other information that the user recalls to aid their finding of the book or research materials they need. E.g.:

1) a book about trains and children that I'd like

2) something I read thirty years ago as a paperback in science fiction by a female author.

3) a book in which a railroad worker was killed.

If you want the sort of experience you'd get in a good bookstore with a table of staff recommendations spread before you, then the system could work from what it knows of you or ask you questions to help it home in on what you might enjoy. It can include things that other people have enjoyed or you could ask it for something unusual and really out there or perhaps something your favorite author might enjoy. With a NL processor however you choose to talk about what you are looking for and it can be searched for and something at least close can be offered to you. You may not need to enter all your search terms as the system is continously searching as you type. It handles progressive refinement as you enter new lines of data.


What ChatScript abilities currently exist to support magic library?


1. ChatScript has a good ability to rip apart input sentences where there are expectations on what the user will ask. ChatScript's strong pattern matching ability handles that.


2. This ability extends to keyword streams. For example Amazon search is typically a keyword stream where the user enters keywords in a natural language meaningful order and Amazon considers them as completely unordered sets of words. Amazon keyword search fails both on natural language input and on too many keywords. It often returns a lot of incorrect items on the lead page, or fails to find anything at all. E.g., these searches: a) kimono produced in Japan, b) teal kitchen timer, c) men's XL white shoes, d) elizabeth arden flawless finish mousse makeup natural, e) find a pen.


If you ask for a "teal kitchen timer", their search returns 10 items:

Programmable Slow Cooker, 5-Quart, Teal

Submersible Battery LED 10 Lights

3 piece set of Pillar Wax Multi-Color Remote Controlled LED Candles

Set of 3 Flameless Mulit-colored "Flame" Ivory Pillar Candles

Easy Bake Real Meal Oven by Hasbro

...

and only the 10th item is a timer-

Prepworks from Progressive TMB-101 Little Timer


Then, they offer you the result from a search on "kitchen timer" and then the results from a search on "teal kitchen" and then the results from a search on "teal timer". So clearly they have no idea what you want.


We wrote a demo Amazon product search that improved their product selection ranking by taking into account what the user actually meant. We classified the input into the primary item and more than 100 attributes. For "teal kitchen timer" our system classified this:

item: timer hue: blue color: teal location: kitchen

and analyzed the results of amazon's search to qualify their answers. If their search failed, our system proposed a simpler search:

secondary search: blue kitchen timer


3. ChatScript has a built-in pos-tagger parser. So it can break a sentence into its component grammatical parts and store and retrieve data using that.


4. ChatScript has a document reader mode wherein it can read a document (eg a book) and run all of chatscript topics and rules on each sentence within. This can be used to make analyses of the document's content and potentially store information about it into a database.


5. ChatScript can connect to a PostgreSQL database and can thus directly query and manipulate large amounts of data under ChatScript script control.


6. ChatScript can create and infer among facts, so it can build up a representation of the user, his interests, what he has done before, etc.


7. ChatScript maintains a context for each separate user and a ChatScript server can handle many concurrent users.


8. ChatScript can talk to the internet using http, processing data that is returned using script.


What Additional Capabilities are needed to be developed


Obviously we don't have to start by doing everything. Overview information on books such as exists on Amazon or in the library database is essential. Having preprocessed the internals of a book is not. Having a history of the user's behavior is not. For books in print, typically Amazon will have popularity measurements. For books out of print these are generally not available. So what do we need to build such a system?


1. Data- Obviously we need access to various databases of information. We have already written code to use Amazon's Reseller API to see into their world of data. We'd need code for library information. And we'd have to write code to interface to Internet Archive and other sources of information about books.


2. Time & Money - We continue to work towards this ultimate goal on our own, adding bits and pieces of capability into ChatScript. At this point we have most of the raw abilities we would need created, but it would take time and a customer with an actual use and funding to have us build this system.


3. Research - If we want to store information about the internal content of a book, we would have to research/experiment on the best ways to represent the book into a searchable database beyond what people do now with mere keyword frequency. This is not an essential component of a beginning system, but would be desirable in our ultimate vision.



Bottom Line: Know anyone who is interested in funding some part or all of this?


Home About Us Technology Projects Testimonials ChatBot Demo Awards/Press Publications Contact