1

I've been studying Programming Collective Intelligence and the algorithms for doing item to item recommendations make enough sense to me so far, but I'm stuck now with how to make an actual database backed system out of what the author describes. I've found acts_as_recommendable, but it looks abandoned from what I can tell.

What I'm wondering, is let's say I have a database laid out like so:

Users:

id

username

Bookmarks:

id

url

UserBookmarks:

user_id

bookmark_id

(simple, users can have many bookmarks, bookmarks can have many users)

Now looking at the algorithms in their Delicious example in the book, it appears they have records for both users who have bookmarked a url, and users who have not. That obviously doesn't lend well to a database at all because one new bookmark with a 1000 user system would require 1000 new database records. Or am I just not getting something at all here?

How would you add to the above database schema to allow you to calculate bookmark recommendations per the delicious link recommendation algorithms in Programming Collective Intelligence?

I would ideally like to calculate allow bookmark similarities maybe hourly and then simply query the database for recommended urls on page load. Is this possible with standard mysql backed system in Rails?

Thanks in advance.

dchuk
  • 11
  • 1

1 Answers1

0

i'm unfortunately no expert in this field, but you may wanna take a look at Neo4J http://neo4j.org/, that's a graph database with great Rails support. i've fiddled around with it a bit, and it seems pretty awesome.

Marian Theisen
  • 6,100
  • 29
  • 39