I don't think they're identical, no. The concepts must both exist in the API or it would be unintelligible. Or, UserSimilarity and ItemSimilarity might be unifiable into ThingSimilarity but I wonder whether that would start to get hard to understand. If that's what you mean, yes you can argue that's duplicative but I think it's necessary.
Some of the asymmetry exists for performance reasons. The framework does not demand that both ideas be on exact equal footing since this would require, for instance, maintaining things like indices both ways where only one may be otherwise used. (I'm sure some asymmetry or duplication exists that can be fixed too, though I can't think of much.) Being a Collaborative Filtering framework, nothing need be known about users or items but their identity. In that sense they are interchangeable. I can feed item IDs as user IDs and vice versa to recommend users to items (or users to users, or whatever). But that doesn't mean the framework needs to think of users and items identically, and be able to go either way in one single instance. But maybe you can say what you think is duplicative, and I can say why it either should be as-is or we can open a JIRA to track the edits. On Tue, Aug 31, 2010 at 7:53 AM, Lance Norskog <[email protected]> wrote: > It seems like Users and Items are isomorphic concepts. (Or rather > enantiomorphs?) Yes, there are different strategies for user-user v.s. > item-item, but the core abstractions seem the same. > > If so, there's a lot of duplicated code in Taste. > > -- > Lance Norskog > [email protected] >
