Some remarks to put things right, see below.<br><br><div class="gmail_quote">2010/8/23 Socrates Frangis <span dir="ltr"><<a href="mailto:soc.frangis@gmail.com">soc.frangis@gmail.com</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br><div>I meant it in the sense of in JESS/CLIPS you can assert an non-structured template to trigger another rule (as in this message board question where the issue was how to cause a rule to fire when another rule fires)</div>
<div><br></div><div>JESS/CLIPS Example:</div><div>(deftemplate fire-my-special-rule) //Notice no structure of the template, its just an object called 'fire-my-special-rule'</div><div><div><br></div><div>(defrule initial-rule</div>
<div> (blah...blah...patterns which make the first rule fire)</div><div> =></div><div> (do some RHS actions)</div><div> (assert (fire-my-special-rule))</div><div>)</div></div><div><br></div><div>(defrule special-rule</div>
<div> (fire-my-special-rule) //here im just checking for the existance or truth of 'fire-my-special-rule' </div><div> =></div><div> (RHS ACTIONS)</div><div>)</div><div><br></div><div>What i was getting at was, in JESS/CLIPS you can achieve what this question was asking by creating a deftemplate in the rule file that has no structure and use it to trigger another rule. In Drools you can not do this exactly,</div>
</blockquote><div><br>But you *can* do this in Drools, using<br> declare fireMySpecialRule<br> x : int<br> end<br>in a .drl file to declare the trigger class, or you could even one of the classes from Java, String or Integer or whatever.<br>
<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><br></div><div>Sorry, going on tangent, but yes i misspoke when i said Drools did not have Logical Assertions, it does. It just doesn't allow you to assert an unstructured template as does other rule engines do</div>
</blockquote><div><br>Since Jess' "ordered template" implies a field for its data, there's not much difference here. Drools simply uses Java objects throughout, while Jess has its (legacy) deftemplates which have to be linked to POJOs with the "shadow fact" mechanism.<br>
</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div> (which would have answered the original question in an easier / less hacked manner than my Flag POJO suggestion)</div>
<div><br></div></blockquote><br></div>But I don't think that setting up a LHS with a single trigger pattern as you do in the rule "special-rule" and to insert a matching trigger fact just to execute a few statements in the RHS of that rule is what the original poster meant by "firing a rule". That would be utterly pointless and contrived. Executing some statements is better done by defining a function and calling it, both in Drools and Jess.<br>
<br>-W<br>