Hi Michael,

Thanks for you answer! Following you suggestion I've taken a look at at "logical insertions" and on one hand I have to say that it looks like what I need, but on the other hand it is not clear to me how to "implement it".

If you have some time to take a look, here are the objects in my session:
- one T object (something that can be considered as a "type" object)
- many I objects (something that can be considered as "instance" objects), I objects have one "type" field beeing a T (there is no link from T to Is)

Those facts are inserted into the session and I have the impression that we are not speaking here of logical insertions: they have to be here, it is the input data the user has to write rules on.
The user can decide to retract the T object: in this case all I objects have to be retracted as well.
The user can decide to retract some I objects: when all of them have been retracted, the T object should be retracted as well.

The first "solution" I imagined was to have high-salience rules:

rule "1"
when
       t : T
       not I(type == t)
then
       retract t

rule "2"
when
       i : I(t : type)
       not Type (this == t)
then
       retract i

The other solution I imagined (that I have not tried) was to retract facts using a WorkingMemoryEventHandler.
However as I am a Drools' absolute beginner (not only to Drools, but to the rule paradigm itself), I was wondering what is the "most natural way" for you guys to implement that behavior :-).

Bruno.


Michael Anstis a écrit :
Would the other retractions be automatically provided for by Drools' Truth Maintenance?

Otherwise, passing a StatefulKnowledgeSession to a WorkingMemoryEventHandler subclass and invoking it's methods should, IMO, not be an issue.

Have you tried it and experienced issues?

On 6 December 2010 09:32, Bruno Freudensprung <bruno.freudensprung@temis.com> wrote:
Hi everyone,

Do you know if it is possible to insert/modify/retract facts in a
working memory event handler?

Here is my use case actually: I want my users to be able to write rules
like "When ... Then retract X" without having to bother with the
consequences of  retracting X on the other objects of the sessions (some
of them might be retracted as well). These consequences can be expressed
by rules, but I would like them to be kind of "part of the framework"
and it would be easier for users if those rules were implicitly defined.

Many thanks in advance for any hint,
Best regards,

Bruno.

_______________________________________________
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