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:
> 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
Kerm:

This is an awesome idea and I've envisioned something like this myself but I know I'll never get around to it. As I was reading through the article, I would like to state that words have a different level of positive and negative values. For instance, "I will not do it" holds more negativity than "I can not do it."

When someone says the will not do something, it implies they have no intention of completing or starting the task at hand. But if I were to say I can not do it, I'd probably be implying that I am unable to complete or start the task at hand with any of my current knowledge and that I have interest in continuing.

Though the difference between the overall values may be miniscule, the difference could mean a pass or fail on a Turners Test :|
Do you mean a Turing test?
If so, I must ask, is that (to fool a human into thinking it too is human) the goal? I thought this was more of an alternative interface thing... That is, the user knows he or she is using a computer, but wants to interact with the computer in an intuitive way.
I'm not really sure what this has to do with menus?

Fuzzy logic is nothing new, though. Hell, there is a pretty large wikipedia article on the very subject: http://en.wikipedia.org/wiki/Fuzzy_logic

It will be more impressive when/if you can get it to work well. The theory doesn't really mean much - 'tis been thought of before Wink
jbr wrote:
Do you mean a Turing test?
If so, I must ask, is that (to fool a human into thinking it too is human) the goal? I thought this was more of an alternative interface thing... That is, the user knows he or she is using a computer, but wants to interact with the computer in an intuitive way.


Yes, yes. I always thought it was the Turning, instead of Turing. And yes, its a test to see if a computer can fool a human into thinking their talking to another human.

Honestly, I don't think it is Kerms' goal to have this menu system pass the Turing test, but I think having varied values, thus more logic to the program, would improve its performance.

For instance, If I were to say "I don't think I can do that" the program will see "don't" has a -.5 and "can" as a +.5. So the program will read a neutral result (0) and respond with a redundant question like "Can you clarify?". In my opinion, a returned answer can not be neutral when it comes to a computer because eventually you'll be going in loops until the a positive or negative response is determined so it can continue.

As usual, I don't have references to back up my claims - but I've been getting better :) - so I can't say this is how it truly is.

True this is for a menu system, not a robot on AIM, but having improved intelligence doesn't hurt. Sure, there could be five possible answers each at .5 increments, but the program doesn't have to come to a verdict that perfectly matches an answer value. Since different words wil; have different value weights a user doesn't need directly state his answer.

This is STRICTLY an Example:
Quote:

Without Differentiated Values:
How would you like to travel the world?
Perhaps

With Differentiated Values:
How would you like to travel the world?
I don't know; I think it'd be fun.


Hardly anyone is going to answer in one word, Perhaps is also a very neutral word. Maybe they do, Maybe they don't. How's the program to decide? But if they answer in a sentance which uses different values a more personalized follow-up question may be achieved (along with any additional info).

For instance, in the second answer above, the user shows neutrality in the first part of their answer but the second part they express interest. If one were to say this when all the values were the same, the answer would probably be positive because of the word 'fun' and the programs may start asking questions about their favourite climate and culture rather than lightly touching on the subject.

Yes, I'm making a simple thing complex/detailed but that's what I've always seemed to do with the programs I've written for the calcs' and other things since I've moved on.

@Kllrnohj:That link is great! I started getting lost at 'Other Examples' but I'll keep reading it over :D Thanks :)

@jbr:OMG! That red game system in your sig, is that the Virtual Reality (VR) helmet? I don't know the name but I think its a VR system :O
Quote:
@jbr:OMG! That red game system in your sig, is that the Virtual Reality (VR) helmet? I don't know the name but I think its a VR system :O


'Tis the Nintendo Virtual Boy, my friend. Nintendo's only failed system since they became popular with the NES. It encorporated a lot of revolutionary ideas, for example true 3d graphics and a dual d-pad controller, but sadly, its low accessibility and failed advertizing caused it to never get off the ground, so only about 20 games were ever made for it.

The wii is by far nintendo's most successful "playful" product, their previously more successful products being the more serious ones, much to their dismay, I think. It was always Nintendo's goal to be a "toy company" rather than a hardcore gaming company (which is why their consoles are shaped like toys instead of VCRs or DVD players, and are often purple), and only just now is that idea catching on. Take the powerglove, for instance. Surprisingly like the wiimote, this NES peripheral never got much use, but finally the idea of motion tracking through accelerometers has become "mainstream".
Or, take the wii fit. The balance board design was originally used by an NES game that eventually became the Track and Field game integrated on the Super Mario Bros/Duck Hunt carts on the later model NESs.

