From: Femke De Backere <[email protected]>
Subject: Re: [rules-users] Rule problem
To: "Rules Users List" <[email protected]>
Date: Monday, May 4, 2009, 6:00 PM
I have another little problem. I try to do the same with a
ruleflow
(and BMI rules in ruleflow group) and my ruleflow starts
running and
the rules are triggered, but I get no
system.out.println(...) and mijn
flow doesn't continue to the next node.
Any suggestions?
Femke
Op 4-mei-09, om 23:30 heeft Greg Barton het volgende
geschreven:
I wonder if there's some way to introduce strictfp
into the drl.
(I'm not even sure if that would even solve the
problem. But I
figure it'd get you in the ballpark.) But I think
it would be
useful to be able to inject strictfp into the
declarations of any
generated drools classes.
--- On Mon, 5/4/09, Femke De Backere
<[email protected]> wrote:
From: Femke De Backere <[email protected]>
Subject: Re: [rules-users] Rule problem
To: "Rules Users List"
<[email protected]>
Date: Monday, May 4, 2009, 4:11 PM
I solved the problem by removing every double in
the
sample.drl. How
van I fix the double problem if I really wanted to
:)? In
this case it
is unnecassary but there must be a solution?
Thanks for all the help!
Femke
Op 4-mei-09, om 21:48 heeft Wolfgang Laun het
volgende
geschreven:
Don't use doubles. Try the same thing,
scaling the
random weights
with 10 (or 100) convert to int, and use
suitably
scaled integer
limits for your weight classes.
I'm not at all sure, what various JVM
versions
and/or Rand
generators could produce.
The javadoc for java.lang.Math is an indicator
that
things might not
be as simple as they ought to be.
I could reproduce the problem this afternoon,
but now
I can't any
more, on the same machine, same JVM and same
Drools
version.
-W
2009/5/4 Femke De Backere
<[email protected]>
So, I did as you suggested, with the following
as
result:
BMI of 10 U heeft ondergewicht: 10
BMI of 30 U heeft ondergewicht: 30
BMI of 30 U heeft obesitas: 30
BMI of 20 U heeft ondergewicht: 20
So, I really don't get it, I used exactly
the same
code as you.
Femke
Op 4-mei-09, om 17:11 heeft Greg Barton het
volgende
geschreven:
Well, approach this systematically, then:
Create a
new Drools
project in Eclipse and replace the
DroolsTest.java
and Sample.drl
with the ones I sent before. What results
do you
get? If they are
correct, modify the project one step at a
time
until the problem is
uncovered.
One place to focus on: you're using
rule
flows. I have no idea how
that could cause a false positive result
like
you've seen, but you
never know.
Finally, if you're comparing
performance of
rules vs plain java,
plain java will easily win in this case.
The rule
of thumb is
this: if you can easily write a plain
non-rules
algorithm it will
outperform the rules solution.
--- On Mon, 5/4/09, Femke De Backere
<[email protected]> wrote:
From: Femke De Backere
<[email protected]>
Subject: Re: [rules-users] Rule
problem
To: "Rules Users List"
<[email protected]>
Date: Monday, May 4, 2009, 6:53 AM
I'm using this:
package bmi
import bmi.DroolsTest.BMIClass;
rule "Overgewicht"
ruleflow-group "BMIrules"
when
bmiClass : BMIClass($bmi: bmi >=
25, bmi
< 30)
then
System.out.println("U heeft
overgewicht: " +
$bmi);
end
rule "Obesitas"
ruleflow-group "BMIrules"
when
bmiClass : BMIClass($bmi : bmi >=
30)
then
System.out.println("U heeft
obesitas:
" +
$bmi);
end
rule "Ondergewicht"
ruleflow-group "BMIrules"
when
bmiClass : BMIClass($bmi : bmi <
18.5)
then
System.out.println("U heeft
ondergewicht: " +
$bmi);
end
rule "Normaal"
ruleflow-group "BMIrules"
when
bmiClass : BMIClass($bmi : bmi >=
18.5,
bmi < 25)
then
System.out.println("U heeft een
normaal
gewicht:
" + $bmi);
end
But in essence it is the same as
Greg's. I
get outputs
as:
U heeft ondergewicht: 25.0
U heeft overgewicht: 25.0
But I really don't see the
problem.
Femke
Op 4-mei-09, om 13:25 heeft Wolfgang
Laun het
volgende
geschreven:
I cannot reproduce your findings.
Which bmi values cause the firing
of two
rules?
Are you using exactly the same
.drl file
Greg sent?
-W
2009/5/4 Femke De Backere
<[email protected]>
Thanks for the answer! But I
sometimes get
2 rules
that are correct,
and that is impossible. I embedded
Greg's
DroolsTest class in my
class (I am doing some test on
performance
and
studying the
difference between performance
with a
plain java
class), and it
still doesn't work, and I
really
don't see
why. Anyone any
suggestions, in attachement, my
class.
Thx,
Femke
Op 4-mei-09, om 02:47 heeft Greg
Barton
het volgende
geschreven:
Try the attached code.
--- On Sun, 5/3/09, Femke De
Backere
<[email protected]> wrote:
From: Femke De Backere
<[email protected]>
Subject: Re: [rules-users] Rule
problem
To: "Rules Users List"
<[email protected]>
Date: Sunday, May 3, 2009, 6:18 PM
Thx for the answer. I tried this
but I
doesn't
seem to
work. For a BMI of 20, i get the
result
"ondergewicht", and it
should be
"normal".
Op 4-mei-09, om 01:04 heeft
Ingomar Otter
het volgende
geschreven:
Femke,
The "Overgewicht| rule
matches for
_two_ BMIClass
facts, one with bmi >- 25 and
one for
BMIClass
<30.
If you want to apply multiple
constraints
to a single
fact you have to list them as
such:
rule "Overgewicht"
when
bmiClass :
BMIClass(bmi
= 25
&& bmi
<30)
then
System.out.println("U
heeft
overgewicht");
end
Cheers,
Ingomar
Am 04.05.2009 um 00:48 schrieb
Femke De
Backere:
Hi!
I want to make en BMI rule
application, so
I need
to test the BMI values. But in
rule
"Overgewicht"
and "Normaal", I need to
use an
AND, but it
doesn't seem to work in any
way I
tried.
Does anybody see the problem? The
rest of
the
application is based on de sample
project
(created
when
making a new Drools project).
Thx,
Femke
package bmi
import bmi.DroolsTest.BMIClass;
rule "Overgewicht"
when
bmiClass :
BMIClass(bmi
= 25)
bmiClass :
BMIClass(bmi <
30)
then
System.out.println("U
heeft
overgewicht");
end
rule "Obesitas"
when
bmiClass :
BMIClass($bmi :
bmi >=
30)
then
System.out.println("U
heeft
obesitas");
end
rule "Ondergewicht"
when
bmiClass :
BMIClass($bmi :
bmi <
18.5)
then
System.out.println("U
heeft
ondergewicht");
end
rule "Normaal"
when
bmiClass :
BMIClass(bmi
= 18.5)
bmiClass :
BMIClass(bmi <
25)
then
System.out.println("U
heeft een
normaal
gewicht");
end
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users
<
DroolsTest
.java><Sample.drl>_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users