Can anyone explain to me why this does not work? Why can't I use (deffacts initial-facts "Facts to trigger a few appropriate salient initialization rules." (assert-request-parameters))
(defrule assert-request-parameters-rule "Assert stored data one time." (declare (salience 100)) ?x <- (assert-request-parameters) => (foreach ?key (((fetch request-parameter-map) keySet) iterator) (build str-cat "(assert (" ?key " " ((fetch request-parameter-map) get ?key) "))")) ; why not (assert (?key ((fetch request-parameter-map) get ?key)))) (retract ?x)) (bind ?map (new java.util.HashMap)) (?map put one 1) (?map put two 2) (?map put three 3) (store request-parameter-map ?map) (reset) (facts) (run) (facts) Jess, the Rule Engine for the Java Platform Copyright (C) 2008 Sandia Corporation Jess Version 7.1p2 11/5/2008 This copy of Jess will expire in 207 day(s). f-0 (MAIN::initial-fact) f-1 (MAIN::assert-request-parameters) For a total of 2 facts in module MAIN. f-0 (MAIN::initial-fact) For a total of 1 facts in module MAIN.