I'm in the middle of something similar (Q/A's leading to a solution).

In the GUI, I currently present the user, as the interview progresses,
with the set of answers that have been provided at every stage (and
also a view to the solution elements). I will offer the user the
option to click on a previous answer and change it, and plan to do so
by 1) resetting the engine and 2) asserting the original set of
answers minus the answers that may now be invalid.

So, if the user has answered N questions and decides they want to
change their answer at stage K (K <= N), then reset the engine, and
assert the answers given for stages 1 thru K - 1. Since we start with
a clean engine, there's no need to keep track of state.

Does anyone see a problem with this strategy?

Thanks,

Hector Urroz


On 3/7/06, Jason Morris <[EMAIL PROTECTED]> wrote:
> Hi Nan,
>
> >>On 3/6/06, Nan <[EMAIL PROTECTED]> wrote:
> >> During the questioning session, the user may change
> >>his/her mind to a question. What is the best way to deal with that 
> >>situation?
>
> Recall that rule activations in Jess can be retracted if new facts
> appear that logically contradict the actively matched patterns in the
> current engine cycle.  Therefore, one simple solution would be to
> provide an "interrupt" or "change answer" function that:
>
> (1) Allows a user to interrupt the current process (if one is running
> and/or a break is needed),
> (2) Reverts the application to its last known stable state via an Undo
> function call (if necessary)
> (3) Selects a previous answer, and
> (4) Re-answers the corresponding question (subsequently asserting new
> facts and causing new activations and retractions).
> (5) Runs the rule engine on the new fact(s).
>
> This function can be offered as a command line option.  For example,
> if all your questions were, for sake of argument, of the form (yes |
> no), then you could have a command line prompt like the following:
>
> cyberES:> Q. 34 - Do you like to dance? (y = yes | n = no | b = back-up)
> cyberES:> b  [Enter]
> cyberES:> Enter the question number to re-answer: (l = list all questions)
> cyberES:> 32 [Enter]
> cyberES:> Q. 32 - Do you like spicy food? (y = yes | n = no | b = back-up)
> cyberES:> no [Enter]
> cyberES:> Q. 32 changed from "yes" to "no".  Continuing...
> cyberES:> Q. 34 - Do you like to dance? (y = yes | n = no | b = back-up)
>
> Of course, this is all easy to do with your favorite GUI builder, too.
>
> Cheers,
> Jason
>
> -----------------------------------------------------
> Morris Technical Solutions LLC
> www.morristechnicalsolutions.com
> [EMAIL PROTECTED]
> phone/fax: 503.692.1088
>
>
> --------------------------------------------------------------------
> To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
> in the BODY of a message to [EMAIL PROTECTED], NOT to the list
> (use your own address!) List problems? Notify [EMAIL PROTECTED]
> --------------------------------------------------------------------
>
>


--
Hector Urroz
[EMAIL PROTECTED]


--------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
in the BODY of a message to [EMAIL PROTECTED], NOT to the list
(use your own address!) List problems? Notify [EMAIL PROTECTED]
--------------------------------------------------------------------

Reply via email to