Rete has listDefrules and Defrule has getConditionalElements, which
lets you retrieve its constituents, depending on it being a Pattern or
Accumulate; if it is a Group you must recurse down... It's like
walking an AST

RHS is similar. But note that fact modifications are possible in
functions, so if one of these is called on the RHS, you'll have to
investigate in depth.

Expect to have some fun ;-)


On 14/08/2013, Przemyslaw Woznowski <> wrote:
> Dear Jess users.
> What I am trying to do is to dynamically list all the defrules together
> with their LHS and RHS facts excluding any conditions. Basically what I
> mean is that, for example, if there are Person and Car facts on the rule's
> LHS and the rule asserts an Owner fact, deletes the Car fact and modifies
> the Person fact. I would like to create a data structure that would, for
> each rule, carry it's name and the facts it needs to fire (excluding any
> conditions just deftemplate's name) and any deftemplates that appear on the
> rule's RHS. So for the example above, something like:
> Rule_1
>  needs: Person, Car
>  asserts: Owner
>  modifies: Person
>  deletes: Car
> I can get a list of all defrules via the listDefrules() method called on
> the Rete object but then it gets tricky. The listNodes() method called on
> the HasLHS object gives a textual description of the rule's LHS but I
> cannot find a method that would simply return name of facts on the LHS.
> Some text processing would solve the rule's LHS problem as I can look for
> occurrences of "::" to find facts. However, the rule's RHS is more
> problematic as I cannot find a method that would give me what I want.
> I would appreciate your help with this one.
> Best regards,
> Pete
> --
> Przemyslaw (Pete) Woznowski, PhD candidate & RA
> Email:
> Room C/2.06, Desk 8
> Cardiff School of Computer Science & Informatics,
> Cardiff University,
> Queen's Buildings,
> 5 The Parade, Roath,
> Cardiff, CF24 3AA, UK
> & School of Healthcare Studies,
> Cardiff University
> Cardigan House
> Heath Park Campus
> Cardiff, CF14 4XN, UK
To unsubscribe, send the words 'unsubscribe jess-users'
in the BODY of a message to, NOT to the list
(use your own address!) List problems? Notify

Reply via email to