<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-5869426.post6587396855337090223..comments</id><updated>2008-10-29T17:52:42.262Z</updated><title type='text'>Comments on Drools - Business Logic integration Platform: Symmetrical and Asymmetrical Rete</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.athico.com/feeds/6587396855337090223/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5869426/6587396855337090223/comments/default'/><link rel='alternate' type='text/html' href='http://blog.athico.com/2008/10/symmetrical-and-asymmetrical-rete.html'/><author><name>Mark Proctor</name><uri>http://www.blogger.com/profile/03304277188725220501</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5869426.post-1421253113710752618</id><published>2008-10-29T17:52:42.262Z</published><updated>2008-10-29T17:52:42.262Z</updated><title type='text'>thanks for giving a great description of how it wo...</title><content type='html'>thanks for giving a great description of how it works in 6.3. My memory of RETE/UL paper is a bit foggy, but it sounds similar to what you have in 6.3.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5869426/6587396855337090223/comments/default/1421253113710752618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5869426/6587396855337090223/comments/default/1421253113710752618'/><link rel='alternate' type='text/html' href='http://blog.athico.com/2008/10/symmetrical-and-asymmetrical-rete.html?showComment=1225302762262#c1421253113710752618' title=''/><author><name>woolfel</name><uri>http://www.blogger.com/profile/13814445471254728002</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.athico.com/2008/10/symmetrical-and-asymmetrical-rete.html' ref='tag:blogger.com,1999:blog-5869426.post-6587396855337090223' source='http://www.blogger.com/feeds/5869426/posts/default/6587396855337090223' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-5869426.post-2056823236317747380</id><published>2008-10-28T00:29:50.165Z</published><updated>2008-10-28T00:29:50.165Z</updated><title type='text'>In CLIPS, retract prior to 6.3 was asymmetric in t...</title><content type='html'>In CLIPS, retract prior to 6.3 was asymmetric in that join tests did not have to be performed, but the partial matches in the beta memories did need to be searched in order to find the ones referencing the partial match from the alpha memory currently being deleted. In 6.3, the partial matches have links to their children so it is no longer necessary to search the beta memories for the associated partial matches.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5869426/6587396855337090223/comments/default/2056823236317747380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5869426/6587396855337090223/comments/default/2056823236317747380'/><link rel='alternate' type='text/html' href='http://blog.athico.com/2008/10/symmetrical-and-asymmetrical-rete.html?showComment=1225153790165#c2056823236317747380' title=''/><author><name>Gary Riley</name><uri>http://www.blogger.com/profile/11146922677136720411</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.athico.com/2008/10/symmetrical-and-asymmetrical-rete.html' ref='tag:blogger.com,1999:blog-5869426.post-6587396855337090223' source='http://www.blogger.com/feeds/5869426/posts/default/6587396855337090223' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-5869426.post-7267282521907953597</id><published>2008-10-27T23:59:17.657Z</published><updated>2008-10-27T23:59:17.657Z</updated><title type='text'>thanks for clarifying that. Gary mentioned he was ...</title><content type='html'>thanks for clarifying that. Gary mentioned he was playing around with ways to improve joins for 6.3. He is a generous person as well as a great guy in general. you deserve credit for getting that work in drools 5.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5869426/6587396855337090223/comments/default/7267282521907953597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5869426/6587396855337090223/comments/default/7267282521907953597'/><link rel='alternate' type='text/html' href='http://blog.athico.com/2008/10/symmetrical-and-asymmetrical-rete.html?showComment=1225151957657#c7267282521907953597' title=''/><author><name>woolfel</name><uri>http://www.blogger.com/profile/13814445471254728002</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.athico.com/2008/10/symmetrical-and-asymmetrical-rete.html' ref='tag:blogger.com,1999:blog-5869426.post-6587396855337090223' source='http://www.blogger.com/feeds/5869426/posts/default/6587396855337090223' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-5869426.post-1148808589887334457</id><published>2008-10-27T19:10:30.192Z</published><updated>2008-10-27T19:10:30.192Z</updated><title type='text'>"done independently of CLIPS 6.3".Drools 3, the fi...</title><content type='html'>"done independently of CLIPS 6.3".&lt;BR/&gt;&lt;BR/&gt;Drools 3, the first full Rete Drools implementation, had a form of asymmetrical Rete which was written independently, as at the time I was not able to understand the Clips code. However I wasn't happy with the memory consumption so reverted Drools 4 to classical symmetrical Rete. Drools 5, with Gary's help, I was able to copy identically (at least I believe I did) how Clips manages it's data structures for the pattern matching process. Clips provided the missing technique that enabled me to do what I was trying to do with Drools 3.&lt;BR/&gt;&lt;BR/&gt;However I'm sure there is plenty here for you to draw your normal baseless and twisted conclusions with some fabricated information from the depths of your twisted mind and attack myself and the drools team - enjoy.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5869426/6587396855337090223/comments/default/1148808589887334457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5869426/6587396855337090223/comments/default/1148808589887334457'/><link rel='alternate' type='text/html' href='http://blog.athico.com/2008/10/symmetrical-and-asymmetrical-rete.html?showComment=1225134630192#c1148808589887334457' title=''/><author><name>Mark Proctor</name><uri>http://www.blogger.com/profile/03304277188725220501</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15419234988561967302'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.athico.com/2008/10/symmetrical-and-asymmetrical-rete.html' ref='tag:blogger.com,1999:blog-5869426.post-6587396855337090223' source='http://www.blogger.com/feeds/5869426/posts/default/6587396855337090223' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-5869426.post-8258645011353057811</id><published>2008-10-27T17:00:46.013Z</published><updated>2008-10-27T17:00:46.013Z</updated><title type='text'>I highly recommend Gary's and dr. forgy's presenta...</title><content type='html'>I highly recommend Gary's and dr. forgy's presentation. Congrats to gary and CLIPS on the excellent performance.&lt;BR/&gt;&lt;BR/&gt;Correct me if I'm wrong, but drools 5 asymmetric was done independently of CLIPS 6.3. This is mostly an academic question, but isn't the design and implementation of asymmetric in drools 5 totally different than clips 6.3?&lt;BR/&gt;&lt;BR/&gt;Since CLIPS uses linked list to begin with, doing asymmetric retract "should" a minor change. Is that correct gary?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5869426/6587396855337090223/comments/default/8258645011353057811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5869426/6587396855337090223/comments/default/8258645011353057811'/><link rel='alternate' type='text/html' href='http://blog.athico.com/2008/10/symmetrical-and-asymmetrical-rete.html?showComment=1225126846013#c8258645011353057811' title=''/><author><name>woolfel</name><uri>http://www.blogger.com/profile/13814445471254728002</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.athico.com/2008/10/symmetrical-and-asymmetrical-rete.html' ref='tag:blogger.com,1999:blog-5869426.post-6587396855337090223' source='http://www.blogger.com/feeds/5869426/posts/default/6587396855337090223' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-5869426.post-4248686652116946396</id><published>2008-10-27T09:08:53.293Z</published><updated>2008-10-27T09:08:53.293Z</updated><title type='text'>Ok. I'll wait for the Illation guys to include Dro...</title><content type='html'>Ok. I'll wait for the Illation guys to include Drools 5 in their benchmarks ;-)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5869426/6587396855337090223/comments/default/4248686652116946396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5869426/6587396855337090223/comments/default/4248686652116946396'/><link rel='alternate' type='text/html' href='http://blog.athico.com/2008/10/symmetrical-and-asymmetrical-rete.html?showComment=1225098533293#c4248686652116946396' title=''/><author><name>Johan Lindberg</name><uri>http://www.blogger.com/profile/13455767001846504270</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.athico.com/2008/10/symmetrical-and-asymmetrical-rete.html' ref='tag:blogger.com,1999:blog-5869426.post-6587396855337090223' source='http://www.blogger.com/feeds/5869426/posts/default/6587396855337090223' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-5869426.post-9218370375552492862</id><published>2008-10-27T00:29:27.006Z</published><updated>2008-10-27T00:29:27.006Z</updated><title type='text'>Johan: really don't know, will have to investigate...</title><content type='html'>Johan: really don't know, will have to investigate another day, as we have to get 5.0 out for the moment.&lt;BR/&gt;&lt;BR/&gt;Gary: heh, good point. I'll send Charles an email to see if he approves, or has more suitable terminology he would like us to use.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5869426/6587396855337090223/comments/default/9218370375552492862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5869426/6587396855337090223/comments/default/9218370375552492862'/><link rel='alternate' type='text/html' href='http://blog.athico.com/2008/10/symmetrical-and-asymmetrical-rete.html?showComment=1225067367006#c9218370375552492862' title=''/><author><name>Mark Proctor</name><uri>http://www.blogger.com/profile/03304277188725220501</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15419234988561967302'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.athico.com/2008/10/symmetrical-and-asymmetrical-rete.html' ref='tag:blogger.com,1999:blog-5869426.post-6587396855337090223' source='http://www.blogger.com/feeds/5869426/posts/default/6587396855337090223' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-5869426.post-1996608528232156059</id><published>2008-10-26T23:21:29.188Z</published><updated>2008-10-26T23:21:29.188Z</updated><title type='text'>Doh! We should have thought to ask Dr. Forgy how h...</title><content type='html'>Doh! We should have thought to ask Dr. Forgy how he would have named it. He mentioned in his talk that the rete algorithm had been designed with parallelism in mind, so perhaps there's a benefit to passing tokens for deletion in this regard. Ditto with what I've referred to as lazy computation of the not CE.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5869426/6587396855337090223/comments/default/1996608528232156059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5869426/6587396855337090223/comments/default/1996608528232156059'/><link rel='alternate' type='text/html' href='http://blog.athico.com/2008/10/symmetrical-and-asymmetrical-rete.html?showComment=1225063289188#c1996608528232156059' title=''/><author><name>Gary Riley</name><uri>http://www.blogger.com/profile/11146922677136720411</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.athico.com/2008/10/symmetrical-and-asymmetrical-rete.html' ref='tag:blogger.com,1999:blog-5869426.post-6587396855337090223' source='http://www.blogger.com/feeds/5869426/posts/default/6587396855337090223' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-5869426.post-5560822664488331219</id><published>2008-10-26T20:37:55.606Z</published><updated>2008-10-26T20:37:55.606Z</updated><title type='text'>Hi again.I'm sorry I was so unclear. I understand ...</title><content type='html'>Hi again.&lt;BR/&gt;&lt;BR/&gt;I'm sorry I was so unclear. I understand that there's still a difference in speed. I was actually more wondering about the "shape" of the line in the diagram. Would Drools 5 still get the same "slope" between 64 and 128 guests or has that improved due to the algorithm changes?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5869426/6587396855337090223/comments/default/5560822664488331219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5869426/6587396855337090223/comments/default/5560822664488331219'/><link rel='alternate' type='text/html' href='http://blog.athico.com/2008/10/symmetrical-and-asymmetrical-rete.html?showComment=1225053475606#c5560822664488331219' title=''/><author><name>Johan Lindberg</name><uri>http://www.blogger.com/profile/13455767001846504270</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.athico.com/2008/10/symmetrical-and-asymmetrical-rete.html' ref='tag:blogger.com,1999:blog-5869426.post-6587396855337090223' source='http://www.blogger.com/feeds/5869426/posts/default/6587396855337090223' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-5869426.post-3824129728612361636</id><published>2008-10-26T19:40:39.834Z</published><updated>2008-10-26T19:40:39.834Z</updated><title type='text'>While the main matching algorithm is the same, Cli...</title><content type='html'>While the main matching algorithm is the same, Clips is still substantially faster and uses less memory. After talking to Gary at the conference, there are still some more tweaks I can make but it's minor. The rest of the code is due to Java really - cost of Objects and GC and lack of pointers. We might be able to improve further if we remove some of the OO approaches we make, not sure. I think the next main gain for us will be to compile the network down to bytecode methods, so it's no longer interpreted. I have a POC for this for alpha nodes, just need to get it working and also do beta nodes too. The bytecode stuff will be collapsed into a few methods with little indirection, so it'll show about as fast as we can get on Java, so we'll get a better idea of the cost. But Clips has Tuple/Token/PartialMatch (name depends on which system you use) recycling and very simple pointer referencing which I believe gives it a huge boost, plus it's Tuples are structs with stack allocation.&lt;BR/&gt;&lt;BR/&gt;Long story short, no :)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5869426/6587396855337090223/comments/default/3824129728612361636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5869426/6587396855337090223/comments/default/3824129728612361636'/><link rel='alternate' type='text/html' href='http://blog.athico.com/2008/10/symmetrical-and-asymmetrical-rete.html?showComment=1225050039834#c3824129728612361636' title=''/><author><name>Mark Proctor</name><uri>http://www.blogger.com/profile/03304277188725220501</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15419234988561967302'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.athico.com/2008/10/symmetrical-and-asymmetrical-rete.html' ref='tag:blogger.com,1999:blog-5869426.post-6587396855337090223' source='http://www.blogger.com/feeds/5869426/posts/default/6587396855337090223' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-5869426.post-2077749295014218471</id><published>2008-10-26T18:38:32.700Z</published><updated>2008-10-26T18:38:32.700Z</updated><title type='text'>Hi Mark.So, does this mean that Drools 5 has simil...</title><content type='html'>Hi Mark.&lt;BR/&gt;&lt;BR/&gt;So, does this mean that Drools 5 has similar scalability performance as CLIPS 6.3 on, for example, the Ms Manners benchmark (see http://stage.illation.com.au/benchmarks/manners.2.html).</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5869426/6587396855337090223/comments/default/2077749295014218471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5869426/6587396855337090223/comments/default/2077749295014218471'/><link rel='alternate' type='text/html' href='http://blog.athico.com/2008/10/symmetrical-and-asymmetrical-rete.html?showComment=1225046312700#c2077749295014218471' title=''/><author><name>Johan Lindberg</name><uri>http://www.blogger.com/profile/13455767001846504270</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.athico.com/2008/10/symmetrical-and-asymmetrical-rete.html' ref='tag:blogger.com,1999:blog-5869426.post-6587396855337090223' source='http://www.blogger.com/feeds/5869426/posts/default/6587396855337090223' type='text/html'/></entry></feed>