[rules-users] Rule one-by-one comparison

2011-08-26 Thread miguel machado
Hi there everybody,

I need to perform rule comparison on a project I'm working on using drools
expert 5.0. For a specific feature implementation, I have two different
knowledge bases with several rules which I need to compare, one by one. By
comparing, I mean inspect certain conditions within the LHS.

Currently, I'm able to obtain several attributes from rules
(org.drools.rule.Rule), such as the agenda-group and the rule name and a few
others, but I haven't been able to do it all. Going deeper, there is
LiteralConstraint (for simple conditions) which I can parse and obtain data.
However, I don't know how to do it for OR-conditions, which I guess
represents a MultiRestrictionFieldConstraint. Perhaps there is another way?

I know this may seem like a very unorthodox thing to do, but I don't think
there is a better way of comparing knowledge packages (except for full text
comparison). Is there?

Thanks in advance,
_ miguel, PT


-- 
To understand what is recursion you must first understand recursion
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


Re: [rules-users] Rule one-by-one comparison

2011-08-26 Thread miguel machado
Hi there,

Thanks for replying. I will try to explain my current challenge a bit
further:

I have a ruleset which is sent by an external application in XML format. I
load it to a new knowledge package and then into a knowlegde base. It is
made of smaller subsets of 3 rules each (a set rule, a reset rule and a
clear rule) that control my application's internal logic, which must be
stateful and kept on disk (basically, there are 2 important hashmaps).

Whenever the rules change, a new XML ruleset is sent and my application
restarts and loads the new file the exact same way. However, I need to
resume the application state (as it was before the restart). I also have to
do this selectively, because I only care about the application state on a
per-rule basis:

- If a rule keeps the same LHS, I need to resume the application state
before restart regarding that rule;
- If a rule has been modified, I may discard the state regarding that rule
(do not need to load it);

I don't think I can refactor this problem into smaller ones, the application
internal logic is indeed complex I'm afraid. The rules are analyzed in a
stateless way BUT they control a set of critical information which must be
stateful (beyond restarts). There is a (not-so-direct) correspondence
between each (fire, reset, clear) rule subset and the information that keeps
track of the internal state, so that's why I need to verify rule-by-rule
what has changed between restarts.

I hope this helps to describe the problem.
Thanks again for reading. Any help is greatly appreciated.

_ miguel, PT





2011/8/26 Swindells, Thomas tswinde...@nds.com

  Can you share what you actual requirement is and why you need to do it?**
 **

 Can you perhaps change the problem into one that is simpler to solve?

 Ie rather than comparing knowledge bases can you get the input to these
 knowledgebases?

 Can you control what that input is, if it is a DSL or a spreadsheet then
 your comparision job will probably become a lot simpler.

 ** **

 Thomas

 ** **

 *From:* rules-users-boun...@lists.jboss.org [mailto:
 rules-users-boun...@lists.jboss.org] *On Behalf Of *miguel machado
 *Sent:* 26 August 2011 13:01
 *To:* Rules Users List
 *Subject:* Re: [rules-users] Rule one-by-one comparison

 ** **

 Esteban,

 ** **

 Thank you very much for that. I will look into it.

 Any other ideas, anyone?

 ** **

 _ miguel

 ** **

 ** **

 ** **

 2011/8/26 Esteban Aliverti esteban.alive...@gmail.com

 You can try to use drools-verifier. This project basically lets you define
 rules about your rules. 

 You can have a look at its tests to see how it works.

 You can get more info about drools-verifier here:
 http://community.jboss.org/wiki/DroolsVerifier

 ** **

 And here you can see how are we using drools-verifier inside Guvnor:
 http://ilesteban.wordpress.com/2010/04/05/guvnors-field-constraints/ 

 ** **

 Best Regards,


 

 Esteban Aliverti
 - Developer @ http://www.plugtree.com
 - Blog @ http://ilesteban.wordpress.com

 

 2011/8/26 miguel machado mls.mach...@gmail.com

  Hi there everybody,
 

 ** **

 I need to perform rule comparison on a project I'm working on using drools
 expert 5.0. For a specific feature implementation, I have two different
 knowledge bases with several rules which I need to compare, one by one. By
 comparing, I mean inspect certain conditions within the LHS.

 ** **

 Currently, I'm able to obtain several attributes from rules
 (org.drools.rule.Rule), such as the agenda-group and the rule name and a few
 others, but I haven't been able to do it all. Going deeper, there is
 LiteralConstraint (for simple conditions) which I can parse and obtain data.
 However, I don't know how to do it for OR-conditions, which I guess
 represents a MultiRestrictionFieldConstraint. Perhaps there is another way?
 

 ** **

 I know this may seem like a very unorthodox thing to do, but I don't think
 there is a better way of comparing knowledge packages (except for full text
 comparison). Is there?

 ** **

 Thanks in advance,

 _ miguel, PT

 ** **

 ** **

 -- 

 To understand what is recursion you must first understand recursion

 ** **

 ** **

 ___
 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



 

 ** **

 -- 

 To understand what is recursion you must first understand recursion

 ** **

 --


 **
 This message is confidential and intended only for the addressee. If you
 have received this message in error, please immediately

