Natural Language CLIs?
snuf23 asks: "Altavista has a report on the future of Windows as presented by Bill Gates at Microsoft Professional Developers Conference. Curiously, one of the touted features is called "type in-line." Essentially, it's a text based interface to the computer which uses a natural language interface. Having worked at a translation software company for three years, I am familiar with the complications of parsing meaning between human languages. It seems that in computer to human you would have somewhat less complexity, at least in terms of general use. Have any natural language interface CLIs been built? Voice recognition software comes to mind ("Open the file, HAL") but what attempts have there been to replace shell interfaces with natural language interpreters?" While I'm all for making computers easier to use, would typing "move all files beginning with the letter a to the directory called 'foo'" be any improvement over "mv a* foo" (or "move a* foo" for that matter)?
Although it doesn't necessarily replace a CLI, the nice folks at MIT's Lab for Computer Science have set up Jupiter, a voice interface for weather information. Give it a call at 1-888-573-TALK if you're in the US and have nothing better to do on a Saturday afternoon. You can ask it simple questions like "What is the weather in Seattle today?" and "Will it rain tomorrow in New York?" and it will respond after a couple of seconds with the answer. Usually it's pretty good, if you're used to the back-and-forth interface. You have to know how it works, though -- you can only speak after the tone it gives, you can't cut it off, and its English isn't that good.
:)
Here's what I heard when I handed the phone to a relative of mine who is hardly computer savvy:
"What's the weather in Baltimore today?" (pause, gets answer) "What about in New York?" (short pause) "New York. NO, not Utica, just New York City. Hello? I don't want to hear the weather in Utica, I don't LIVE in Utica! Just give me the weather for New York City! Oh, I give up." (click)
With all due respect, Artificial Intelligence has a long way to go before it catches up with natural stupidity.
For more information, click here.
Slashdot asks:
'' would typing "move all files beginning with the letter a to the directory called 'foo'" be any
improvement over "mv a* foo" (or "move a* foo" for that matter)? ''
Probably not, but how about "Move all files I changed in the last week onto my zip disk."? I know I'd need to check the 'find' man page for that.
XEliza What sort of video card do you have?
user it's a rage 128
XEliza Tell me more about this rage 128
user Well, uh, it's got 8 megs of ram
XEliza How does 8 megs of ram make you feel?
user okay, I guess. I wish I had more of course.
XEliza Does it bother you that you wish you had more?
user Well, I don't really play a lot of games, so maybe I'm just being greedy.
XEliza Do people often say you are greedy.
user Not really, I mean, they say I spend too much time and money on my computer
XEliza Who says you spend too much time and money on your computer?
user Well, my mom does.
XEliza Tell me about your mother
error: cannot parse "mother" in module "freud":
no output written
2 1337 4 u!
"Enter a check", huh?
The chess 'bot would wake up and tell you
Seriously, ambiguity is a big problem with natural-language interfaces. How is the computer to know if you wanted to do something involving your checking account or if you want to add an integrity constraint to a computer program you are writing? Or if you are playing a chess game and trying to make an illegal move ...
Natural language comprehension is an AI-complete problem. That doesn't mean useful approximations can't be done. But they only work if you keep commands simple and adhere to a computer-friendly style of expression. With requests of any complexety the risk of a misunderstanding is too great to trust interface to do anything that can't easily be undone. In this sense it is similar to DWIM interfaces (follow the link for a good anecdote).
No doubt natural language interfaces will find its niches, and someday many people may even be using natural language interfaces exclusively. But when these people need to do something more complex or risky, they will need to turn to a hacker who masters some other arcane but concise command language.
/A