[rules-users] Accepted idiom for binding variable to restriction?

Edson Tirelli tirelli at post.com
Thu Jun 3 10:10:02 EDT 2010


   For simple constraints like this, using nested accessors is lighter and
simpler than using from.

   Edson

2010/6/3 Giovanni Motta <mottagio at gmail.com>

> Why not use from? The manual suggest this approach to reason over data that
> is not explicitly asserted in knowledge base. It seems to me that it fits
> best in the requirement of Laird. Please correct me if this is bad practice:
> $response: Response()
> $question: Question(ID == "XYZ") from $response.question
>
> Is there some advantage/disadvantage on using 'from' instead of 'eval' in
> this case?
>
> Regards.
> Giovanni
> 2010/6/2 Edson Tirelli <tirelli at post.com>
>
>
>>    Syntactically speaking, I don't think the eval is necessary:
>>
>>   $response : Response( $question : question, question.ID == "XYZ" )
>>
>>    Behind the scenes Drools will still generate an eval to resolve the
>> nested property constraint, but the rule stays simple to read and maintain.
>>
>>    Edson
>>
>> 2010/6/2 Wolfgang Laun <wolfgang.laun at gmail.com>
>>
>> The "inline eval" constraint is what you want: a boolean expression,
>>> within parentheses.
>>>
>>>   $response : Response( $question : question,
>>> eval(question.getID().equals( "XYZ" ) ) )
>>>
>>> See the Drools Expert manual, section on "Left Hand Side..."
>>>
>>> -W
>>>
>>>
>>> On 1 June 2010 23:54, Laird Nelson <ljnelson at gmail.com> wrote:
>>>
>>>> I have a fact that is inserted into my rule base.  It is a Response.
>>>>
>>>> A Response has a Question that it is a response to.  At the moment,
>>>> the Question itself is not separately inserted into the knowledge
>>>> base.  I would ideally like to keep it this way.
>>>>
>>>> What's the best approach for binding variables to both the Response
>>>> and its associated Question?
>>>>
>>>> That is, if the Question were inserted, it would be relatively easy:
>>>>
>>>> when
>>>>  $question : Question( )
>>>>  $response : Response( question == $question )
>>>>
>>>> ...but I'm finding myself somewhat confused how to "extract" a
>>>> Question out of a Response, particularly when, say, I want to "select"
>>>> only Responses whose associated Question IDs are "XYZ":
>>>>
>>>> when
>>>>  $response : Response( $question : question.ID == "XYZ" ) // boy
>>>> howdy does this seem wrong
>>>>
>>>> Is the easiest thing to do here to add a second rule that just inserts
>>>> the questions:
>>>>
>>>> when
>>>>  $response : Response
>>>> then
>>>>  insert($response.getQuestion())
>>>> end
>>>>
>>>> ...?  I would love to stay away from this if I could.
>>>>
>>>> Thanks,
>>>> Laird
>>>> _______________________________________________
>>>> 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
>>>
>>>
>>
>>
>> --
>>  Edson Tirelli
>>  JBoss Drools Core Development
>>  JBoss by Red Hat @ www.jboss.com
>>
>> _______________________________________________
>> 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
>
>


-- 
 Edson Tirelli
 JBoss Drools Core Development
 JBoss by Red Hat @ www.jboss.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20100603/7e61ac5b/attachment.html 


More information about the rules-users mailing list