<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://groups.drupal.org" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>SoC 2006: Content Recommedation Engine</title>
 <link>http://groups.drupal.org/soc-content-recommedation-engine</link>
 <description>Group consists of those interested in a content recommedation engine. Currently, one is being authored by Scott Reynolds for Google&#039;s Summer of Code</description>
 <language>en</language>
<item>
 <title>Add on modules for CRE and internal works??</title>
 <link>http://groups.drupal.org/node/3445</link>
 <description>&lt;p&gt;Hey there,&lt;/p&gt;
&lt;p&gt;I&#039;m really looking into using CRE for a new project and eventually sponsoring/building new plugin modules for it, but first I really need to understand what the actual modules do, and how the recommandation works now, in the stock module.&lt;/p&gt;
&lt;p&gt;My main question is this:&lt;/p&gt;
&lt;p&gt;When a user votes on a node, does the system remebers which user &#039;added&#039; the voted on node and which taxonomy terms where used??&lt;/p&gt;
&lt;p&gt;If yes, does this mean that when a user votes on a node it also gives a vote to the node author and the taxonmy terms that are attached to the nodes?&lt;/p&gt;
&lt;p&gt;If no, it means that the actual relation created by this module is based specifically on &#039;who&#039; voted on &#039;what&#039; regardless of node author and taxonomy terms attached??&lt;/p&gt;
&lt;p&gt;My question is, would it be too much of a load for a site to implement modules that would create relations to the node author (when I vote on a node, I give the node author a +1 as well) and to the taxonomies involved?? (when I vote on a node, I give a +1 to the taxonomies involved as well...)&lt;/p&gt;
&lt;p&gt;I guess then the issue would be to be able to have a single output based on those three recommandation modules??&lt;/p&gt;
&lt;p&gt;1) regular &#039;who&#039; voted &#039;what&#039; output&lt;br /&gt;
2) output based on authors that you &#039;recommended&#039;&lt;br /&gt;
3) output based on taxonomies that you voted on...&lt;/p&gt;
&lt;p&gt;Well, I think that the CRE module at this point does not create any relations regarding the node author and the taxonomy terms used, but i guess adding those two modules would create a really nice recommandation system and &#039;soft&#039; personnalisation of a content site??&lt;/p&gt;
&lt;p&gt;Any ideas where to start, how to implement, and tips about what&#039;s already in the module and where to read the docs for the API??&lt;/p&gt;
&lt;p&gt;I&#039;d also be willing to team up with other users to maybe sponsor the creation of a &#039;set&#039; of modules that would create the recommandation system I&#039;m looking for here... If anyone is interested in 1) coding this or 2) sponsoring this with me, please comment here...&lt;/p&gt;
&lt;p&gt;Thanks,&lt;br /&gt;
Patchak&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/soc-content-recommedation-engine&quot;&gt;SoC 2006: Content Recommedation Engine&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/3445#comments</comments>
 <group domain="http://groups.drupal.org/soc-content-recommedation-engine">SoC 2006: Content Recommedation Engine</group>
 <pubDate>Sun, 01 Apr 2007 10:13:10 +0000</pubDate>
 <dc:creator>patchak@drupal.org</dc:creator>
 <guid isPermaLink="false">3445 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Voting on feed sources to recommend child items??</title>
 <link>http://groups.drupal.org/node/3319</link>
 <description>&lt;p&gt;Hi there,&lt;/p&gt;
&lt;p&gt;I&#039;m building a new site which uses the leech.module to let people add feeds for their own blogs, etc...&lt;/p&gt;
&lt;p&gt;What I&#039;d like to know is if it&#039;s possible to establish some relation between score given to the feed node (the source) and it&#039;s childs.  For example if a user would give a 5 start rating to the node of the feed source, is there any way to actually recommend it,s feed items??&lt;/p&gt;
&lt;p&gt;I was thinking of using the node review of vote up down modules on the feed sources, but realized that this would allow to recommend sources, but not necessarily the related feed items...&lt;/p&gt;
&lt;p&gt;How would you approach this?&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/soc-content-recommedation-engine&quot;&gt;SoC 2006: Content Recommedation Engine&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/3319#comments</comments>
 <group domain="http://groups.drupal.org/soc-content-recommedation-engine">SoC 2006: Content Recommedation Engine</group>
 <pubDate>Sun, 25 Mar 2007 12:33:13 +0000</pubDate>
 <dc:creator>patchak@drupal.org</dc:creator>
 <guid isPermaLink="false">3319 at http://groups.drupal.org</guid>
