There are a couple implementations of DataModel in the code -- you can write your own too. The most common are FileDataModel, which reads data from a CSV-formatted file, and MySQLJDBCDataModel, which reads from a database table. See the javadoc comments in the class for more about how to set up the table properly, but indeed, it is just that simple -- user ID, item ID, pref value.
Yes, in general, everything is "real-time" by default and uses the latest values. However, for performance, caching can and does occur at many levels. For instance FileDataModel will only re-read its underlying file when refresh()-ed actively. Also you will probably use wrappers like CachingRecommender around your Recommender class, or CachingUserSimilarity around your UserSimiliarity implementation, to cache previous values rather than recompute every time. But yes you could construct a system that always recomputes everything if you want. On the other end, if you are interested in pre-computing everything, you will find it interesting to look at the Hadoop jobs which can run Recommenders in parallel for all users to generate all recommendations at once. On Fri, Apr 10, 2009 at 6:27 PM, Niraj j <[email protected]> wrote: > I downloaded taste and have spent about 2 hrs with it. I have a few > questions. > > 1. Where can I get the DataModel for Taste. It seems like there is just one > table that I need to implement that has an user id , item id and preference. > is that correct ? > 2. Does Taste figure out the Relative Scores between's users real time on > requests or are the scores calculated earlier and placed somewhere. >
