<div dir="ltr">In case you need more working memories you could do snapshots -&nbsp;<a href="http://blog.athico.com/2008/05/efficient-binary-protocol-marshalling.html">http://blog.athico.com/2008/05/efficient-binary-protocol-marshalling.html</a><div>
<br></div><div>Regards,</div><div>Michal<br><br><div class="gmail_quote">On Thu, Oct 9, 2008 at 10:32 PM, Evans, Jess <span dir="ltr">&lt;<a href="mailto:JEvans@collegeboard.org">JEvans@collegeboard.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">





<div lang="EN-US" vlink="purple" link="blue">
<div dir="ltr" align="left"><span><font face="Arial" color="#0000ff" size="2">Thanks for the confirmation.&nbsp; I think it should be 
straightforward to implement a parser as you suggest&nbsp;to populate 
a&nbsp;list of java beans and assert them to the working memory.&nbsp; I&#39;m just 
surprised that this doesn&#39;t already exist.</font></span></div>
<div dir="ltr" align="left"><span><font face="Arial" color="#0000ff" size="2"></font></span>&nbsp;</div>
<div dir="ltr" align="left"><span><font face="Arial" color="#0000ff" size="2">May I ask how you manage the working memory?&nbsp; It looks 
like you can&#39;t clone&nbsp;or snapshot a&nbsp;working memory.&nbsp; So, you must 
either assert all the default facts in a new working memory for every user 
session/request or use a shared synchronized working memory.&nbsp; I&#39;m building 
a web based wizard calculator with around 10k default immutable facts.&nbsp; 
It&#39;s taking almost 800ms to assert and fire to reach an initial state, so I&#39;m 
planning on sharing one synchronized session.&nbsp; Is this a reasonable 
approach or am I off my rocker?</font></span></div>
<div dir="ltr" align="left"><span><font face="Arial" color="#0000ff" size="2"></font></span>&nbsp;</div>
<div dir="ltr" align="left"><span><font face="Arial" color="#0000ff" size="2">Cheers,</font></span></div>
<div dir="ltr" align="left"><span><font face="Arial" color="#0000ff" size="2"></font></span>&nbsp;</div>
<div dir="ltr" align="left"><span><font face="Arial" color="#0000ff" size="2">-Jess</font></span></div><br>
<div lang="en-us" dir="ltr" align="left">
<hr>
<font face="Tahoma" size="2"><b>From:</b> <a href="mailto:rules-users-bounces@lists.jboss.org" target="_blank">rules-users-bounces@lists.jboss.org</a> 
[mailto:<a href="mailto:rules-users-bounces@lists.jboss.org" target="_blank">rules-users-bounces@lists.jboss.org</a>] <b>On Behalf Of </b>Vikrant 
Yagnick<br><b>Sent:</b> Thursday, October 09, 2008 2:45 PM<br><b>To:</b> Rules 
Users List<br><b>Subject:</b> [rules-users] RE: fact base 
storage?<br></font><br></div>
<div></div>
<div>
<p><span style="font-size:11pt;color:#1f497d">Hi 
Jess,</span></p>
<p><span style="font-size:11pt;color:#1f497d">&nbsp;</span></p>
<p><span style="font-size:11pt;color:#1f497d">I 
am facing the same problem right now. While, I do not know of any OOTB ways to 
do this, I initially implemented an all rule solution.</span></p>
<p><span style="font-size:11pt;color:#1f497d">In 
my case, I had a lookup table that based on a age or gender got a rate or some 
value.</span></p>
<p><span style="font-size:11pt;color:#1f497d">&nbsp;</span></p>
<p><span style="font-size:11pt;color:#1f497d">Using 
some Excel Trickery, I got the 2 dimensional table into&nbsp; one dimensional 
columns of the type:</span></p>
<p><span style="font-size:11pt;color:#1f497d">Age 
Gender&nbsp;&nbsp; Value</span></p>
<p><span style="font-size:11pt;color:#1f497d">Age 
and Gender became conditions and Value became the Action.</span></p>
<p><span style="font-size:11pt;color:#1f497d">&nbsp;</span></p>
<p><span style="font-size:11pt;color:#1f497d">In 
your case, you could form a column with a dummy LHS(1=1) and keep all the 
columns as Action Columns.</span></p>
<p><span style="font-size:11pt;color:#1f497d">In 
each Action Column you could build up your Fact.</span></p>
<p><span style="font-size:11pt;color:#1f497d">&nbsp;</span></p>
<p><span style="font-size:11pt;color:#1f497d">For 
Example you could do the following:</span></p>
<p><span style="font-size:11pt;color:#1f497d">&nbsp;</span></p>
<p><span style="font-size:11pt;color:#1f497d">Fact{ 
int a; int b;</span></p>
<p><span style="font-size:11pt;color:#1f497d">}</span></p>
<p><span style="font-size:11pt;color:#1f497d">Condition 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
Action&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
Action</span></p>
<p><span style="font-size:11pt;color:#1f497d">F: 
Fact </span></p>
<p><span style="font-size:11pt;color:#1f497d">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
f.set($1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
f.set($1)</span></p>
<p><span style="font-size:11pt;color:#1f497d">Eval(true)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
Col 
A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
Col B</span></p>
<p><span style="font-size:11pt;color:#1f497d">Dummy 
Value 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;values for a&gt;&nbsp;&nbsp;&nbsp; &lt;values for 
b&gt;</span></p>
<p><span style="font-size:11pt;color:#1f497d">&nbsp;</span></p>
<p><span style="font-size:11pt;color:#1f497d">If 
you generate a rule base out of this, it should load your tables straight as 
facts.</span></p>
<p><span style="font-size:11pt;color:#1f497d">&nbsp;</span></p>
<p><span style="font-size:11pt;color:#1f497d">However, 
do note, that I did some rather Q&amp;D benchmarks for this and soon realized 
that the rulebase size and memory usage was getting really large. (Especially 
the PermGen Size).</span></p>
<p><span style="font-size:11pt;color:#1f497d">&nbsp;</span></p>
<p><span style="font-size:11pt;color:#1f497d">You 
may want to have a look at the memory usage, in case you need to load a large 
number of tables. Due, to the above(and other reasons), I just wrote a custom 
parser using JXL (The same Excel Library Drools uses for Parsing Excels). It is 
really neat and would make a simple solution.</span></p>
<p><span style="font-size:11pt;color:#1f497d">&nbsp;</span></p>
<p><span style="font-size:11pt;color:#1f497d">&nbsp;</span></p>
<p><span style="font-size:11pt;color:#1f497d">In, 
case you get another solution do post it to the list.</span></p>
<p><span style="font-size:11pt;color:#1f497d">&nbsp;</span></p>
<p><span style="font-size:11pt;color:#1f497d">Cheers,</span></p>
<p><span style="font-size:11pt;color:#1f497d">Vikrant 
</span></p>
<p><span style="font-size:11pt;color:#1f497d">&nbsp;</span></p>
<p><span style="font-size:11pt;color:#1f497d">&nbsp;</span></p>
<p><span style="font-size:11pt;color:#1f497d">&nbsp;</span></p>
<p><span style="font-size:11pt;color:#1f497d">&nbsp;</span></p>
<p><span style="font-size:11pt;color:#1f497d">&nbsp;</span></p>
<p><span style="font-size:11pt;color:#1f497d">&nbsp;</span></p>
<p><span style="font-size:11pt;color:#1f497d">&nbsp;</span></p>
<div>
<div style="border-right:medium none;padding-right:0in;border-top:#b5c4df 1pt solid;padding-left:0in;padding-bottom:0in;border-left:medium none;padding-top:3pt;border-bottom:medium none">
<p><b><span style="font-size:10pt">From:</span></b><span style="font-size:10pt"> 
<a href="mailto:rules-users-bounces@lists.jboss.org" target="_blank">rules-users-bounces@lists.jboss.org</a> [mailto:<a href="mailto:rules-users-bounces@lists.jboss.org" target="_blank">rules-users-bounces@lists.jboss.org</a>] 
<b>On Behalf Of </b>Evans, Jess<br><b>Sent:</b> Thursday, October 09, 2008 11:54 
PM<br><b>To:</b> <a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a><br><b>Subject:</b> [rules-users] 
fact base storage?</span></p></div></div>
<p>&nbsp;</p>
<div>
<p><span style="font-size:10pt">I&#39;m trying to come up 
to speed on the drools capabilities.&nbsp; I see that drools supports loading 
rules from a decision table in a spreadsheet.&nbsp; I have a set of conversion 
tables that I&#39;d like to represent as facts asserted when the rule base has been 
loaded, but before processing user requests.&nbsp; I could always model lookup 
tables&nbsp;in a database, but I&#39;d rather not have to build the CRUD interface 
to manage them.&nbsp; I&#39;d rather represent them so that each row in a 
spreadsheet represents a fact (based upon a predefined java bean).&nbsp; Of 
course, I could custom implement this functionality.&nbsp; However, I was 
wondering if drools supports some OOTB means of loading facts from Excel or 
other resource?</span></p></div>
<div>
<p>&nbsp;</p></div>
<div>
<p><span style="font-size:10pt">thanks,</span></p></div>
<div>
<p>&nbsp;</p></div>
<div>
<p><span style="font-size:10pt">-Jess</span></p></div>
<p style="margin-bottom:12pt">&nbsp;</p>
<table style="background:white" cellpadding="0" border="0">
  <tbody>
  <tr>
    <td style="padding-right:0.75pt;padding-left:0.75pt;padding-bottom:0.75pt;padding-top:0.75pt"></td></tr></tbody></table>
<p>&nbsp;</p></div><br><br>
<table style="color:black" bgcolor="white">
  <tbody>
  <tr>
    <td><br>MASTEK&nbsp;LTD.<br>Mastek&nbsp;is&nbsp;in&nbsp;NASSCOM&#39;s&nbsp;&#39;India&nbsp;Top&nbsp;20&#39;&nbsp;Software&nbsp;Service&nbsp;Exporters&nbsp;List.<br>In&nbsp;the&nbsp;US,&nbsp;we&#39;re&nbsp;called&nbsp;MAJESCOMASTEK<br><br>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
Opinions&nbsp;expressed&nbsp;in&nbsp;this&nbsp;e-mail&nbsp;are&nbsp;those&nbsp;of&nbsp;the&nbsp;individual&nbsp;and&nbsp;not&nbsp;that&nbsp;of&nbsp;Mastek&nbsp;Limited,&nbsp;unless&nbsp;specifically&nbsp;indicated&nbsp;to&nbsp;that&nbsp;effect.&nbsp;Mastek&nbsp;Limited&nbsp;does&nbsp;not&nbsp;accept&nbsp;any&nbsp;responsibility&nbsp;or&nbsp;liability&nbsp;for&nbsp;it.&nbsp;This&nbsp;e-mail&nbsp;and&nbsp;attachments&nbsp;(if&nbsp;any)&nbsp;transmitted&nbsp;with&nbsp;it&nbsp;are&nbsp;confidential&nbsp;and/or&nbsp;privileged&nbsp;and&nbsp;solely&nbsp;for&nbsp;the&nbsp;use&nbsp;of&nbsp;the&nbsp;intended&nbsp;person&nbsp;or&nbsp;entity&nbsp;to&nbsp;which&nbsp;it&nbsp;is&nbsp;addressed.&nbsp;Any&nbsp;review,&nbsp;re-transmission,&nbsp;dissemination&nbsp;or&nbsp;other&nbsp;use&nbsp;of&nbsp;or&nbsp;taking&nbsp;of&nbsp;any&nbsp;action&nbsp;in&nbsp;reliance&nbsp;upon&nbsp;this&nbsp;information&nbsp;by&nbsp;persons&nbsp;or&nbsp;entities&nbsp;other&nbsp;than&nbsp;the&nbsp;intended&nbsp;recipient&nbsp;is&nbsp;prohibited.&nbsp;This&nbsp;e-mail&nbsp;and&nbsp;its&nbsp;attachments&nbsp;have&nbsp;been&nbsp;scanned&nbsp;for&nbsp;the&nbsp;presence&nbsp;of&nbsp;computer&nbsp;viruses.&nbsp;It&nbsp;is&nbsp;the&nbsp;responsibility&nbsp;of&nbsp;the&nbsp;recipient&nbsp;to&nbsp;run&nbsp;the&nbsp;virus&nbsp;check&nbsp;on&nbsp;e-mails&nbsp;and&nbsp;attachments&nbsp;before&nbsp;opening&nbsp;them.&nbsp;If&nbsp;you&nbsp;have&nbsp;received&nbsp;this&nbsp;e-mail&nbsp;in&nbsp;error,&nbsp;kindly&nbsp;delete&nbsp;this&nbsp;e-mail&nbsp;from&nbsp;desktop&nbsp;and&nbsp;server.<br>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br></td></tr></tbody></table></div>
<br>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br></blockquote></div><br></div></div>