</item>
<item>
 <title>recommend a taxonomy</title>
 <link>http://groups.drupal.org/node/3170</link>
 <description>&lt;p&gt;I noticed that there are recommendation modules for comments, nodes, and users, but not taxonomy.  Would it be possible to recommend taxonomy to people?&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/soc-content-recommedation-engine&quot;&gt;SoC 2006: Content Recommedation Engine&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/3170#comments</comments>
 <group domain="http://groups.drupal.org/soc-content-recommedation-engine">SoC 2006: Content Recommedation Engine</group>
 <pubDate>Wed, 14 Mar 2007 20:54:37 +0000</pubDate>
 <dc:creator>greggles</dc:creator>
 <guid isPermaLink="false">3170 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Officially released CRE for 5-0</title>
 <link>http://groups.drupal.org/node/2435</link>
 <description>&lt;p&gt;&lt;del&gt;5-0 development snapshot has been created (waiting for scripts to roll the tarball). &lt;/del&gt;&lt;/p&gt;
&lt;p&gt;5.x dev snapshot has some bad problems, including old code and missing .info file. I have released a official release 5.x-1.0 that is proper and ready for consumption.&lt;/p&gt;
&lt;p&gt;What happened was i expected the -dev snapshot to be rolled on branch DRUPAL-5-0, NOT DRUPAL-5. I will fix the -dev snapshot or remove it entirely somehow. But I thought it was important to get the word out&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/soc-content-recommedation-engine&quot;&gt;SoC 2006: Content Recommedation Engine&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/2435#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/717">Content Recommendation Engine</category>
 <category domain="http://groups.drupal.org/taxonomy/term/353">summer of code</category>
 <group domain="http://groups.drupal.org/soc-content-recommedation-engine">SoC 2006: Content Recommedation Engine</group>
 <pubDate>Thu, 18 Jan 2007 06:20:10 +0000</pubDate>
 <dc:creator>Scott Reynolds@drupal.org</dc:creator>
 <guid isPermaLink="false">2435 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Netflix releases dataset</title>
 <link>http://groups.drupal.org/node/1526</link>
 <description>&lt;p&gt;Netflix has released its dataset to the public in hopes of finding a new recommender system. &lt;a href=&#039;http://www.nytimes.com/2006/10/02/technology/02netflix.html?_r=2&amp;amp;oref=slogin&amp;amp;oref=slogin&#039;&gt; Here is NYT &lt;/a&gt; article (subs required: see bugmenot.com).&lt;/p&gt;
&lt;p&gt;Interesting news story at least. Perhaps I will spend a weekend and submit Slope One&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/soc-content-recommedation-engine&quot;&gt;SoC 2006: Content Recommedation Engine&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/1526#comments</comments>
 <group domain="http://groups.drupal.org/soc-content-recommedation-engine">SoC 2006: Content Recommedation Engine</group>
 <pubDate>Mon, 02 Oct 2006 16:46:57 +0000</pubDate>
 <dc:creator>Scott Reynolds@drupal.org</dc:creator>
 <guid isPermaLink="false">1526 at http://groups.drupal.org</guid>
</item>
<item>
 <title>VotingAPI points system</title>
 <link>http://groups.drupal.org/node/1442</link>
 <description>&lt;p&gt;Alright,&lt;/p&gt;
