I say theory because this is going to be more rambling about theoretical applications and implementation of a fuzzy menu system than an announcement or declaration of any specific project, but it might have application within the rework of Simms that I'm strongly considering. Anyway, so what is a fuzzy menu system? A menu system designed to be used with natural-language interfacing, specifically, a conversational rather than list-based menu. For example, instead of asking the user to pick the number of an item in a numbered list, and which fails to understand any non-integer, numeric input, a fuzzy menu takes contextual clues from input, knows a set of keywords necessary to select an option, and stochastically determines which option the user is selecting.
Stochastic Determination Metric
Two things must be defined in order to create a fuzzy menu, first a scale from full negative to full positive, and second a set of thresholds for authoritatively selecting or discarding a choice. A preliminary set of metrics might be set thusly:
-1.0 :: Absolute Negative
:
-0.6 :: Negative Threshold
:
0.0 :: Indeterminate
:
0.6 :: Positive Threshold
:
1.0 :: Absolute Positive
Determination Process
Every time there is a choice to be made, the user needs some way to indicate his or her selection, and since this is a natural language system, this needs to be through sentences, and in order to avoid confining the user to strict and specific language, the best way to choose between options is a keyword-based selection algorithm. In addition, in order to adequately accomodate both questions where several positive options must be given, and questions where there are positive and negative options, choices can be attributed keywords that both positively and negatively choose that option. Positive keywords contribute towards definitely selecting an option, and negative keywords contribute towards definitely deselecting an option. One side effect of this system is that a fuzzy menu can have only a single option, and is only answered fully when the stochastic index on that option goes above the positive threshold or below the negative threshold. The following steps should occur to set up and then use fuzzy menus:
Initialization
Code:
Determination
Code:
Stochastic Determination Metric
Two things must be defined in order to create a fuzzy menu, first a scale from full negative to full positive, and second a set of thresholds for authoritatively selecting or discarding a choice. A preliminary set of metrics might be set thusly:
-1.0 :: Absolute Negative
:
-0.6 :: Negative Threshold
:
0.0 :: Indeterminate
:
0.6 :: Positive Threshold
:
1.0 :: Absolute Positive
Determination Process
Every time there is a choice to be made, the user needs some way to indicate his or her selection, and since this is a natural language system, this needs to be through sentences, and in order to avoid confining the user to strict and specific language, the best way to choose between options is a keyword-based selection algorithm. In addition, in order to adequately accomodate both questions where several positive options must be given, and questions where there are positive and negative options, choices can be attributed keywords that both positively and negatively choose that option. Positive keywords contribute towards definitely selecting an option, and negative keywords contribute towards definitely deselecting an option. One side effect of this system is that a fuzzy menu can have only a single option, and is only answered fully when the stochastic index on that option goes above the positive threshold or below the negative threshold. The following steps should occur to set up and then use fuzzy menus:
Initialization
Code:
> Phrase the question to be answered to the user in natural-language
> Each possible response needs a set of keywords that define a positive selection of that response and a set of keywords that define a negative selection of that response
> Each keyword is given equal weight unless the fuzzy menu is set otherwise.
> Start with each option having a stochastic index of 0 - perfectly indeterminate, weighted towards neither a positive or a negative. This is one main instance where a fuzzy menu is different from a normal computerized selection scheme, where each possible option is a binary positive (1, true) or negative (0, false)
Determination
Code:
> While is a zero or plural number of selections with indices above the positive threshold or below the negative threshold
>> Request input from the user
>> For each of the keywords in the input, check against the keywords for each choice and update each choice's stochastic index as necessary.
> End While