Sorry for my later update. My project has huge updates since my last report, the most notable are a better UI interface for configuration and the way to append/extend it without modify the core properly.
The project has two major areas where it could be extended. The most notable is the DataCollector, as you might know in order to work with Recommendations there must a be a set of inputs to analyze (this is not a really hard task since WP has a bunch of hooks), this base class automatically loads sub-classes placed on a given folder (by default ./collectors/) and register all the needed hooks. Just take a look about how easy is to use it http://github.com/crodas/BuddyPress-Recommendation-Engine/blob/66c4586b725e369c297af7585211b7108c296f0e/bp-recommendation/collectors/blogs_visitor.php, it basically registers a single hook (“loop_end”) then it ensures that it is a single page, user is logged and that user being different that the post writer, then the result is stored “somewhere”.
The other way to extend the project it’s writing a DataCollectorStorage, as its name denotes, it is the way how the DataCollector are stored “somewhere”. It is very important since it might be a huge bottleneck and it might be used carefully. I wrote a sample class that store all the data in the harddriver (in regular files), http://github.com/crodas/BuddyPress-Recommendation-Engine/blob/66c4586b725e369c297af7585211b7108c296f0e/bp-recommendation/collectors_storage/disk.php this isn’t the best best approach for large sites, but it is useful as an example.
In the UI interface, the site admin could choose what DataCollectors and DataCollectorStorage use, also DataCollectorStorage might have configuration variables, for instance the DiskStorage subclass has a single configuration variable (save directory).
Right now is missing implement some algorithms, in order to do this is missing a real dataset. Probably (I’ll talk to Andy) it could be installed on the testbp sandbox site (at least some datacollectors).
Happy hacking to all.