Free-Form Linguistic Input In Mathematica 8
vbraga writes "With the release of Mathematica 8, it now allows input through free-form English instead of the Mathematica syntax, just like the Wolfram|Alpha engine. The results are impressive. From the blog post: 'I routinely found myself using free-form linguistics as an integral part of longer computations — randomly interspersing Mathematica syntax and free-form linguistics on different lines in a Mathematica session, and just using whichever was most convenient for a particular input. And here's an exciting part: in Mathematica 8 the free-form linguistics doesn't just operate line-by-line. It knows the context in which it's used in a notebook, so you can use it to build things up.'"
Judging from the article, this amounts to some fairly rich integration with Wolfram Alpha.
Now why would it make sense to, in essence, turn Mathematica into a partially cloud-based application? Could it be because of all the millions of college students around the world who have pirate copies? Surely not!
There is an inherent problem with free-form linguistic input to computer systems.
If it doesn't have near-perfect comprehension of a wide range of topics, it's
frustrating as hell. It's like talking to a person that is mostly there, but has
brain lesions that wiped out part of their memory or frontal lobe, making them
oblivious to some common concepts and ways of speaking.
It's directly analogous to the "uncanny gulf" between a near-perfect computer-graphics person
and a real person. It freaks the hell out of people.
I'm not saying that natural language interfaces are always going to be a bad idea, but
the system underneath needs true comprehension of the world and the motives of speakers,
and of many ways of expressing the same thing. The bar is very, very high.
Where are we going and why are we in a handbasket?
I could not yet try Mathematica 8 out, but I hope one will be able to turn the feature on and off. A switch like in "perl -w" should be built in. Mathematica is first of all also a programming language, especially for Mathematics and colloquial language is not precise. It could be be frustrating if wrong syntax still produces reasonable results. Incorrect, but working code might become the standard if one does not notice. Its like with memory allocation errors in C produced by incorrect code which still compiles. It will haunt the programmer in the long term.