0
votes

I am new to CLIPS development and I need to retrieve a rule body and store it in string in order to parse it. I tried to redirect the defrule stream but without success. Is there any way to do it like that or does it exist a special command that I would have forgotten.

(defrule one
  (fact a)
  =>
  (assert (fact b)))


 (bind ?str (ppdefrule one))

one rule displaying but ?str is empty

Thank you for your time and consideration.

1

1 Answers

0
votes

There's not a clean way to do this out of the box, but there's a C API for retrieving the text, so you could extend CLIPS with a user-defined function to allow you to do this. The alternative would be to use dribble-on/dribble-off to capture the output in a file, but this would also display the output to the screen each time you retrieved the rule text.