Hello I've got a couple of quick questions about the Koha database schema. I think I've worked it out, but just want to double check. I'm working from the CVS version and data. I'm interested in implementing a collaborative recommendation feature which allowed users to see which books other people who borrowed the current book had also borrowed. Both Amazon and Barnes and Noble use a similar feature. In English the query I want is "Which books have been lent to the most people who have also borrowed the current book?" With the restriction that the books I recommend must be available for lending from the current library (it's pointless recommending a book that's not there) and must have more than N borrowers in common with the current book (to protect the privacy of borrowers, N is set to 5 or 10). Logically what I want to do is a join across biblio--> items--> issues--> borrowernumber--> issues--> items--> biblio with SELECT, a COUNT and a SORT. This, of course, gives huge intermediate tables, so I'd have to do several SELECTs as I go. I may also need to factor in a component of "how much has book A been borrowed by borrowers of book B compared to all other borrowers" to prevent very popular items (think Harry Potter) being recommended for every possible book. This effect would be similar to tf-idf ranking from classical information retrieval. My questions are: (1) How do I tell whether a book is 'available'? I think I need to check the items table and make sure that stack, notforloan, itemlost and wthdrawn are all zero does this sounds right?. (2) I don't understand the distinction between items and biblioitems (3) How to I differentiate between children's and adult's books, between fiction and non-fiction? (4) Would collaborative recommendation be useful in a small library catalog? (5) Would the small incursion of user privacy be acceptable in a small public library? thanks for your help stuart -- stuart yeates <s.yeates@cs.waikato.ac.nz> aka `loam' "To err is human--but it feels divine." -- Mae West X-no-archive:yes
Hello Stuart, On 13 May 2002, at 18:31, s.yeates@cs.waikato.ac.nz wrote:
I'm interested in implementing a collaborative recommendation feature which allowed users to see which books other people who borrowed the current book had also borrowed. Both Amazon and Barnes and Noble use a similar feature. Great idea. I think borrowers would love it.
In English the query I want is "Which books have been lent to the most people who have also borrowed the current book?"
I may also need to factor in a component of "how much has book A been borrowed by borrowers of book B compared to all other borrowers" to prevent very popular items (think Harry Potter) being recommended for every possible book. Good thinking
My questions are: (1) How do I tell whether a book is 'available'? I think I need to check the items table and make sure that stack, notforloan, itemlost and wthdrawn are all zero does this sounds right?. Stack is available in my libraries, but you are right about the other variables. Also Cancelled
(2) I don't
understand the distinction between items and biblioitems Items are all individual copies. Biblioitems is a way of grouping variant forms of the same biblio - eg large print copies of a title would be in a different biblioitem group from the ordinary size print, even though both sets contain exactly the same text.
differentiate between children's and adult's books, HLT puts a J at the front of each children's item type, and in front of
(3) How to I the Dewey number for children's NF. So JPB, JPC, JF are all children's item types. between fiction
and non-fiction? Fiction has no Dewey number (4) Would collaborative recommendation be useful in a small library catalog? I think so (5) Would the small incursion of user privacy be acceptable in a small public library? I'm confident it wouldn't be an issue here. All power to your elbow.
Rosalie Blake Horowhenua Library Trust
participants (2)
-
<s.yeates@cs.waikato.ac.nz> -
Rosalie Blake