[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