&lt;p&gt;There is a feature request in the queue for this. &lt;a href=&quot;http://drupal.org/node/85360&quot; title=&quot;http://drupal.org/node/85360&quot;&gt;http://drupal.org/node/85360&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here is a quote on my plan: &lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
Sorry awefully cryptic, but essentially, User1 liked Node A. The average difference between Node A and Node D is .14. Average Difference between Node A and Node B is .25. Therefore, if User1 hasnt voted on Node D, he is more likely to like Node D then Node B. Thats the plan, and its not quiete the same algorithm as with percentage, though very close.&lt;/p&gt;
&lt;p&gt;The difference between perctange and points is that a user doesn&#039;t have really have an &#039;average vote&#039; that could be used to personalize the recommendations. It has instead a bipolar system (like or dislike). So in a sense, it is actually considerably less computationally intense.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Now, I havent commited anything to code yet. I have to set up a development system with up/down and the like. But this is my idea. But I am very open to other opinions.&lt;/p&gt;
&lt;p&gt;I plan on making percentage and points a seprate query type (i.e. part of the same radio functions that determine fast/accurate query).&lt;/p&gt;
&lt;p&gt;Again, i would like to implement this for e-commerce as well so that whenever someone buys a product it gets a VotingAPI +1 point.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/soc-content-recommedation-engine&quot;&gt;SoC 2006: Content Recommedation Engine&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/1442#comments</comments>
 <group domain="http://groups.drupal.org/soc-content-recommedation-engine">SoC 2006: Content Recommedation Engine</group>
 <pubDate>Fri, 22 Sep 2006 16:38:06 +0000</pubDate>
 <dc:creator>Scott Reynolds@drupal.org</dc:creator>
 <guid isPermaLink="false">1442 at http://groups.drupal.org</guid>
</item>
<item>
 <title>New version is up</title>
 <link>http://groups.drupal.org/node/1368</link>
 <description>&lt;p&gt;I have updated Node Recommmendation to fix some bugs in the page callback and to use teasers instead of a item list to list recommended nodes on the page. My hope of course is that node recommendation page becomes the front page of many drupal sites.&lt;/p&gt;
&lt;p&gt;Summer of Code is offically over but I do intend to keep this list semi-updated with work on the recommendation engine. There are several different things I will be expanding the project to do. I plan on setting it up for VotingAPI&#039;s point system. And then writing a module that will work with e-commerce to add a VotingAPI &#039;point&#039; to each purchase. This of course would allow the engine to draw relationships between content based on who bought what. (Which I think is particalarly cool and interesting).&lt;/p&gt;
&lt;p&gt;&lt;em&gt;done&lt;/em&gt;Though my immediate first step is to change the &#039;date&#039; functionality of node_recommendation module. Robert Douglass sugguested that I add the functionality to set it up so it recommends content that is less then a week old and etc which of course makes perfect sense. &lt;em&gt;done&lt;/em&gt; 9/11&lt;/p&gt;
&lt;p&gt;And of course, I swear at some point I am goin to sit down and write out the views stuff.&lt;/p&gt;
&lt;p&gt;Please let me know if you are still using the engine, and if not what is holding you back from using it&lt;/p&gt;
&lt;p&gt;Scott&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/soc-content-recommedation-engine&quot;&gt;SoC 2006: Content Recommedation Engine&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/1368#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/461">Content Recommedation Engine</category>
 <category domain="http://groups.drupal.org/taxonomy/term/353">summer of code</category>
 <group domain="http://groups.drupal.org/soc-content-recommedation-engine">SoC 2006: Content Recommedation Engine</group>
 <pubDate>Sat, 09 Sep 2006 00:49:52 +0000</pubDate>
 <dc:creator>Scott Reynolds@drupal.org</dc:creator>
 <guid isPermaLink="false">1368 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Install Instructions and NEW RECOMENDATION MODULE!</title>
 <link>http://groups.drupal.org/node/1231</link>
 <description>&lt;h2&gt;Install instructions&lt;/h2&gt;
