[rules-users] averages on different data types

2009-06-17 Thread Chris Richmond
Hi guys,

 

Building from the stockticker sample, I have been running my own average
aggregates over time and window length and I have the following rule.it
simply runs a last 10 average and outputs the average(in theory). 

 

rule show averages

when

 

$n : Number( doubleValue  0 ) from accumulate (

 

 

 

$mdo : MyDataObject($tm: delayTime) over window:length(10) from
entry-point DataObject stream,

average( $tm )

 

)

 

 

then

 

System.err.println($tm);

 

End

 

I have set the limit to 0 for the average because I simply want to have it
fire every time, no matter the average(they are all positive)

 

 

However I get this error:

 

Unable to build expression for 'consequence': Failed to compile: 1
compilation error(s): 

 - (1,3) unqualified type in strict mode for: $tm '

System.err.println($tm);

' : [Rule name='show averages']

 

 

If I have the consequence 

 

System.err.println($n);

 

Then it outputs the average no problem, but I am trying to simply output
that indifidual value, delayTime which I have stored in $tm is an integer,
so I cannot figure out why I cannot output this value.Similarly if I
simply try as a consequence:

 

System.err.println($ mdo.delayTime);

 

I get a similar error.

 

What am I doing wrong?

 

Thanks,


Chris

___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


RE: [rules-users] averages on different data types

2009-06-17 Thread Chris Richmond
So how can I access variables that I have populated from within that scope
delimiter(accumulate)?  For instance if I did want to access the delayTime,
what strategy should be used?

 

Thanks,


Chris

  _  