Re: [rules-users] Rule one-by-one comparison

2011-08-26 Thread Swindells, Thomas
Wouldn't it be easier to analyze the pre-converted xml document rather than 
trying to do it on the compiled knowledge base (presumably you keep the old xml 
file around) - this way it is just string and xml manipulation, though it 
depends on how exactly the matches must be.

Thomas

From: rules-users-boun...@lists.jboss.org 
[mailto:rules-users-boun...@lists.jboss.org] On Behalf Of miguel machado
Sent: 26 August 2011 15:55
To: Rules Users List
Subject: Re: [rules-users] Rule one-by-one comparison

Hi there,

Thanks for replying. I will try to explain my current challenge a bit further:

I have a ruleset which is sent by an external application in XML format. I load 
it to a new knowledge package and then into a knowlegde base. It is made of 
smaller subsets of 3 rules each (a set rule, a reset rule and a clear 
rule) that control my application's internal logic, which must be stateful and 
kept on disk (basically, there are 2 important hashmaps).

Whenever the rules change, a new XML ruleset is sent and my application 
restarts and loads the new file the exact same way. However, I need to resume 
the application state (as it was before the restart). I also have to do this 
selectively, because I only care about the application state on a per-rule 
basis:

- If a rule keeps the same LHS, I need to resume the application state before 
restart regarding that rule;
- If a rule has been modified, I may discard the state regarding that rule (do 
not need to load it);

I don't think I can refactor this problem into smaller ones, the application 
internal logic is indeed complex I'm afraid. The rules are analyzed in a 
stateless way BUT they control a set of critical information which must be 
stateful (beyond restarts). There is a (not-so-direct) correspondence between 
each (fire, reset, clear) rule subset and the information that keeps track of 
the internal state, so that's why I need to verify rule-by-rule what has 
changed between restarts.

I hope this helps to describe the problem.
Thanks again for reading. Any help is greatly appreciated.

_ miguel, PT





2011/8/26 Swindells, Thomas tswinde...@nds.commailto:tswinde...@nds.com
Can you share what you actual requirement is and why you need to do it?
Can you perhaps change the problem into one that is simpler to solve?
Ie rather than comparing knowledge bases can you get the input to these 
knowledgebases?
Can you control what that input is, if it is a DSL or a spreadsheet then your 
comparision job will probably become a lot simpler.

Thomas

From: 
rules-users-boun...@lists.jboss.orgmailto:rules-users-boun...@lists.jboss.org 
[mailto:rules-users-boun...@lists.jboss.orgmailto:rules-users-boun...@lists.jboss.org]
 On Behalf Of miguel machado
Sent: 26 August 2011 13:01
To: Rules Users List
Subject: Re: [rules-users] Rule one-by-one comparison

Esteban,

Thank you very much for that. I will look into it.
Any other ideas, anyone?

_ miguel



2011/8/26 Esteban Aliverti 
esteban.alive...@gmail.commailto:esteban.alive...@gmail.com
You can try to use drools-verifier. This project basically lets you define 
rules about your rules.
You can have a look at its tests to see how it works.
You can get more info about drools-verifier here: 
http://community.jboss.org/wiki/DroolsVerifier

And here you can see how are we using drools-verifier inside Guvnor: 
http://ilesteban.wordpress.com/2010/04/05/guvnors-field-constraints/

Best Regards,



Esteban Aliverti
- Developer @ http://www.plugtree.com
- Blog @ http://ilesteban.wordpress.com
2011/8/26 miguel machado mls.mach...@gmail.commailto:mls.mach...@gmail.com
Hi there everybody,

I need to perform rule comparison on a project I'm working on using drools 
expert 5.0. For a specific feature implementation, I have two different 
knowledge bases with several rules which I need to compare, one by one. By 
comparing, I mean inspect certain conditions within the LHS.

Currently, I'm able to obtain several attributes from rules 
(org.drools.rule.Rule), such as the agenda-group and the rule name and a few 
others, but I haven't been able to do it all. Going deeper, there is 
LiteralConstraint (for simple conditions) which I can parse and obtain data. 
However, I don't know how to do it for OR-conditions, which I guess represents 
a MultiRestrictionFieldConstraint. Perhaps there is another way?

I know this may seem like a very unorthodox thing to do, but I don't think 
there is a better way of comparing knowledge packages (except for full text 
comparison). Is there?

Thanks in advance,
_ miguel, PT


--
To understand what is recursion you must first understand recursion


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