&lt;p&gt;Simply &lt;a href=&#039;http://drupal.org/project/cre&#039;&gt;download&lt;/a&gt; the project and place all modules within the /modules subdirectory.&lt;br /&gt;
Please make sure that you have downloaded BOTH &lt;a href=&#039;http://drupal.org/project/votingapi&#039;&gt;VotingAPI&lt;/a&gt; and some voting module (for example: &lt;a href=&#039;http://drupal.org/node/42905&#039;&gt;SimpleVote&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;And then turn them on!&lt;/p&gt;
&lt;h4&gt;To use SimpleVote on comments&lt;/h4&gt;
&lt;p&gt;Add this function to SimpleVote.module&lt;br /&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;&lt;span style=&quot;color: #000000&quot;&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&amp;lt;?php&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;function &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;simplevote_comment&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$comment&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$op&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;) {&lt;br /&gt;switch (&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$op&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;) {&lt;br /&gt;case &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;view&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;:&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$comment&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;comment &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;theme&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;simplevote_widget&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$comment&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;cid&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;comment&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;) . &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$comment&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;comment&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;;&lt;br /&gt;break;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;To install over existing VotingAPI data please make sure cron runs are enabled. As existing voting data is processed via cron.&lt;/p&gt;
&lt;h2&gt;user_recommendation.module&lt;/h2&gt;
&lt;p&gt;Not your standard recommendation module no! It recommends users&lt;br /&gt;
&lt;strong&gt;So the general idea, to recommend a user because you might like what that user likes. &lt;/strong&gt;&lt;/p&gt;
&lt;h4&gt;Alogrithm&lt;/h4&gt;
&lt;p&gt;First we want the difference between the averages of the current user and all other users.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;SELECT a.uid as &#039;current_user&#039;, a2.uid as &#039;sugguested_user&#039;, a.sum/a.count as &#039;current_average&#039;, a2.sum/a2.count as      
&#039;sugguested_average&#039;,ABS((a.sum/a.count)-(a2.sum/a2.count)) as &#039;avg_diff&#039; FROM cre_average_vote a, cre_average_vote a2 WHERE 
a.uid &amp;lt;&amp;gt; a2.uid AND a.uid=2 ORDER BY avg_diff;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Next, we want to use a count of votes that were cast for the same piece of content to weight the &#039;avg_diff&#039; between the two users&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT COUNT(*) FROM votingapi_vote r, votingapi_vote r2 WHERE r.uid = 2 AND r2.uid = 3 AND abs( r.value-r2.value) &amp;lt;= 20; &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Here I used a difference of 20 percentage points. This difference is what determines what votes are revelant. Any vote that is on the same piece of content BUT the difference between user1&#039;s vote and user2&#039;s vote is MORE THAN 20, it doesnt get counted.&lt;/p&gt;
&lt;p&gt;So combining those two sql statements into one HUGE SQL statement&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
    SELECT COUNT(&lt;em&gt;) as &#039;count&#039;, a.uid as &#039;current_user&#039;, a2.uid as &#039;sugguested_user&#039;, a.sum/a.count as &#039;current_average&#039;,a2.sum/a2.count&lt;br /&gt;
    as &#039;sugguested_average&#039;,ABS((a.sum/a.count)-(a2.sum/a2.count)) as &#039;avg_diff&#039;,ABS((a.sum/a.count)-( a2.sum/a2.count)) / count(&lt;/em&gt;) as&lt;br /&gt;
    &#039;score&#039; from votingapi_vote r, votingapi_vote r2,cre_average_vote a, cre_average_vote a2 where r.uid = a.uid AND r2.uid = a2.uid AND&lt;br /&gt;
    abs(r.value-r2.value) &amp;lt;= 20 AND a.uid &amp;lt;&amp;gt; a2.uid AND a.uid=2 GROUP BY avg_diff ORDER BY score ASC; &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;score is calculated by taking the avg_diff and dividing it by the number of revelant votes (votes cast on the same piece of content whos difference was less then or equal to 20). Obviosuly, all those columns are not needed in the final module, they are there because they helped me better understand what I was playing with and I hope they help you understand.&lt;/p&gt;
&lt;p&gt;_user_recommendation_user_to_user($uid) is a function that will return a db_result object for the big query ^ It is a great way to tie your module into recommended users&lt;/p&gt;
&lt;p&gt;Please Thoughts? Sugguestions? Criticisms?&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/soc-content-recommedation-engine&quot;&gt;SoC 2006: Content Recommedation Engine&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/1231#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/717">Content Recommendation Engine</category>
 <category domain="http://groups.drupal.org/taxonomy/term/73">Google</category>
 <category domain="http://groups.drupal.org/taxonomy/term/718">SoC2006</category>
 <category domain="http://groups.drupal.org/taxonomy/term/353">summer of code</category>
 <group domain="http://groups.drupal.org/soc-content-recommedation-engine">SoC 2006: Content Recommedation Engine</group>
 <pubDate>Wed, 16 Aug 2006 00:26:42 +0000</pubDate>
 <dc:creator>Scott Reynolds@drupal.org</dc:creator>
 <guid isPermaLink="false">1231 at http://groups.drupal.org</guid>
