[rules-users] Getting Started with an simple sample

Bojan Janisch bojan.janisch at scai.fraunhofer.de
Fri Apr 26 10:30:04 EDT 2013


Ahhh now I get it. Yeah my fault, sorry.


----- Ursprüngliche Mail -----
Von: Wolfgang Laun <wolfgang.laun at gmail.com>
An: Rules Users List <rules-users at lists.jboss.org>
Gesendet: Fri, 26 Apr 2013 16:10:08 +0200 (CEST)
Betreff: Re: [rules-users] Getting Started with an simple sample

     $mes:MeasureResult(result >= 5, mes_detector:detector)
     not MeasureResult(mes_detector == detector)

=>

     There is a MeasureResult x with result >= 5 and detector d
and
     there is no MeasureResult with detector d

=>

     There is a MeasureResult x with detector d
and
      there is no MeasureResult with detector d


On 26/04/2013, Bojan Janisch <bojan.janisch at scai.fraunhofer.de> wrote:
>> Should the creation of the external file depend on the existence of
>> *any* MeasureResult (with the same detector)? No, because:
>
> The rule doesn't depend on *any* MeasureResult, it depends on the detector
> which created the file. I've understood that each detector shall only
> create one file and thats exactly what the rule is doing.
>
>>  - There always is one, otherwise the 1st pattern wouldn't be true.
>
> There isn't always a file, for example if you only get the Result 4 from
> each
> detector, then nothing happens.
>
>>  - Apart from that: all existing MeasureResult's could be below 5, and
>> this should not block file creation.
>
> Why should a Result from below 5 block the file creation? Isn't the
> condition
> that a result is 5 or above needed for filecreation? So the detector has at
> least
> one time returned 5 or above.
>
> So I don't really get the point whats bothering you.
>
> Greetings
> Bojan
>
> ----- Ursprüngliche Mail -----
> Von: Wolfgang Laun <wolfgang.laun at gmail.com>
> An: Rules Users List <rules-users at lists.jboss.org>
> Gesendet: Fri, 26 Apr 2013 13:54:30 +0200 (CEST)
> Betreff: Re: [rules-users] Getting Started with an simple sample
>
> Hmm...
>
> On 26/04/2013, Bojan Janisch <bojan.janisch at scai.fraunhofer.de> wrote:
>> I didn't know that there is another condition to test for.
>>
>> So there has to be a second condition that checks if the detector that
>> returned the result has already created a file.
>> Just add a further field into the MeasureResult object, which now should
>> contain a value and a detector.
>>
>> Now you should change your rules to something like this:
>>
>> rule "Measure >= 5"
>> when
>>     $mes:MeasureResult(result >= 5, mes_detector:detector)
>>     not MeasureResult(mes_detector == detector)
>> then
>>     //insert textfile creation here
>> end
>
> Should the creation of the external file depend on the existence of
> *any* MeasureResult (with the same detector)? No, because:
>  - There always is one, otherwise the 1st pattern wouldn't be true.
>  - Apart from that: all existing MeasureResult's could be below 5, and
> this should not block file creation.
>
> -W
>
>
>>
>> rule "Measure <= 3"
>> when
>>     $mes:MeasureResult(result <= 3, mes_detector:detector)
>>     not MeasureResult(mes_detector == detector)
>> then
>>     //insert textfile deletion here
>> end
>>
>> The first condition again tests for the result and in addition it saves
>> the
>> detector that created the result into the field mes_detector.
>> The second condition now says that there shall not be a MeasureResult
>> which
>> has a detector that already created a result.
>>
>> Note that you have to retract the MeasureResult object from the Session
>> when
>> you remove a file so that the detector can create a file again.
>>
>> Greetings
>> Bojan
>>
>> ----- Ursprüngliche Mail -----
>> Von: Stefan Schuster <stefan.m.schuster at gmail.com>
>> An: Rules Users List <rules-users at lists.jboss.org>
>> Gesendet: Fri, 26 Apr 2013 12:22:12 +0200 (CEST)
>> Betreff: Re: [rules-users] Getting Started with an simple sample
>>
>> Hi Bojan,
>>
>> thanks a lot for your fast response.
>>
>> but how can I guarantee that there is only one textfile per detector
>> created, even if the detecor has a value above 5 for a longer time?
>> Obviously the method for textfile-creation could check if there already
>> exists a file on the filesystem, but that doesn't feel "drools-like" to
>> me.
>>
>> further ideas?
>>
>> thanks
>> Stefan
>>
>>
>> 2013/4/26 Bojan Janisch <bojan.janisch at scai.fraunhofer.de>
>>
>>> Hi Stefan,
>>>
>>> after you know what in the knowledgesession shall be, you have to think
>>> how you could check the value that the detectors return. For this you
>>> could
>>> create a new class e.g. MeasureResult which contains the result of the
>>> detectors. So instead of inserting the value, you insert the object (that
>>> contains the value) into the session. Now your rule only have to check if
>>> there is a MeasureResult object and depending on the value, do something.
>>>
>>> For example:
>>>
>>> rule "Measure >= 5"
>>> when
>>>     MeasureResult(result >= 5)
>>> then
>>>     //insert textfile creation here
>>> end
>>>
>>> rule "Measure <= 3"
>>> when
>>>     MeasureResult(result <= 3)
>>> then
>>>     //insert textfile deletion here
>>> end
>>>
>>> Of course for these rules your MeasureResult class need a variable called
>>> result and getter-Methods for it.
>>>
>>> Greetings
>>> Bojan
>>>
>>>
>>>
>>> ----- Ursprüngliche Mail -----
>>> Von: "Stefan Schuster" <stefan.m.schuster at gmail.com>
>>> An: "Rules Users List" <rules-users at lists.jboss.org>
>>> Gesendet: Freitag, 26. April 2013 11:30:40
>>> Betreff: [rules-users] Getting Started with an simple sample
>>>
>>>
>>>
>>>
>>>
>>> Hello,
>>>
>>> I’m still in the phase of learning the basics with drools. Therefor I
>>> created a simplified problem that I try to realize it with drools:
>>>
>>> I have several detectors, each of them measures something and converts it
>>> into an integer value between 1 one 6. Every Minute a new measurement is
>>> performed.
>>>
>>> When a detector reaches a value of 5 or above, a textfile is created with
>>> the name of the detector as filename and a predefined text as content.
>>> When
>>> the detector reaches a value of 3 or less, the texfile is deleted.
>>>
>>> My problem is that I’m still “thinking in java” and not yet “thinking in
>>> drools”.
>>>
>>> I guess the measured values would be facts that I insert (like the
>>> key-pressed events in the pong-example) to the knowledgebase. But now I
>>> stumble, I have no idea how to continue. Could anyone give me a helping
>>> hand for the next steps?
>>>
>>> Thanks in advance
>>>
>>> Stefan
>>> _______________________________________________
>>> rules-users mailing list
>>> rules-users at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/rules-users
>>>
>>> _______________________________________________
>>> rules-users mailing list
>>> rules-users at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users

_______________________________________________
rules-users mailing list
rules-users at lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users




More information about the rules-users mailing list