Maxim,
I'm not sure about what specific case you are talking too, but Drools 4
is supposed to be faster than Drools 3, specially if you follow the best
practices and disable shadow facts.
[]s
Edson
2008/8/21 Maxim Veksler <maxim.veksler(a)gmail.com>
Hello Edson,
Thank you for your reply. We are considering moving on to Drool4, the main
question actually is performance. Is Drools4 can provide better performance
regarding speed of conclusion.
I'm considering suggesting a move to v4 but haven't so because I've read
some reports on this list about Drools 4 slowness. Could you suggest please
your opinion on the subject?
Thank you very much,
Maxim.
On Thu, Aug 21, 2008 at 4:57 PM, Edson Tirelli <tirelli(a)post.com> wrote:
>
> Yes, it is a new feature on Drools 4. Please note that Drools 4 has a
> huge amount of improvements in comparison to Drools 3, and we strongly
> advise the upgrade.
> If you really want to stay on Drools 3, you should contact Red Hat for
> support. Not sure it is possible, but you may try.
>
> []s
> Edson
>
> 2008/8/21 Maxim Veksler <maxim.veksler(a)gmail.com>
>
>
>> On Wed, Aug 20, 2008 at 8:57 PM, Edson Tirelli <tirelli(a)post.com> wrote:
>>
>>>
>>> You are using variables (like $nissan) before binding them. Remember
>>> you can only use a variable "after" binding it.
>>>
>>> []s
>>> Edson
>>>
>>
>> Please allow me to a related question, regarding drools 3.0.x
>>
>> In this LHS example, mentioned in this thread :
>>
>> """
>> $fred : Golfer( name == "Fred")
>> $bob : Golfer( name == "Bob",
>> position != $fred.position,
>> color == "plaid",
>> color != $fred.color)
>> """
>>
>> $fred is a bind variable, but how is it possible to use a data member
>> from this variable inside another node's ruling ?
>>
>> Judging from Drools 3, this should have failed with compilation errors,
>> assuming that it's a new feature of Drools 4, is there a possibility to
>> implement this behavior in drools3? as it would be great help for me in my
>> rules.
>>
>> // Just for reference, the way I would implement the above logic in
>> Drools 3 is :
>>
>> """
>> $fred : Golfer( name == "Fred", $fredPosition : position,
>> $fredColor : color)
>> $bob : Golfer( name == "Bob",
>> position != $fredPosition,
>> color == "plaid",
>> color != $fredColor)
>> """
>>
>>
>> Thank you,
>> Maxim.
>>
>>>
>>>
>>> 2008/8/20 Marcin Krol <mrkafk(a)gmail.com>
>>>
>>> Hello everyone,
>>>>
>>>> I managed to produce my first example of Drools rules. However, I am
>>>> having problems with some field restrictions:
>>>>
>>>> Racing order:Unable to create restriction
'[QualifiedIndentifierRestr:
>>>> != $nissan.pos ]' for field 'pos' in the rule 'Racing
order'
>>>>
>>>> The problem is only SOME field restrictions produce this error. Other
>>>> field restrictions don't!
>>>>
>>>> If anybody has a hint or knows why this is not working, please let me
>>>> know, I would greatly appreciate it.
>>>>
>>>>
>>>>
>>>> The rules are:
>>>>
>>>>
>>>> #created on: 2008-08-20
>>>> package com.sample
>>>>
>>>> #list any import classes here.
>>>>
>>>> #declare any global variables here
>>>>
>>>> dialect "mvel"
>>>>
>>>> import com.sample.Car;
>>>>
>>>> rule "Racing order"
>>>> when
>>>>
>>>> // Porsche was not red
>>>> $porsche : Car( manufacturer == "Porsche",
>>>> pos != $nissan.pos,
>>>> pos != $subaru.pos,
>>>> color != "red"
>>>> //color != "blue",
>>>> //color != $nissan.color,
>>>> //color != $subaru.color
>>>> )
>>>>
>>>>
>>>> // First car was Nissan
>>>> $nissan : Car( manufacturer == "Nissan",
>>>> pos == 1,
>>>> color != $subaru.color,
>>>> color != $porsche.color )
>>>>
>>>> // Subaru was blue
>>>> $subaru : Car( manufacturer == "Subaru",
>>>> //pos == 2,
>>>> pos != $nissan.pos,
>>>> pos != $porsche.pos,
>>>> color == "blue" )
>>>>
>>>> // 2nd car was silver
>>>> Car( pos == 2,
>>>> color == "silver",
>>>> this in ( $nissan, $subaru, $porsche ) )
>>>>
>>>> then
>>>> System.out.println( "Nissan " + $nissan.getPos() +
" " +
>>>> $nissan.getColor() );
>>>> System.out.println( "Subaru " + $subaru.getPos() +
" " +
>>>> $subaru.getColor() );
>>>> System.out.println( "Porsche " + $porsche.getPos() +
" " +
>>>> $porsche.getColor() );
>>>>
>>>> end
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> The Car.java file:
>>>>
>>>>
>>>> package com.sample;
>>>>
>>>> public class Car {
>>>> private String manufacturer;
>>>> private String color;
>>>> private int pos;
>>>>
>>>> public Car() {
>>>>
>>>> }
>>>>
>>>> public Car(String manufacturer, String color, int pos) {
>>>> super();
>>>> this.color = color;
>>>> this.pos = pos;
>>>> this.manufacturer = manufacturer;
>>>> }
>>>>
>>>> public String getManufacturer() {
>>>> return this.manufacturer;
>>>> }
>>>>
>>>> public float getPos() {
>>>> return this.pos;
>>>> }
>>>>
>>>> public String getColor() {
>>>> return this.color;
>>>> }
>>>> }
>>>>
>>>>
>>>>
>>>>
>>>> The CarExample.java file, which is the main app:
>>>>
>>>>
>>>>
>>>> package com.sample;
>>>>
>>>> import java.io.InputStreamReader;
>>>>
>>>> import org.drools.RuleBase;
>>>> import org.drools.RuleBaseFactory;
>>>> import org.drools.StatefulSession;
>>>> import org.drools.compiler.PackageBuilder;
>>>> import com.sample.Car;
>>>>
>>>> public class CarExample {
>>>>
>>>> public static void main(String[] args) throws Exception {
>>>>
>>>> final PackageBuilder builder = new PackageBuilder();
>>>> builder.addPackageFromDrl( new InputStreamReader(
>>>> CarExample.class.getResourceAsStream( "CarExample.drl" ) ) );
>>>>
>>>> final RuleBase ruleBase = RuleBaseFactory.newRuleBase();
>>>> ruleBase.addPackage( builder.getPackage() );
>>>>
>>>> final StatefulSession session = ruleBase.newStatefulSession();
>>>>
>>>> String[] names = new String[] { "Nissan",
"Subaru", "Porsche"};
>>>> String[] colors = new String[] { "red",
"blue", "silver"};
>>>> int[] positions = new int[] { 1, 2, 3 };
>>>>
>>>> for ( int n = 0; n < names.length; n++ ) {
>>>> for ( int c = 0; c < colors.length; c++ ) {
>>>> for ( int p = 0; p < positions.length; p++ ) {
>>>> session.insert( new Car( names[n], colors[c],
>>>> positions[p]) );
>>>> }
>>>> }
>>>> }
>>>>
>>>> session.fireAllRules();
>>>> session.dispose();
>>>> }
>>>>
>>>>
>>>>
>>>> }
>>>>
>>>> _______________________________________________
>>>> rules-users mailing list
>>>> rules-users(a)lists.jboss.org
>>>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>>>
>>>
>>>
>>>
>>> --
>>> Edson Tirelli
>>> JBoss Drools Core Development
>>> JBoss, a division of Red Hat @
www.jboss.com
>>>
>>> _______________________________________________
>>> rules-users mailing list
>>> rules-users(a)lists.jboss.org
>>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>>
>>>
>>
>>
>> --
>> Cheers,
>> Maxim Veksler
>>
>> "Free as in Freedom" - Do u GNU ?
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>
>
> --
> Edson Tirelli
> JBoss Drools Core Development
> JBoss, a division of Red Hat @
www.jboss.com
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
>
--
Cheers,
Maxim Veksler
"Free as in Freedom" - Do u GNU ?
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
--
Edson Tirelli
JBoss Drools Core Development
JBoss, a division of Red Hat @