Anyway, I can tell you that VR gaming isn't as much fun as it would seem to be. I have an ancient VictorMaxx StuntMaster VR headset (originally a peripheral for the SNES, which I picked up a rummage sale for $1), that I modded to use plain old RCA jacks for A/V input, and I have to say, it's practically impossible to see anything on the tiny, low res screen. It has a resolution similar to a Ti 89, to give an example. Actually, that's the best use I've found for it so far: Plug it into my computer, and use it to view VTI (actually, I now use Wabbitemu, it's much better).
jbr wrote:
Quote:
@jbr:OMG! That red game system in your sig, is that the Virtual Reality (VR) helmet? I don't know the name but I think its a VR system :O


'Tis the Nintendo Virtual Boy, my friend. Nintendo's only failed system since they became popular with the NES. It encorporated a lot of revolutionary ideas, for example true 3d graphics and a dual d-pad controller, but sadly, its low accessibility and failed advertizing caused it to never get off the ground, so only about 20 games were ever made for it.


hmm I remember that thing... =D btw whats the black-ish thing 5th from the left?...

(srry Kerm.. for getting off topic)
To answer people's questions, no, I wasn't thinking of trying to pass a Turing test at all. I was about areas where clicking a choice on a menu wasn't really practical, and ways to solve this problem using verbal or written questions and answers, more likely verbal than written. It's an exploration into some of the mechanics of how a natural-language menu selection system might work, and I'm well aware that I'm probably duplicating previous work. Nevertheless, I'd be interested in implementing this and see what happens.
rthprog wrote:
jbr wrote:
Quote:
@jbr:OMG! That red game system in your sig, is that the Virtual Reality (VR) helmet? I don't know the name but I think its a VR system :O


'Tis the Nintendo Virtual Boy, my friend. Nintendo's only failed system since they became popular with the NES. It encorporated a lot of revolutionary ideas, for example true 3d graphics and a dual d-pad controller, but sadly, its low accessibility and failed advertizing caused it to never get off the ground, so only about 20 games were ever made for it.


hmm I remember that thing... =D btw whats the black-ish thing 5<sup>th</sup> from the left?...

(srry Kerm.. for getting off topic)


N64, I believe?
KermMartian wrote:
To answer people's questions, no, I wasn't thinking of trying to pass a Turing test at all. I was about areas where clicking a choice on a menu wasn't really practical, and ways to solve this problem using verbal or written questions and answers, more likely verbal than written. It's an exploration into some of the mechanics of how a natural-language menu selection system might work, and I'm well aware that I'm probably duplicating previous work. Nevertheless, I'd be interested in implementing this and see what happens.


Except natural language doesn't work as a menu replacement. People don't want to go back to a command line style interface Wink

That said, you might be interested in: http://labs.mozilla.com/2008/08/introducing-ubiquity/ which is basically an actual implementation of the type of system you are describing, only in the form of a firefox extension.
KermMartian wrote:
To answer people's questions, no, I wasn't thinking of trying to pass a Turing test at all. I was about areas where clicking a choice on a menu wasn't really practical, and ways to solve this problem using verbal or written questions and answers, more likely verbal than written. It's an exploration into some of the mechanics of how a natural-language menu selection system might work, and I'm well aware that I'm probably duplicating previous work. Nevertheless, I'd be interested in implementing this and see what happens.
I guess I'll have to see it in action. I know what your trying to do, but I don't think I'm clearly conveying my point, and I'm currently unable to find a better way Wink
foamy3 wrote:

N64, I believe?

Nope, N64's 5th from the right, actually. Funny, the one 5th from the left isn't even obscure: it's the Sega Genesis (Mega Drive in PAL countries and Japan). I'll be adding some more systems to that list someday, (when I acquire them or one of their emulators).

Kllrnohj wrote:
That said, you might be interested in: http://labs.mozilla.com/2008/08/introducing-ubiquity/ which is basically an actual implementation of the type of system you are describing, only in the form of a firefox extension.

I actually have ubiquity, and sure, it has cool novelty value, but I find that I don't really use it that much.
I think this natural language menu system would be much better suited to a verbal application.
I have worked with voice driven menus in the past (you know those automated menus you get when you call any major company? That is, "Say 'agent' to talk to a person..." and all that? Yeah, I made one of those for myself), and I have to say, they don't really
flow the way you would want them to. I think that by interpreting the input in a "fuzzy" way, the interaction could leave the user feeling a lot less like they've just been ripped off by a company that downsized its support lines.
jbr wrote:
foamy3 wrote:

N64, I believe?

Nope, N64's 5<sup>th</sup> from the right, actually.


Oh, my bad, I read that as right.
That Ubiquity add-on reminds me of PowerLabs

I haven't logged into there for months >.>
I had some further thoughts about this on the subway this morning, and how it could be extended to have a basic vocabulary with a concept of synonyms and antonyms. If it had a database table of words with (perhaps?) parts of speech and unique ID numbers, it could have another database with connections between words, where 1.0 would be perfect synonym, -1.0 would be perfect antonym, and 0 would be no connection. This could help it understand shades of meaning or different definitions for the same words. Incidentally, Simms works on a similar principal except without the concept of antonyms.
But how would those words connect? You just can't have
Code:
Big | 0271611 | -1.0
You'd need a really large table to list out all the antonyms and synonyms for each applicable word.

Edit: Okay, I read how they'll connect. But what I'm getting at is how will the database know which words are antonyms and which words are synonyms for all the different words. You'd need like a big multiplication table with every word listed.
many to many relationships.

you have a table of words, and different forms of those words, and an id for each word. than you have a table that stores synonym id pairs and a table that store antonym id pairs.
elfprince13 wrote:
many to many relationships.

you have a table of words, and different forms of those words, and an id for each word. than you have a table that stores synonym id pairs and a table that store antonym id pairs.
Not even. One table to store the ASCII rendering of each word with its word ID number, a second table with the list of relationships, where each relationship is a pair of word ID numbers with the affinity number, such as 1.0 for synonyms, 0.436 for moderate synonyms, -0.8 for fairly strong antonyms, or 1.0 for perfect antonyms.

Edit: And no, some18, you don't need every possible connection (your "multiplication table"), because the vast majority of such connections would be meaningless. Simply add connections (with appropriate numeric affinity (0,1] or repulsion [-1,0) ) as they become known.
you're still gonna want to store different forms of the word, and it'll be easier to do that in one table
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement