Cogmap is starting down the path of introducing collaborative filtering. Soon, very soon, we will start to tell you maps that you might like, based on maps you have looked at or edited in the past!
We are attempting to use Vogoo, which is a Slope One engine perfect for what we are trying to do. Unfortunately, the documentation is a bit weak. Not terrible, but not great either. I wanted to document a few of my questions and some of the things I did for the next lucky guy!
Set-up
The tutorial tells you how to set ratings, but the installation guide tells you that you should do other things also when you are going to set ratings. And there are no examples. Sad face.
I have sat down and tried to implement all of the things they explain at different points and here is what I ended up with (An example, YAY!):
define('VOGOO_DIR','<PATH TO VOGOO DIR>');
include("<PATH TO VOGOO.PHP>");
$vogoo_check = $vogoo->connected;
if($vogoo_check)
{ $rate = $vogoo->automatic_rating($userid,$chartid);
} else { generate_error(0,"Vogoo DB not connecting"); }
Now, I used the automatic rating function because I wanted every logged in view to count as a vote. Then I use subscribing (which happens automatically on a chart edit), as a “purchase” or indication of love++ for a chart.
Questions
It sure sounds like you can’t do both user filtering and item filtering at the same time. For a site like this - kind of a social network wrapped around an application - that is kind of bleh. Ideally I want to say here are the kind of maps you like and then also have a “here are users who dig the same maps”.
Despite my bashing of the documentation, when I sent an email with a question, I got a response 24 hours later…. twice! So that’s pretty good support and I was using the free version. Of course, he failed to find my bugs, which in retrospect were dumb bugs. Hmmmmmmmmmm.
Big Conclusion
So now we are up and gathering data. My plan is to run it for a month or so and then look at what kind of data set I have. According to the Vogoo manual, you have to run a separate php program to compute the links between each item, so I assume (although once again the documentation doesn’t discuss it), that I need a fairly good sized sample. With more than 3,000 maps, I need a little time to develop and expose relationships. Once I see what the data looks like, I will begin to figure out how to crowd my UI and add that in.
Now, I am not the world’s greatest programmer by any means. In fact, many would testify that I may be the world’s worst. So take all of my advice with a grain of salt, but enjoy!
– brent