___
rules-users mailing list
rules-users@lists.jboss.orgmailto:rules-users

Re: [rules-users] Rule one-by-one comparison

2011-08-26 Thread Wolfgang Laun
Perhaps you consider using JAXB for creating Java classes from the XML
schema, which lets you unmarshall the XML file into an object tree which is
easy to traverse and provides you with all the data as objects and lists; no
string parsing at all.

-W


2011/8/26 miguel machado mls.mach...@gmail.com

 Hi there,

 I'm considering analyzing the pre-compiled xml document as a last resort:
 I actually find it easier to deal with objects/collections/arrays than with
 Strings and XML, etc. This is a personal stance with no much foundation
 regarding this specific drools scenario, really.

 What I need to do (before the actual comparison) is to group the rules
 according to the agenda-group plus a variable value within a condition
 within every rule, such as this:

 rule
   ...
   rule-attribute name=agenda-group value=0da90b15 /
   ...
   field-constraint field-name=object
 literal-restriction evaluator=== value=d: / !--
 LiteralConstraint java object --
   /field-constraint
   ...
 /rule

 (in this case I'd like to index this rule to a 2-key hashmap = [0da90b15,
 d:])

 XML manipulation would mean parsing hundreds of rules, extracting the
 agenda-group and the object condition manually. Further down the road, I
 will also need to extract the whole LHS to perform the comparison. I'm
 afraid this would take too long, but I might be wrong.

 Thanks again,
 _ miguel, PT



 2011/8/26 Swindells, Thomas tswinde...@nds.com

 Wouldn’t it be easier to analyze the pre-converted xml document rather
 than trying to do it on the compiled knowledge base (presumably you keep the
 old xml file around) – this way it is just string and xml manipulation,
 though it depends on how exactly the matches must be.

 ** **

 Thomas

 ** **

 *From:* rules-users-boun...@lists.jboss.org [mailto:
 rules-users-boun...@lists.jboss.org] *On Behalf Of *miguel machado
 *Sent:* 26 August 2011 15:55

 *To:* Rules Users List
 *Subject:* Re: [rules-users] Rule one-by-one comparison

 ** **

 Hi there,

 ** **

 Thanks for replying. I will try to explain my current challenge a bit
 further:

 ** **

 I have a ruleset which is sent by an external application in XML format. I
 load it to a new knowledge package and then into a knowlegde base. It is
 made of smaller subsets of 3 rules each (a set rule, a reset rule and a
 clear rule) that control my application's internal logic, which must be
 stateful and kept on disk (basically, there are 2 important hashmaps).***
 *

 ** **

 Whenever the rules change, a new XML ruleset is sent and my application
 restarts and loads the new file the exact same way. However, I need to
 resume the application state (as it was before the restart). I also have to
 do this selectively, because I only care about the application state on a
 per-rule basis:

 ** **

 - If a rule keeps the same LHS, I need to resume the application state
 before restart regarding that rule;

 - If a rule has been modified, I may discard the state regarding that rule
 (do not need to load it);

 ** **

 I don't think I can refactor this problem into smaller ones, the
 application internal logic is indeed complex I'm afraid. The rules are
 analyzed in a stateless way BUT they control a set of critical information
 which must be stateful (beyond restarts). There is a (not-so-direct)
 correspondence between each (fire, reset, clear) rule subset and the
 information that keeps track of the internal state, so that's why I need to
 verify rule-by-rule what has changed between restarts.

 ** **

 I hope this helps to describe the problem.

 Thanks again for reading. Any help is greatly appreciated.

 ** **

 _ miguel, PT

 ** **

 ** **

 ** **

 ** **

 ** **

 2011/8/26 Swindells, Thomas tswinde...@nds.com

 Can you share what you actual requirement is and why you need to do it?**
 **

 Can you perhaps change the problem into one that is simpler to solve?

 Ie rather than comparing knowledge bases can you get the input to these
 knowledgebases?

 Can you control what that input is, if it is a DSL or a spreadsheet then
 your comparision job will probably become a lot simpler.

  

 Thomas

  

 *From:* rules-users-boun...@lists.jboss.org [mailto:
 rules-users-boun...@lists.jboss.org] *On Behalf Of *miguel machado
 *Sent:* 26 August 2011 13:01
 *To:* Rules Users List
 *Subject:* Re: [rules-users] Rule one-by-one comparison

  

 Esteban,

  

 Thank you very much for that. I will look into it.

 Any other ideas, anyone?

  

 _ miguel

  

  

  

 2011/8/26 Esteban Aliverti esteban.alive...@gmail.com

 You can try to use drools-verifier. This project basically lets you define
 rules about your rules. 

 You can have a look at its tests to see how it works.

 You can get more info about drools-verifier here:
 http://community.jboss.org/wiki/DroolsVerifier

  

 And here you can see how are we using drools