</item>
<item>
 <title>New Release Brings cre_query_obj and comment_recommendation.module</title>
 <link>http://groups.drupal.org/node/1153</link>
 <description>&lt;p&gt;Just released new version. Included in the this release is the new-fangled cre query object and comment_recommendation.module which recommends comments within the current node being viewed.&lt;/p&gt;
&lt;p&gt;The object allows for joining on any table. Please remember to use {} and a name to identify your table.&lt;/p&gt;
&lt;p&gt;For instance node_recommendation does this:&lt;br /&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;&lt;span style=&quot;color: #000000&quot;&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&amp;lt;?php&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;function &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;node_recommendation_cre_query &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$query&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$query&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;add_table&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&quot;{node} n&quot;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$query&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;add_column&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&quot;n.title&quot;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$query&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;add_where&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&quot;n.nid=d.content_id1&quot;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/soc-content-recommedation-engine&quot;&gt;SoC 2006: Content Recommedation Engine&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/1153#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/461">Content Recommedation Engine</category>
 <category domain="http://groups.drupal.org/taxonomy/term/73">Google</category>
 <category domain="http://groups.drupal.org/taxonomy/term/72">SoC</category>
 <category domain="http://groups.drupal.org/taxonomy/term/74">SoC 2006</category>
 <group domain="http://groups.drupal.org/soc-content-recommedation-engine">SoC 2006: Content Recommedation Engine</group>
 <pubDate>Mon, 07 Aug 2006 05:56:30 +0000</pubDate>
 <dc:creator>Scott Reynolds@drupal.org</dc:creator>
 <guid isPermaLink="false">1153 at http://groups.drupal.org</guid>
</item>
<item>
 <title>NEW VERSION RELEASED</title>
 <link>http://groups.drupal.org/node/1108</link>
 <description>&lt;p&gt;Ok major speed fixes. Redid the query compeletly and added a average user vote table. This allows for the movelens database to run MUCH MUCH MUCH MUCH FASTER. I will begin testing it later this week and give back some scores that should be interesting. Try running the update script for me. I did not test it out and I am worried that I didn&#039;t write it properly (my first update() :-D ).&lt;/p&gt;
