It may also be worth explaining exactly what you aim to achieve through this and why. From what I have seen, most people who ask about introspecting the LHS of rules via the API, don’t actually need to do that.

Steve


On 7 Jan 2014, at 08:56, Wolfgang Laun <wolfgang.laun@gmail.com> wrote:

Hi,

while you continue this line of research you might consider possible
ramifications and snags, and be prepared for them.

The syntax for writing LHS conditions is quite complex - it's more
complex than Java expressions, because the CE eval() alone will give
you (almost) all of that. Rule authors may also use DRL functions,
which could hide field access.

If *you* author the rules, you may be able to avoid the worst, but it
won't be a piece of cake.

Cheers
-W



On 07/01/2014, milen igrachev <igrachev@abv.bg> wrote:
Hello thanks for the quick and precise answer!
 I believe that the time difference will be a bit of a problem for the IRC
chat , but i will be online (channel: #drools user: igrachev) today and will
try to check it often.  However big thanks for the support and the
willingness to help!
 You are saying that the code is there, but is not public and documented.
Well being not public seems to be a problem, but do you  think it is
possible to give me an example with the official Drools "first rule" -
Sample.drl. The one that comes with the first Drools project.  So do you
believe it will be possible to paste me some code on how to retrieve the
information that this ruleset is using one fact of type Message  and two of
it's attributes -  status  and  message.  So just some code in a public
static void main (String [] args) will be great :), or any kind of
explanation :).
 Once again thank you.
 Have a nice day,
Milen



----Original Letter----
From: Mark Proctor mproctor@codehaus.org

About: Re: [rules-users] Is rule introspection available from the Drools
API?

To: Rules Users List

Sent at: Monday, 2014, January 6 16:05:33 EET


The code is there, but it’s not public and not documented, and the code can
be a little hard to understand - as it’s grown organically over the years.



You’ll need to cast and unwrap and look at member vars. Start on the Rule
and the lhs variable. You can always pop onto irc, with live questions,and
we’ll try and respond quickly.

http://www.jboss.org/drools/irc



Mark



On 6 Jan 2014, at 09:51, milen igrachev  igrachev@abv.bg > wrote:



Hello,

is there a way to introspect a Drools file from within java code?

What I need is to be able to identify the facts and the fact attributes
that are used in a given DRL file.



For example if I have a rule stored in a customer.drl DRL file within my
project, containing the following definition:

package myRulePackage



import org.rules.model.Customer

import org.rules.model.Mambership



rule "is eligible customer"

when

$c:Customer(status == "active")

Membership(customer == $c, type == "premium")

then

$c.setEligibilityStatus(true);

end



What i need is a way to understand that this ruleset customer.drl is using
two fact types - Customer and Membership and three of their attributes -
Customer.status, Membership.customer and Membership.type.





I found some information on the internet that such functionality is not
supported, however the information was a bit too old, so I decided to ask
again.





Big thanks for the support!

Milen

_______________________________________________

rules-users mailing list

rules-users@lists.jboss.org

https://lists.jboss.org/mailman/listinfo/rules-users





_______________________________________________

rules-users mailing list

rules-users@lists.jboss.org

https://lists.jboss.org/mailman/listinfo/rules-users



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