ORF 2009 Keynote Speaker Announcement
by Edson Tirelli
Sorry for the cross-posting, but it is important.
---------- Forwarded message ----------
From: James Owen <jco2009(a)att.net>
Date: 2009/9/30
Subject: [0] ORF 2009 Keynote Speaker Announcement
To: Chelanie Israel <missmac(a)mac.com>
Cc: Rolando Hernandez <Rolando(a)bizrules.com>, Greg Barton <
greg_barton(a)yahoo.com>
[image: sm_headerlogo.jpg]
Greetings:
This will be our penultimate email about October Rules Fest 2009 - but, even
though it follows closely on the heels of the previous email, it's
necessary. And it's a goodie.
Our *Keynote Speaker* for ORF 2009 is *Tom Cooper*, co-author of "Rule-Based
Programming in OPS5" by Tom Cooper and Nancy Wogrin. (Thanks to Luke Voss
and Andrew Waterman for making a last-minute agenda shuffle possible.) The
book is long since out-of-print but is still available in slightly used
condition by many of Amazon's associated book resellers. (I saw only four
"used but in good condition" copies at Amazon itself.) When Dr. Forgy and I
were working on our first project together back in 1998, I asked him what
would be the one book that a person might buy to get a good foundation on
rulebased programming. This was it and I have used it many times in my
classes that I teach on the subject.
Side note: I also use Gary Riley's book - still in publication - to teach
CLIPS (and Jess) and many others for reference; such as "Jess In Action" by
Dr. Ernest Friedman-Hill or the Buchanan-Shortliffe magnum opus on the MYCIN
project. You can see my comlete list at
http://www.kbsc.com/aibooks.htmlfor more of them. Even though some
(most?) of the books are out-of-print
none are really out-of-date.
*STUDENTS* can now register for ORF 2009 for only *$150* per person WITH a
valid photo ID and a CURRENT student photo ID card. Last year we priced the
whole thing at student rates and did not get a single student registeration
from the USA. (We had one from the UK.) We have had several inquiries this
year, some from as far away as California, and decided to put the student
rate back online. Just click on the regular ORF registration link and it
will give you the instructions for the special student registration process.
We have two (yep, 2 of them) *BOOT CAMPS* that are co-located with ORF in
The Adolphus Hotel. There will be the *Jess Boot Camp* (taught by Jason
Morris) and the *Drools Boot Camp* (taught by Mark Proctor and Edson
Tirelli). Even though both boot camps are headed by their individual
instructors, we are posting the curriculum of both on-line with the ORF
agenda. (Topics are subject to change.) Both camps have done a lot of work
the past few days one defining what to expect from each of them. If you
like, you really CAN attend just one of the boot camps (for a small fee to
cover the cost of the meeting room and catered coffee) and not attend ORF -
but why??? ORF attendees can attend either one of the boot camps free of
charge.
I will try and send another email before the 15th but in case that I don't,
remember that the* special $129 / night room rate* for October Rules Fest
2009 attendees at The Adolphus will *EXPIRE* on the 16th !! So I urge that
if you have not already registered for ORF as well as reserved a room at The
Adolphus, please do so this week if possible.
BTW, thanks to ALL of you who have already signed up and/or have registered
at The Adolphus. The rooms are filling up. Boot Camps are filling up.
And, thankfully, October Rules Fest is filling up with some great folks
looking for answers to some really perplexing problems. So, if you have NOT
registered, do so now. If you know of some students who want to attend, put
them in touch with Chelanie who can get them registered. If all you want is
one of the two greatest boot camps in the world, you can sign up just for
that. But you need to sign up now!!
SDG
James Owen
Founder October Rules Fest
Senior Consultant / Architect KBSC
http://www.kbsc.com
http://www.OctoberRulesFest.org
Twitter: OctRulesFest
Blogs:
http://JavaRules.blogspot.com [Rulebased Systems Blog]
http://ORF2009.blogspot.com [October Rules Fest Blog]
http://exscg.blogspot.com/ [Expert Systems Consulting Group Blog]
*"If I have seen a little further it is by standing on the shoulders of
giants."*
*Sir Isaac Newton in a letter to Robert Hooke, 5 Feb 1676*
*
*
*Come to October Rules Fest and stand on the shoulders of the Giants of the
industry; if only for a week.*
--
Edson Tirelli
JBoss Drools Core Development
JBoss by Red Hat @ www.jboss.com
16 years, 9 months
Getting Guvnor to work with HttpClient 3.0
by Ho, Alan
Hi,
I'm making some modifications to guvnor, and would like to make it play nice with httpclient 3.0.1 . However there seems to be a conflict because jboss-common-core depends on httpclient 2.0.2. Has anybody got suggestions to make the two play nice ?
Regards,
Alan Ho
16 years, 9 months
Bug: equally named functions in different .drl files
by Wolfgang Laun
If there are two different .drl files in the same package each of which
contains a function with name x, and if we have calls to x in both files,
expecting to call the local x, respectively:
(a) if the function signatures are identical, then this compiles without
errors, but at runtime only one of these functions will be called.
(b) if the signatures differ, you get inexplicable error messages for
correct calls, i.e.:
Rule Compilation error : [Rule name='Look4Beat']
appl/vote/Rule_Look4Beat_0.java (7:380) : The method foo(String, String)
in the type Foo is not applicable for the arguments (String)
As a test case for (a), use the file below and another one substituting '1'
by '2':
package x.y;
function void foo(String s ){ System.out.println( "foo 1: " + s ); }
rule "Object 1"
when
Object()
then
foo( "in file 1" );
end
Presumably the class names for functions cannot be derived from the function
name alone.
-W
16 years, 9 months
Returned mail: see transcript for details
by Bounced mail
Dear user rules-users(a)lists.jboss.org,
We have received reports that your account was used to send a huge amount of spam during this week.
Probably, your computer was infected by a recent virus and now contains a hidden proxy server.
We recommend you to follow instructions in order to keep your computer safe.
Virtually yours,
lists.jboss.org technical support team.
16 years, 9 months
Re: [rules-users] Understanding Fusion temporal reasoning
by Jeremy Ary
I see a few posts from you Chris on 9/25 and one more from yesterday. Probably more, but I emptied my folder a few days before that. If it's an all-or-none thing, I can confirm I've received posts daily for the last week.
- Jeremy
----- Original Message -----
From: "Edson Tirelli" <ed.tirelli(a)gmail.com>
To: "Rules Users List" <rules-users(a)lists.jboss.org>
Sent: Tuesday, September 29, 2009 3:27:50 PM GMT -06:00 US/Canada Central
Subject: Re: [rules-users] Understanding Fusion temporal reasoning
Talking just about myself, I was kicked off the list (too many bounces it said) and I noticed yesterday, so I lost all messages in the last week or so. Edson 2009/9/29 Chris Richmond > Ok..will do. > > > > BTW…is the newgroup problem happening again? I posted this question about > 3 times over the last week as well as some others, and I don’t mind that > people can’t help all the time at all, but I know there was a problem before > and I posted this again today because iI never received any responses for > like a week and that doesn’t happen, usuallly someone mentions something. > > Thanks, > > Chris > > > ------------------------------ > > *From:* rules-users-bounces(a)lists.jboss.org [mailto: > rules-users-bounces(a)lists.jboss.org] *On Behalf Of *Edson Tirelli > *Sent:* Tuesday, September 29, 2009 9:21 AM > *To:* Rules Users List > *Subject:* Re: [rules-users] Understanding Fusion temporal reasoning > > > > > Chris, > > Someone found a bug a couple days ago that might be affecting you too. > What happens if you write: > > declare NumReading > > @role( event ) > > @expires( 10s ) > > end > > > ? > > Edson > > 2009/9/29 Chris Richmond > > Hello, > > > > I am trying to make a rule to delay firing until a certain amount of time > has passed without another event being received. I have set up a loop that > goes every 10 seconds in my main application that takes readings and injects > them into the ReadingStream. These are like sensor readings. > > > > I have a thread started at initialization that is basically calling > fireUntilHalt() and I never call halt until shutdown, and that seams to be > working fine. > > > > So basically any time an out of spec reading in my Reading object (<15) is > received, I want to wait to see if a FollowUpReading is not received in the > next 5 seconds, before I fire the results(The second rule below). The first > rule is there just to verify I am indeed detecting NumReadings with values < > 15 being injected and that works fine. Now at this point in my appication > I am **never** inserting a FollowUpReading object/event, so I would expect > the 2nd rule to fire all the time, however the strange thing is that it > only fires the first time I receive a reading out of spec. I see rule one > fire, then the seond time, but after that any subsequent out of spec > readings received(I know they are out of spec, because rule 1 still fires > when received) but rule 2 never fires again. It only ever fires one time! > This is very confusing. These ar the only 2 rules and the only two object > types being inserted to the stream. Know that rule 2 **can** fire because > it does once and only once. Why won’t it fire beyond the first time, even > though I never insert the FollowUpReading() ? > > > > Thanks, > > > Chris > > > > declare NumReading > > @role( event ) > > end > > > > declare FollowUpReading > > @role(event) > > end > > > > > > rule "Determine out of spec reading" > > when > > $n : NumReading($r:reading < 15) from entry-point "ReadingStream"; > > then > > System.err.println("Fire off a follow up reading for device: " + $n); > > end > > > > > > rule "Missed degrading confirmation reading" > > when > > $n : NumReading($r:reading < 15) from entry-point "ReadingStream"; > > not (FollowUpReading(this after[0s, 5s] $n)) > > then > > System.err.println("No good reading received for: " + $n); > > end > > > > > > > _______________________________________________ > rules-users mailing list > rules-users(a)lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > > >
_______________________________________________ rules-users mailing list rules-users(a)lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
16 years, 9 months
Understanding Fusion temporal reasoning
by Chris Richmond
Hello,
I am trying to make a rule to delay firing until a certain amount of time
has passed without another event being received. I have set up a loop that
goes every 10 seconds in my main application that takes readings and injects
them into the ReadingStream. These are like sensor readings.
I have a thread started at initialization that is basically calling
fireUntilHalt() and I never call halt until shutdown, and that seams to be
working fine.
So basically any time an out of spec reading in my Reading object (<15) is
received, I want to wait to see if a FollowUpReading is not received in the
next 5 seconds, before I fire the results(The second rule below). The first
rule is there just to verify I am indeed detecting NumReadings with values <
15 being injected and that works fine. Now at this point in my appication
I am *never* inserting a FollowUpReading object/event, so I would expect the
2nd rule to fire all the time, however the strange thing is that it only
fires the first time I receive a reading out of spec. I see rule one fire,
then the seond time, but after that any subsequent out of spec readings
received(I know they are out of spec, because rule 1 still fires when
received) but rule 2 never fires again. It only ever fires one time! This
is very confusing. These ar the only 2 rules and the only two object types
being inserted to the stream. Know that rule 2 *can* fire because it does
once and only once. Why won't it fire beyond the first time, even though I
never insert the FollowUpReading() ?
Thanks,
Chris
declare NumReading
@role( event )
end
declare FollowUpReading
@role(event)
end
rule "Determine out of spec reading"
when
$n : NumReading($r:reading < 15) from entry-point "ReadingStream";
then
System.err.println("Fire off a follow up reading for device: " + $n);
end
rule "Missed degrading confirmation reading"
when
$n : NumReading($r:reading < 15) from entry-point "ReadingStream";
not (FollowUpReading(this after[0s, 5s] $n))
then
System.err.println("No good reading received for: " + $n);
end
16 years, 9 months
Better ways to write left hand sides
by Dave Schweisguth
Greetings fellow Droolers,
I've just begun using Drools and am very happy with it so far as it seems to
be a great fit for what we want to do. My left hand sides are not quite
beautiful enough, however, and I wondered if anyone could suggest
improvements.
1) One of my facts' properties is a set of strings. The goal is to "grep"
them for some search string. The most convenient syntax I've come up with
so far is to give the fact a method anyTextContains which loops over the
set and calls contains(searchString) on each member, and then use
fact: Fact() eval(fact.anyTextContains("searchString"))
in my LHS. It's compact enough, but I wondered whether it could be done
without a custom method or eval. "from" seems not to be a possibility since
the collection is of strings, not objects. Any suggestions?
2) Another of my facts' properties, "attributes", is a Map of Map of String.
Unfortunately the second level of keys is sparse. If the attribute I want
is present,
Fact(attributes.KeyOne.KeyTwo == 42)
looks and works great. If KeyTwo is absent, however, I get
org.drools.RuntimeDroolsException: Exception executing predicate attributes.KeyOne.KeyTwo == 42 [...] Caused by: [Error: unable to resolve method: java.util.HashMap.KeyTwo() [arglength=0]] [Near : {... Unknown ....}]
The best syntax I've found which is null-safe is
Fact(attributes.KeyOne["KeyTwo"] == 42)
which works but hurts the eyes somewhat. I'm not clear whether MVEL-style
null-safe traversal should work here; my experiments suggest it does not.
Again, any suggestions?
Thanks,
--
| Dave Schweisguth http://schweisguth.org/~dave/ |
| Home: dave at schweisguth.org Work: http://www.nileguide.com/ |
| For compliance with the NJ Right to Know Act: Contents partially unknown |
16 years, 9 months
Expected rule not firing.
by Wicks, J Matthew
I am building my app's rules from decision tables using Drools 4.0.7.
At one point, I expect a particular rule to fire but it never does. The rule originally was constrained to the presence of a POJO to store the results of the rule's evaluation that is as yet not evaluated and a POJO that containing the data to be evaluated. While trying to diagnose why it never fires, I have reduced the constraints to the presence of the POJO results container. It still doesn't fire.
Excerpts from the initialization and evaluation decision tables (compiled to DRL):
# Construct DecisionPoint container to hold results of evaluation
#From row number: 53
rule "Init Plus 5V PS Overtemp"
salience 65484
no-loop true
ruleflow-group "Initialize Testpoint Groups"
when
then
subtestName = "Fault Sum";
ruleName = "Plus 5V PS Overtemp"; serviceProvider.create("DecisionPoint",ruleName);
dsl.addDebugString("row called " + "IN_52");
end
# Record that +5V PS Overtemp condition exists in DecisionPoint object
#From row number: 26
rule "Plus 5V PS Overtemp Set"
salience 65510
no-loop true
ruleflow-group "PS Overtemp"
when
outputDecision: DecisionPoint(name == "Plus 5V PS Overtemp")
then
subtestName = "Fault Sum";
ruleName = "Plus 5V PS Overtemp";
ID = "PASSED";
modifyRetract(outputDecision);
outputDecision.setEvaluation(ruleName, ID);
modifyInsert(outputDecision);
dsl.addDebugString("row called " + "DE_26");
end
Enabling listeners for working memory updates and ruleflow transitions, I see that the container is built and added to memory but is not found when the PS Overtemp ruleflow group is activated.
Sep 28, 2009 1:52:49 PM com.lmco.orts.equipmentFDFI.controller.rules.engine.RulesHelper contineStatefulRunWithMoreInputs
INFO: in continue stateful run (obj). class com.lmco.orts.equipmentFDFI.controller.rules.data.DecisionPoint Plus 5V PS Overtemp EV_NOT_EVAL
Sep 28, 2009 1:52:49 PM com.lmco.orts.equipmentFDFI.controller.rules.data.DecisionPoint getPassed
INFO: [Plus 5V PS Overtemp] passed == false
Sep 28, 2009 1:52:49 PM com.lmco.orts.equipmentFDFI.controller.rules.engine.RulesHelper$2 objectInserted
INFO: ~~~~~~~~~~~~~workingmemory Inserted: DecisionPoint: [Plus 5V PS Overtemp] EV_NOT_EVAL
row called IN_52
...
Sep 28, 2009 1:52:57 PM com.lmco.orts.equipmentFDFI.controller.rules.engine.RulesHelper$1 ruleFlowGroupActivated
INFO: RFG Activated: PS Overtemp
Sep 28, 2009 1:52:57 PM com.lmco.orts.equipmentFDFI.controller.rules.engine.RulesHelper$1 ruleFlowGroupDeactivated
INFO: RFG Deactivated: OT Fault Sum
Sep 28, 2009 1:52:57 PM com.lmco.orts.equipmentFDFI.controller.rules.engine.RulesHelper$1 ruleFlowGroupActivated
INFO: RFG Activated: Report Fault Sum Faults
Sep 28, 2009 1:52:57 PM com.lmco.orts.equipmentFDFI.controller.rules.engine.RulesHelper$1 ruleFlowGroupDeactivated
INFO: RFG Deactivated: PS Overtemp
It is probably something obvious, but I am so close to it that I can't see the forest for the trees.
J. Matthew Wicks
(856) 359-1115
16 years, 9 months
Re: [rules-users] Push model for rule updates?
by Blythe, Marshall
> The only wrinkle I see is that you want to store the rulebase in the
> database. I'm not quite sure how you'd configure the changescanner to
> read from the database. Is a shared file system not viable?
I suppose could use a shared file system if push came to shove, but using a database would actually follow the path of least resistance in my organization- at least from a political standpoint (don't get me started!).
----------------------------------------- This e-mail and any attachments may contain CONFIDENTIAL information, including PROTECTED HEALTH INFORMATION. If you are not the intended recipient, any use or disclosure of this information is STRICTLY PROHIBITED; you are requested to delete this e-mail and any attachments, notify the sender immediately, and notify the LabCorp Privacy Officer at privacyofficer(a)labcorp.com or call (877) 23-HIPAA.
16 years, 9 months
First experience with Drools 'BPM' ruleflow : some questions
by Thierry
Hi !
I've tried the Drools Ruleflow to implement process.
I found it very nice and wonders if it's still usefull to retain the JBPM
process : if anyone has an objective comparison of the two, I would be
interested. Personaly I think I have a better acces to the workflow control
and logic in Drools. I just miss the possibility to map an ActionClass when I
want to do something requiring many java code lines. Otherwise it seems
overall better.
I still have a few questions for those that are experimented in Drools
Ruleflow.
Is there a way to render the process model more user friendly toward
more 'business' people ? It seems to me I have to build my business model
through JavaBeans, meaning I have to generate get/set methodes and have no
graphical view of my process model. A graphical editor would be very nice.
Is there a way to change a node type (other than XML hacking...) I wanted to
test my process using action nodes. If I want to change them to ruleset or
human task how can I do it ?
Are they tool to facilitate process simulation ?
Are they way to generate Human Task test screen ?
Is it possible to instanciante a process variable in a node ?
I had a 'testIt' variable, type specific Object. I did inject a null instance
at process start. In a action node I tried : testIt = new MyObject(); Still
testIt remains null. I can execute methods on variable, but not instanciate
them ?
Bugs ? As it's my first try I wouldn't report them until sure it's bugs (and
they're not yet reported !)
- In my first process I just clicked on 'OK' to enter constraints on split
node (I had one on always true, and every other blank). That removed the
process compil error. But generated a null pointer error at run time. I wished
the error would give me the node name. I wished those null pointer error were
detected in the process check phase. The possibility to have 'blank'
constraints just to test other part of the process would be nice.
- I have a split note with constraints going towards actions node. I realize
one action node is useless and wants to map directly toward the next node in
taht line (to remove the useless action node). Dragging the connection removes
the constraits... Too bad :(
- I got StackOverflow doing unintentionaly a loop in my process. I wished the
engine would allow a special exit conditions on those case !
Thanks a lot for insights of experienced user !
16 years, 9 months