Bruce Wilcox - May 27, 2017:
checking if user has already asked… simple form is literal asked, in postprocessing memorize onto a fact every input or every sentence and then in control script in future inputs, see if the match a query into that. More complex form is to see if what they say takes them to a rule they’ve executed before. For that you have your responders in topics marked KEEP, in postprocessing you memorize the rule tag generating the output and if the current rule tag is ALREADY in that memorized set you replace the output with your message about repetition
I like the second form but might want to change the topic and retry instead, which I can figure out in the control script. I’m guessing the ‘rule tag’ is what is returned from ^responseruleid () ?
memorizing the ‘hit’ topics - would that look something like:
# someplace in post processing
^createfact(%user %bot ^responseruleid( ))
and checking them would look like:
# someplace in postprocessing
if ( ^query(direct_sc %user %bot ^responseruleid()) )
# do stuff here to not repeat