From: rules-users-boun...@lists.jboss.org
[mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Edson Tirelli
Sent: Wednesday, June 17, 2009 11:49 AM
To: Rules Users List
Subject: Re: [rules-users] averages on different data types

 


   Chris,

   Remember that accumulate is a scope delimiter, meaning variables bound
inside accumulate are not visible outside of it. The error message you see
is the MVEL way of saying: non-existing variable (I guess you are using mvel
as the dialect for the consequence).

   If you want to know what data objects are being inserted/expired from the
working memory, use a working memory listener.

   []s
   Edson

2009/6/17 Chris Richmond crichm...@referentia.com

Hi guys,

 

Building from the stockticker sample, I have been running my own average
aggregates over time and window length and I have the following rule.it
simply runs a last 10 average and outputs the average(in theory). 

 

rule show averages

when

 

$n : Number( doubleValue  0 ) from accumulate (

 

 

 

$mdo : MyDataObject($tm: delayTime) over window:length(10) from
entry-point DataObject stream,

average( $tm )

 

)

 

 

then

 

System.err.println($tm);

 

End

 

I have set the limit to 0 for the average because I simply want to have it
fire every time, no matter the average(they are all positive)

 

 

However I get this error:

 

Unable to build expression for 'consequence': Failed to compile: 1
compilation error(s): 

 - (1,3) unqualified type in strict mode for: $tm '

System.err.println($tm);

' : [Rule name='show averages']

 

 

If I have the consequence 

 

System.err.println($n);

 

Then it outputs the average no problem, but I am trying to simply output
that indifidual value, delayTime which I have stored in $tm is an integer,
so I cannot figure out why I cannot output this value.Similarly if I
simply try as a consequence:

 

System.err.println($ mdo.delayTime);

 

I get a similar error.

 

What am I doing wrong?

 

Thanks,


Chris


___
rules-users mailing list
rules-users@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@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


Re: [rules-users] averages on different data types

2009-06-17 Thread Edson Tirelli
   Chris,

   Not sure what you mean. If you want to know what is in there for debug
purposes, I guess the best way is to implement your own average() accumulate
function that prints out (or do whatever you want) with the bound
variables/facts.

   For regular use, it does not makes sense to allow access to such variable
because it is bound to multiple values. For instance:

$tot : Number() from accumulate(
Order( $value : value ),
sum( $value ) )

This pattern will sum all the values from all the Order facts in the
working memory. Lets imagine that it would be possible to access the $value
variable outside the accumulate, what Order would it be bound to? So, it
makes no sense...

 []s
 Edson

2009/6/17 Chris Richmond crichm...@referentia.com

  So how can I access variables that I have populated from within that
 scope delimiter(accumulate)?  For instance if I did want to access the
 delayTime, what strategy should be used?



 Thanks,


 Chris
  --

 *From:* rules-users-boun...@lists.jboss.org [mailto:
 rules-users-boun...@lists.jboss.org] *On Behalf Of *Edson Tirelli
 *Sent:* Wednesday, June 17, 2009 11:49 AM
 *To:* Rules Users List
 *Subject:* Re: [rules-users] averages on different data types




Chris,

Remember that accumulate is a scope delimiter, meaning variables bound
 inside accumulate are not visible outside of it. The error message you see
 is the MVEL way of saying: non-existing variable (I guess you are using mvel
 as the dialect for the consequence).

If you want to know what data objects are being inserted/expired from
 the working memory, use a working memory listener.

[]s
Edson

 2009/6/17 Chris Richmond crichm...@referentia.com

 Hi guys,



 Building from the stockticker sample, I have been running my own average
 aggregates over time and window length and I have the following rule…it
 simply runs a last 10 average and outputs the average(in theory).



 rule show averages

 when



 $n : Number( doubleValue  0 ) from accumulate (







 $mdo : MyDataObject($tm: delayTime) over window:length(10) from
 entry-point DataObject stream,

 average( $tm )



 )





 then



 System.err.println($tm);



 End



 I have set the limit to 0 for the average because I simply want to have it
 fire every time, no matter the average(they are all positive)





 However I get this error:



 Unable to build expression for 'consequence': Failed to compile: 1
 compilation error(s):

  - (1,3) unqualified type in strict mode for: $tm '

 System.err.println($tm);

 ' : [Rule name='show averages']





 If I have the consequence



 System.err.println($n);



 Then it outputs the average no problem, but I am trying to simply output
 that indifidual value, delayTime which I have stored in $tm is an integer,
 so I cannot figure out why I cannot output this value.Similarly if I
 simply try as a consequence:



 System.err.println($ mdo.delayTime);



 I get a similar error.



 What am I doing wrong?



 Thanks,


 Chris


 ___
 rules-users mailing list
 rules-users@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@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@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


RE: [rules-users] averages on different data types

2009-06-17 Thread Chris Richmond
Ok..I was under the impression that the rule would fire for each Order
object that was injected, and in that case variables apply to each Order,
hence accessing them from the consequences(right side) would be from an
indfividual Order.  I guess I am misundertanding how it works.

 

Thanks for the clarification.

 

Chris

 

  _  

From: rules-users-boun...@lists.jboss.org
[mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Edson Tirelli
Sent: Wednesday, June 17, 2009 1:37 PM
To: Rules Users List
Subject: Re: [rules-users] averages on different data types

 


   Chris,

   Not sure what you mean. If you want to know what is in there for debug
purposes, I guess the best way is to implement your own average() accumulate
function that prints out (or do whatever you want) with the bound
variables/facts.

   For regular use, it does not makes sense to allow access to such variable
because it is bound to multiple values. For instance:

$tot : Number() from accumulate( 
Order( $value : value ),
sum( $value ) )

This pattern will sum all the values from all the Order facts in the
working memory. Lets imagine that it would be possible to access the $value
variable outside the accumulate, what Order would it be bound to? So, it
makes no sense...

 []s
 Edson

2009/6/17 Chris Richmond crichm...@referentia.com

So how can I access variables that I have populated from within that scope
delimiter(accumulate)?  For instance if I did want to access the delayTime,
what strategy should be used?

 

Thanks,


Chris

  _  

From: rules-users-boun...@lists.jboss.org
[mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Edson Tirelli
Sent: Wednesday, June 17, 2009 11:49 AM
To: Rules Users List
Subject: Re: [rules-users] averages on different data types

 


   Chris,

   Remember that accumulate is a scope delimiter, meaning variables bound
inside accumulate are not visible outside of it. The error message you see
is the MVEL way of saying: non-existing variable (I guess you are using mvel
as the dialect for the consequence).

   If you want to know what data objects are being inserted/expired from the
working memory, use a working memory listener.

   []s
   Edson

2009/6/17 Chris Richmond crichm...@referentia.com

Hi guys,

 

Building from the stockticker sample, I have been running my own average
aggregates over time and window length and I have the following rule.it
simply runs a last 10 average and outputs the average(in theory). 

 

rule show averages

when

 

$n : Number( doubleValue  0 ) from accumulate (

 

 

 

$mdo : MyDataObject($tm: delayTime) over window:length(10) from
entry-point DataObject stream,

average( $tm )

 

)

 

 

then

 

System.err.println($tm);

 

End

 

I have set the limit to 0 for the average because I simply want to have it
fire every time, no matter the average(they are all positive)

 

 

However I get this error:

 

Unable to build expression for 'consequence': Failed to compile: 1
compilation error(s): 

 - (1,3) unqualified type in strict mode for: $tm '

System.err.println($tm);

' : [Rule name='show averages']

 

 

If I have the consequence 

 

System.err.println($n);

 

Then it outputs the average no problem, but I am trying to simply output
that indifidual value, delayTime which I have stored in $tm is an integer,
so I cannot figure out why I cannot output this value.Similarly if I
simply try as a consequence:

 

System.err.println($ mdo.delayTime);

 

I get a similar error.

 

What am I doing wrong?

 

Thanks,


Chris


___
rules-users mailing list
rules-users@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@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@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


Re: [rules-users] averages on different data types

2009-06-17 Thread Edson Tirelli
   Oh, ok. Well, if you remove the accumulate and write only the pattern,
then it will fire for each instance. :)

   Edson

2009/6/17 Chris Richmond crichm...@referentia.com

  Ok..I was under the impression that the rule would fire for each Order
 object that was injected, and in that case variables apply to each Order,
 hence accessing them from the consequences(right side) would be from an
 indfividual Order.  I guess I am misundertanding how it works.



 Thanks for the clarification.



 Chris


  --

 *From:* rules-users-boun...@lists.jboss.org [mailto:
 rules-users-boun...@lists.jboss.org] *On Behalf Of *Edson Tirelli
 *Sent:* Wednesday, June 17, 2009 1:37 PM

 *To:* Rules Users List
 *Subject:* Re: [rules-users] averages on different data types




Chris,

Not sure what you mean. If you want to know what is in there for debug
 purposes, I guess the best way is to implement your own average() accumulate
 function that prints out (or do whatever you want) with the bound
 variables/facts.

For regular use, it does not makes sense to allow access to such
 variable because it is bound to multiple values. For instance:

 $tot : Number() from accumulate(
 Order( $value : value ),
 sum( $value ) )

 This pattern will sum all the values from all the Order facts in the
 working memory. Lets imagine that it would be possible to access the $value
 variable outside the accumulate, what Order would it be bound to? So, it
 makes no sense...

  []s
  Edson

 2009/6/17 Chris Richmond crichm...@referentia.com

 So how can I access variables that I have populated from within that scope
 delimiter(accumulate)?  For instance if I did want to access the delayTime,
 what strategy should be used?



 Thanks,


 Chris
  --

 *From:* rules-users-boun...@lists.jboss.org [mailto:
 rules-users-boun...@lists.jboss.org] *On Behalf Of *Edson Tirelli
 *Sent:* Wednesday, June 17, 2009 11:49 AM
 *To:* Rules Users List
 *Subject:* Re: [rules-users] averages on different data types




Chris,

Remember that accumulate is a scope delimiter, meaning variables bound
 inside accumulate are not visible outside of it. The error message you see
 is the MVEL way of saying: non-existing variable (I guess you are using mvel
 as the dialect for the consequence).

If you want to know what data objects are being inserted/expired from
 the working memory, use a working memory listener.

[]s
Edson

 2009/6/17 Chris Richmond crichm...@referentia.com

 Hi guys,



 Building from the stockticker sample, I have been running my own average
 aggregates over time and window length and I have the following rule…it
 simply runs a last 10 average and outputs the average(in theory).



 rule show averages

 when



 $n : Number( doubleValue  0 ) from accumulate (







 $mdo : MyDataObject($tm: delayTime) over window:length(10) from
 entry-point DataObject stream,

 average( $tm )



 )





 then



 System.err.println($tm);



 End



 I have set the limit to 0 for the average because I simply want to have it
 fire every time, no matter the average(they are all positive)





 However I get this error:



 Unable to build expression for 'consequence': Failed to compile: 1
 compilation error(s):

  - (1,3) unqualified type in strict mode for: $tm '

 System.err.println($tm);

 ' : [Rule name='show averages']





 If I have the consequence



 System.err.println($n);



 Then it outputs the average no problem, but I am trying to simply output
 that indifidual value, delayTime which I have stored in $tm is an integer,
 so I cannot figure out why I cannot output this value.Similarly if I
 simply try as a consequence:



 System.err.println($ mdo.delayTime);



 I get a similar error.



 What am I doing wrong?



 Thanks,


 Chris


 ___
 rules-users mailing list
 rules-users@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@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@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@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users