Every time I play around with Wolfram Alpha, I get frustrated trying to figure out how I get past the natural language input interpretation and write code like you specify here. Is this a restricted feature for pro subscribers? Why do they bother letting me see the "input interpretation" (and provide it as copyable plaintext) if they're not going to let me actually use it?
Let me be super explicit. Given: I have a piece of Wolfram Language code. Where do I enter it to get it evaluated? Assume I know nothing.
I can't tell if the answer is: A) there's a text box on the web site you are apparently overlooking you moron, B) you buy/download the software, save your code in a text file, and run it using software on your local machine, C) you sign up for Wolfram Alpha Pro Deluxe which then makes the query input box on the Wolfram Alpha page start accepting Wolfram Language, or D) none of the above: [fill in the blank]
There will also be Wolfram Desktop, the local IDE for the Wolfram Language that comes with our online products, as well as Mathematica 10, a non-cloud-enabled instantiation of the language for the academic market.
Disclosure: I deployed this code from my own copy of a prerelease version of Wolfram Desktop, which I could do because I'm an employee.
P.S. Your idea of being able to write Wolfram Language code straight into Alpha and have it execute is an interesting one. You can do some basic stuff like http://www.wolframalpha.com/input/?i=Table[i^2%2C+{i%2C+1%2C...] already, but I agree we should allow you to execute anything (safe) using Alpha.
> P.S. Your idea of being able to write Wolfram Language code straight into Alpha and have it execute is an interesting one.
It's really shocking to me that this idea might be new. To anyone. As an end user, the "input interpretation" box sends a very clear (but apparently wrong) message: "you entered a for-dummies query, which would have looked like [this] in advanced mode." I am pretty sure that every single time I've looked at a Wolfram Alpha result page, I've spent a significant amount of time searching in vain for the way to uncover that advanced mode. It is so absurdly obvious that it must be hidden in there somewhere, because otherwise, what purpose could showing me the raw Wolfram Language text possibly serve? It can only ever be run in an environment that I don't have access to! Alas, there apparently has been no purpose all this time.
I'm working on an open source knowledge engine thing roughly similar to WolframAlpha.
I'm pretty interested in the types of things you might like to do in your "advanced mode".
I've begun work on a SymPy part of it for the math parts, but one of the first things I realised was that it might make sense to expose the "knowledge base" itself to python.
> I'm pretty interested in the types of things you might like to do in your "advanced mode".
"Advanced mode" in this context simply means "I want to write an expression in a formal language because it lets me remove the difficult-to-control natural language parsing." It's actually a simpler mode, because it does less, but it requires the user to use a programming language, which is generally considered "advanced" on this type of user interface.
The answer you're looking for and that everyone is avoiding is Mathematica. I mean, they're working on (or have possibly released by now) other platforms where the so-called Wolfram Language can be used, but the simple answer to "where can I write this natural language stuff or Wolfram Language code" is the application Mathematica.
If I have Mathematica, does that allow me to execute code against the giant corpus of Wolfram Alpha knowledge? That is, will I be able to evaluate 'EdgeDetect[The Edge | image]' and have it use a picture of The Edge as input? Will I be able to just reach out into the cloud and use a weather dataset as input? I was under the impression that the answer is no.
They have a real communication problem, because I inevitably find myself trying to cobble together a notion of what their products actually are. Here's my best guess, rather hard-earned by going in frustrating circles in what passes for documentation on their site:
1) Mathematica is the engine which runs Wolfram Language code. 2) Wolfram Alpha is a combination of (a) Mathematica, (b) a huge knowledge base, and (c) a natural language processor which turns user-provided queries into Wolfram Language expressions. These three things are bundled up with a web front-end and allow you to do really cool stuff. 3) It is not currently possible for me to write my own Wolfram Language expressions to run against the giant knowledge base.
>If I have Mathematica, does that allow me to execute code against the giant corpus of Wolfram Alpha knowledge?
Yes. you can use results of natural inputs as a computable data.
For example, type ==dog picture, this will give you exactly the same result as Wolfram|Alpha. then you can click on "+" sign in the top right corner of the pod and select "subpod content". which will give something like
WolframAlpha["dog picture", {{"Image:SpeciesData", 1}, "Content"}]
and it is an image you can do processing on.
You should be able to evaluate something very similar. Typing EdgeDetect[CTRL = The Edge image] (where "CTRL =" indicates "execute the key combination CTRL and Equals key") should give you the result in anything which runs the Wolfram Language. I believe that will include Mathematica and also the Wolfram Desktop. WolframAlpha is an instantiation of the Wolfram Language with a huge knowledge base and a parser - it used to be Mathematica+knowledgebase+parser, but now it's explicitly got the cloud capabilities of the Wolfram Language which I am under the impression that Mathematica will not have.
Note that you can access Alpha from Mathematica (by dint of the command WolframAlpha, or by typing two Equals signs before what you type), but you can only enter the crudest Wolfram Language commands into Alpha and have them executed. However, using the Mathematica tie-in as above, it is possible to write your own Mathematica expressions (and soon Wolfram Language expressions, when it's released properly) which make use of the Alpha knowledgebase.
I don't know much about this, but I've seen a talk with Stephen Wolfram before they released this - I think, based on how he described it, that D is the correct answer. I believe it's more similar to writing an application than just entering a query like you would on their homepage. So I guess in a sense C is correct, but I don't think that's quite how it works.