&lt;p&gt;Still working on creating a query object that will prevent the one issue that is in the queue right now. More to come soon...&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://drupal.org/project/cre&quot; title=&quot;http://drupal.org/project/cre&quot;&gt;http://drupal.org/project/cre&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Scott&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/soc-content-recommedation-engine&quot;&gt;SoC 2006: Content Recommedation Engine&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/1108#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/461">Content Recommedation Engine</category>
 <category domain="http://groups.drupal.org/taxonomy/term/73">Google</category>
 <category domain="http://groups.drupal.org/taxonomy/term/72">SoC</category>
 <category domain="http://groups.drupal.org/taxonomy/term/74">SoC 2006</category>
 <group domain="http://groups.drupal.org/soc-content-recommedation-engine">SoC 2006: Content Recommedation Engine</group>
 <pubDate>Mon, 31 Jul 2006 18:49:34 +0000</pubDate>
 <dc:creator>Scott Reynolds@drupal.org</dc:creator>
 <guid isPermaLink="false">1108 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Movielens Database DRUPALIZED!`</title>
 <link>http://groups.drupal.org/node/1052</link>
 <description>&lt;p&gt;OK,&lt;/p&gt;
&lt;p&gt;Finally finished it. Their happens to be a permission problem still though. Users not uid=1 will not be able to view the node that is recommended or access the recommendations page. Pretty sure you can fix that in the admin panel but havent done that yet. If any can shed some light on it please do. Here is where you can find the stuff: &lt;a href=&quot;http://scottreynolds.us/Downloads/movielenssql.tar.gz&quot; title=&quot;http://scottreynolds.us/Downloads/movielenssql.tar.gz&quot;&gt;http://scottreynolds.us/Downloads/movielenssql.tar.gz&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;100k movielens is not done, it is in a different file format thereby requiring a different program.&lt;br /&gt;
Info from readme file: &lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;These files contain 1,000,209 anonymous ratings of approximately 3,900 movies&lt;br /&gt;
made by 6,040 MovieLens users who joined MovieLens in 2000.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Please remember then when using this to test the module it takes MANY MANY cron runs to fully install the module it. Please play with the settings in admin/settings/cre to adjust the number of votes and report any findings (PLEASE!).&lt;/p&gt;
&lt;h3&gt;Info on the java program&lt;/h3&gt;
&lt;p&gt;The program itself generates .sql files. There are 3 classes and each generate their repesective .sql files (users.sql, movies.sql, votes.sql). Testcases.txt is a selection of randomly selected votes that WERE NOT added to the database. These should be used to check the alogrithm. To adjust the number of test cases you must adjust the % chance of being selected. That decimal is located at line 56 column 74 in the votes.java file  ( I know it should be a commandline option... i just forgot to implement). Please make sure you use the .dat files located in the root of my sandbox and not in the movielens1mill folder. I had to alter movies.dat because of conjunctions like &quot;You&#039;re&quot; would mess up the sql statement.&lt;/p&gt;
&lt;p&gt;Program was created using NetBeans IDE so there is an ANT script as well. In the dist folder there is a jar file.&lt;/p&gt;
&lt;p&gt;Of course please remember the votes.sql is HUGE! and it should take awhile to download. Any performance issuses and sugguestions are welcome.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/soc-content-recommedation-engine&quot;&gt;SoC 2006: Content Recommedation Engine&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/1052#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/461">Content Recommedation Engine</category>
 <category domain="http://groups.drupal.org/taxonomy/term/86">Drupal</category>
 <category domain="http://groups.drupal.org/taxonomy/term/73">Google</category>
 <category domain="http://groups.drupal.org/taxonomy/term/353">summer of code</category>
 <category domain="http://groups.drupal.org/taxonomy/term/358">summerofcode</category>
 <group domain="http://groups.drupal.org/voting-systems">Voting Systems</group>
 <group domain="http://groups.drupal.org/soc-content-recommedation-engine">SoC 2006: Content Recommedation Engine</group>
 <pubDate>Sat, 22 Jul 2006 17:03:43 +0000</pubDate>
 <dc:creator>Scott Reynolds@drupal.org</dc:creator>
 <guid isPermaLink="false">1052 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Committed to contrib</title>
 <link>http://groups.drupal.org/node/1013</link>
 <description>&lt;p&gt;Ok did my first commit of the modules (with README and API documentation) into contrib/modules/cre. The links in the welcome message are updated of course.&lt;/p&gt;
&lt;h1&gt;NEW INSTALL METHOD&lt;/h1&gt;
&lt;p&gt;The install method now, runs through intitially as usual but only processes a limit number of votes. It then waits to process the rest of the votes once cron.php gets called again EDIT: cron only installs a certain number of votes each cron run. Thereby, lengthing the install process over several cron runs instead of one _install() call which crashes and never completes.&lt;/p&gt;
&lt;p&gt;This is done this way so that large EXISTING votingapi datasets can be utilized. PHP only has a limited about of &#039;user&#039; space, and because the amount of data involved in this module is N*N where N is the number of voted content, it gets rather large, and becomes a whole lot of DB queries. I am open for better solutions, mostly cause I don&#039;t particularlly like this one.&lt;/p&gt;
&lt;p&gt;I have been meaning to post the &#039;drupalized&#039; verisions of the movielens database.&lt;/p&gt;
&lt;p&gt;Views intergration is coming, though it will be more complicated then I expected.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/soc-content-recommedation-engine&quot;&gt;SoC 2006: Content Recommedation Engine&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/1013#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/461">Content Recommedation Engine</category>
 <category domain="http://groups.drupal.org/taxonomy/term/353">summer of code</category>
 <group domain="http://groups.drupal.org/soc-content-recommedation-engine">SoC 2006: Content Recommedation Engine</group>
 <pubDate>Sun, 16 Jul 2006 07:51:23 +0000</pubDate>
 <dc:creator>Scott Reynolds@drupal.org</dc:creator>
 <guid isPermaLink="false">1013 at http://groups.drupal.org</guid>
</item>
<item>
 <title>large dataset</title>
 <link>http://groups.drupal.org/node/831</link>
 <description>&lt;p&gt;Wondering what datasets you have available for testing?&lt;/p&gt;
&lt;p&gt;There are two datasets for film here,&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.grouplens.org/&quot; title=&quot;http://www.grouplens.org/&quot;&gt;http://www.grouplens.org/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;richard&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/soc-content-recommedation-engine&quot;&gt;SoC 2006: Content Recommedation Engine&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/831#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/493">dataset movies xml</category>
 <group domain="http://groups.drupal.org/soc-content-recommedation-engine">SoC 2006: Content Recommedation Engine</group>
 <pubDate>Tue, 20 Jun 2006 18:39:36 +0000</pubDate>
 <dc:creator>schavester</dc:creator>
 <guid isPermaLink="false">831 at http://groups.drupal.org</guid>
</item>
<item>
 <title>New version up in my sandbox</title>
 <link>http://groups.drupal.org/node/778</link>
 <description>&lt;p&gt;New modules are up. Lots of changes to cre. Including new table name and new table format. It is setup now to be able to recommend any content(user, comments, developer defined, nodes).&lt;/p&gt;
&lt;p&gt;And I would also like to pose a question for discussion....&lt;/p&gt;
&lt;p&gt;When recommending some piece of content (whether a node, comment, user etc...) does the alogrithm only recommend based on content that is the same type? so when recommending a node, only use similarity matrix referencing content that is both the same type. Thats not making much sense typing it out but here is an example.&lt;/p&gt;
&lt;p&gt;Johny is a user. The site is recommending both nodes and users. The block for &#039;Johny&#039;s recommended users&#039; should be populated based only similarities between user and user votes or similarities between BOTH user to user and user to node. Should this be up to user level module (node_recommendation)?&lt;/p&gt;
&lt;p&gt;So the new cre_similarity_matrix (new name btw. Like it tons better) would have two additional fields content_type1, and content_type2. Or if we do not want to do similarities between  both user and user and user to node, then it would have one additional field, content_type, that would hold the content_type of both content_id1 and content_id2.&lt;/p&gt;
&lt;p&gt;Here is the new table structure to help clear up this cryptic message....&lt;br /&gt;
db_query(&quot;CREATE TABLE {cre_similarity_matrix}(&lt;br /&gt;
        content_id1 int(10) NOT NULL DEFAULT 0,&lt;br /&gt;
        content_id2 int(10) NOT NULL DEFAULT 0,&lt;br /&gt;
        content_type1 varchar(20) default NULL,&lt;br /&gt;
        content_type2 varchar(20) default NULL,&lt;br /&gt;
        count int(10) NOT NULL DEFAULT 0,&lt;br /&gt;
        sum int(10) NOT NULL DEFAULT 0,&lt;br /&gt;
        PRIMARY KEY (content_id1, content_id2)&lt;br /&gt;
        ) /*!40100 DEFAULT CHARACTER SET utf8 */;&quot;);&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/soc-content-recommedation-engine&quot;&gt;SoC 2006: Content Recommedation Engine&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/778#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/461">Content Recommedation Engine</category>
 <category domain="http://groups.drupal.org/taxonomy/term/462">cre</category>
 <category domain="http://groups.drupal.org/taxonomy/term/86">Drupal</category>
 <group domain="http://groups.drupal.org/soc-content-recommedation-engine">SoC 2006: Content Recommedation Engine</group>
 <pubDate>Thu, 15 Jun 2006 00:08:21 +0000</pubDate>
 <dc:creator>Scott Reynolds@drupal.org</dc:creator>
 <guid isPermaLink="false">778 at http://groups.drupal.org</guid>
</item>
<item>
 <title>up and running</title>
 <link>http://groups.drupal.org/node/765</link>
 <description>&lt;p&gt;just installed the module, and it looks good.&lt;/p&gt;
&lt;p&gt;going to fill up the database more with some ratings in the next few days.&lt;/p&gt;
&lt;p&gt;richard&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/soc-content-recommedation-engine&quot;&gt;SoC 2006: Content Recommedation Engine&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/765#comments</comments>
 <group domain="http://groups.drupal.org/soc-content-recommedation-engine">SoC 2006: Content Recommedation Engine</group>
 <pubDate>Wed, 14 Jun 2006 03:34:43 +0000</pubDate>
 <dc:creator>schavester</dc:creator>
 <guid isPermaLink="false">765 at http://groups.drupal.org</guid>
</item>
</channel>
</rss>
