Actually I like that. If using the same bound var in Jess means that it is
the one instance, I would love to have that, as it would be VERY handy for
DSLs...
Something for 3.1? I think it could be an important feature. Can someone
confirm or deny Jess' behavior?
On 4/20/06, Mark Proctor <[EMAIL PROTECTED]> wrote:
>
> That is what he was hoping to do, but he thought this was equivalent
>
> ?qo <- (QueryObject
> (selectApplication true) )
> ?qo <- (QueryObject
> (orgNetObjectType true) )
> ?qo <- (QueryObject
> (reportType "pmi_net_user") )
> ?qo <- (QueryObject
> (reportType "REPORT_TYPE_WINDOW") )
>
> So he was hoping taht binding each Fact to the same variable would mean
> that it always pointed to the same instance. Now I know this is true for
> field bindings, once you bind it first, no idea if this is true for Fact
> bindings - seems kinda crazy.
>
> Mark
>
>
> Peter Lin wrote:
> > let me see if I understand the problem correctly. if I were to translate
> > this to JESS clips
> >
> > (defrule "All Application Traffic by Org Unit Template Selection Logic"
> > ?qo <- (QueryObject
> > (selectApplication true)
> > (orgNetObjectType true)
> > (reportType "pmi_net_user")
> > (reportType "REPORT_TYPE_WINDOW")
> > )
> > =>
> > (set ?go template "AppUserByOU.ftl")
> > )
> >
> > Is that close to what you're thinking of in JESS? or were you thinking
> of
> > something different?
> >
> > peter
> >
> >
> >
> > On 4/19/06, Mark Proctor <[EMAIL PROTECTED]> wrote:
> >
> >> In Drools 3.0 that is true of bound field variables, which is the same
> in
> >> jess. I haven't done it on Columns. If this is the case in Jess I'll
> look to
> >> add support for it in 3.1 - but I don't see why someone would want to
> >> write a rule like that.
> >>
> >> Mark
> >> Mitch Christensen wrote:
> >>
> >> Wow, that wasn't my understanding at all.
> >>
> >> Going from my (admittedly vague) recollection from Jess, referencing
> the
> >> same fact-binding variable ('qo' in my case) across conditions means
> that
> >> the same fact instance must be used across all conditions.
> >>
> >> In other words the value of 'qo' must be equal across the rule.
> >>
> >> I agree that without fact-binding a cross product would result, but I
> >> thought that the fact/pattern binding eliminated this.
> >>
> >> -Mitch
> >>
> >> -----Original Message-----
> >> From: Mark Proctor [mailto:[EMAIL PROTECTED] <[EMAIL PROTECTED]
> >]
> >> Sent: Wednesday, April 19, 2006 10:43 AM
> >> To: [email protected]
> >> Subject: Re: [drools-user] Changes in RC-2 syntax
> >>
> >> Thats a reallly really really bad rule - unless I misunderstand what
> you
> >> are doing. you are creating a cross product of 16 with that, although
> we
> >> now remove instance equals cross product. So that means you would have
> >> to assert 4 QueryObjects for this to work. If it was working before
> >> thats because the rule was firing repeatedly for the same object and
> >> doing the same set, so you weren't noticing.
> >>
> >> To understand what I mean try this in RC1 and RC2 in the audit view and
> >> you will understand the difference.
> >>
> >>
> >> Mitch Christensen wrote:
> >>
> >> The following used to work in previous versions (though I'm not sure
> >>
> >> which),
> >>
> >>
> >>
> >> rule "All Application Traffic by Org Unit Template Selection Logic"
> >>
> >> when
> >>
> >> qo : QueryObject(selectApplication == true)
> >>
> >> qo : QueryObject(selectUser == true)
> >>
> >> qo : QueryObject(orgNetObjectType ==
> ObjectType.pmi_net_user)
> >>
> >> qo : QueryObject(reportType == Constants.REPORT_TYPE_WINDOW
> )
> >>
> >> then
> >>
> >> qo.setTemplate("AppUserByOU.ftl");
> >>
> >> end
> >>
> >>
> >>
> >> But when I upgraded to RC-2 in order to get it to fire I needed to
> change
> >>
> >> it
> >>
> >> to this,
> >>
> >>
> >>
> >> rule "All Application Traffic by Org Unit Template Selection Logic"
> >>
> >> when
> >>
> >> qo : QueryObject(selectApplication == true,
> >>
> >> selectUser == true,
> >>
> >> orgNetObjectType ==
> >> ObjectType.pmi_net_user,
> >>
> >> reportType ==
> >> Constants.REPORT_TYPE_WINDOW)
> >>
> >> then
> >>
> >> qo.setTemplate("AppUserByOU.ftl");
> >>
> >> end
> >>
> >>
> >>
> >> Which is fine, I understand that the latter is completely resolved
> within
> >> the alpha/pattern network, but what impact will it have on my ability
> to
> >> define DSL? It seems the former would lend itself to a more
> >>
> >> straightforward
> >>
> >> DSL implementation.
> >>
> >>
> >>
> >> Also, it seems that the former should still be valid, though less
> >>
> >> efficient.
> >>
> >>
> >>
> >> -Mitch
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >
> >
>
>
>