(This post was originally published on the Wolfram|Alpha Blog.)
It’s now a week since we officially launched Wolfram|Alpha into the world.
It’s been a great first week.
Approaching 100 million queries. Lots of compliments.
But for me the most striking thing is how many people want to help Wolfram|Alpha succeed.
Making the world’s knowledge computable is a huge undertaking.
And it’s wonderful to see all the help we’re being offered in doing it.
We’ve worked hard to construct a framework. But to realize the full promise of computable knowledge, we need a lot of input and support.
And it’s remarkable that in just one week, there’s already a whole community springing up around Wolfram|Alpha—with our own Community site and many independent sites.
We’ve had lots of feedback from lots of people. In fact, in the past 7 days, we’ve had no less than 55,000 feedback messages posted to the site.
Suggestions. Encouragements. Corrections. Obvious things. Incredibly obscure things.
At some level, it’s quite overwhelming. But it’s also incredibly helpful.
We’re going to be dramatically ramping up our processing of feedback messages.
But already we’ve made several hundred good changes to Wolfram|Alpha based specifically on messages left in the “Give us your feedback” form on the site.
This is the beginning of a long journey. But it’s clear we’re going to have a lot of people helping us.
And together I believe we can build something quite amazing.
But, OK, so what are the immediate plans?
We’ve learned a lot this week.
I’m happy to say that all the testing we did on our infrastructure paid off. There’ll be a few improvements in the next week, but basically our systems seem to be running quite smoothly.
As we were developing Wolfram|Alpha, we knew that we could only get it so far before “releasing it into the wild,” and seeing how it behaved with large numbers of actual users.
We knew that it—and we—needed to learn from large amounts of actual usage and feedback.
No doubt it’ll be a kind of coevolution: people who use Wolfram|Alpha will evolve their patterns of usage, while Wolfram|Alpha itself will evolve from the way it is used.
And as of this week, that process has energetically started.
We’ve found that the general subject areas we chose to cover initially were sensible, though certainly usage has not been uniform across them. And almost all the most-requested new areas are ones that were already on our general to-do list (though there have been a lot of great suggestions about specifics of what to cover, and how).
When we started to develop Wolfram|Alpha, one of the biggest unknowns was whether it would be at all possible to handle free-form linguistic input.
Well, after processing nearly 100 million queries this last week, I think we have an answer: it definitely will be possible.
There’s still a lot of polishing to do. But it’s clear that the concept of free-form linguistic input is going to work—and very well.
Our metrics indicate that about 75% of all inputs given this week were immediately and completely interpreted by the system—and the vast majority of the interpretations seem to have been exactly as the user intended.
But that still means that 25% of all inputs “fell through” without immediate, complete interpretation. In most of those cases, we were still able to give pointers to relevant partial interpretations. But our goal is to be able to interpret essentially any reasonable input immediately and completely.
In developing Wolfram|Alpha, we collected and analyzed many large corpuses of linguistic data. But all of that data now pales compared to what the users of Wolfram|Alpha in its first week have provided: in essence a focused, 25-million-item linguistic to-do list.
Along with other members of the team, I’ve spent quite a bit of the past few days analyzing anonymous versions of our “fallthrough logs”.
They’re fascinating—and extremely encouraging.
There are little bugs (e.g. failure to handle certain ISO Latin-2 characters from browsers) that show up over and over again—and will of course get fixed quickly.
There is some fraction of cases where the system just don’t know about the relevant domain yet.
There are others where the input isn’t in English, or requires more aggressive spelling correction than we’re comfortable doing yet. (Spelling correction is vastly more complicated in Wolfram|Alpha because of the diversity of domains and notations it handles.)
But if one looks at what’s left over, clear patterns begin to emerge: definite linguistic forms that for one reason or another we haven’t handled yet. There are lots and lots of them. And it’ll take lots of effort and clever algorithms to deal with them all. But it’s clear that it’s going to be possible.
And what’s encouraging is that some of the gnarliest areas—like math notation—where we spent a lot of effort during our initial development phase, seem already to be working extremely well.
I’m not precisely sure what the improvement curve for Wolfram|Alpha linguistics will be like. Not least because it depends not only on the system itself, but also on the evolution of the typical inputs that users give it.
But I can already see that there’s going to be rapid improvement in a lot of places, as we find new algorithms to cover the linguistics that our logs have so conveniently revealed.
Our experience with Mathematica over the past 23 years has given us many good processes for releasing successive versions of software. But with Wolfram|Alpha we’re going to be doing something somewhat different: we’re going to be doing continuous releases.
Wolfram|Alpha has lots of data that’s continually updated from real-time feeds. But we’ve been setting things up so that everything in the system—whether it’s data or code—can be updated at any time.
There are many challenges here. The greatest is probably validating that changes that are made are really for the better. Particularly with linguistics, it’s all too easy for a small change to have large and undesirable effects.
By using the symbolic character of our underlying Mathematica implementation, we can often effectively validate our code symbolically. But we also have to just run large numbers of tests, compare their results with what happened before, and as automatically as possible, determine if the new results are improvements.
We’re still tuning this process. But we anticipate that in the end we’ll be able to roll out changes to Wolfram|Alpha extremely frequently.
This past week we already rolled out a few hundred changes. In the next week or so, we’ll be rolling out many more.
In the few weeks before the launch of Wolfram|Alpha last week, we became very conservative about changes—so now we have a lot of improvements and interesting new functionality saved up that we hope to be able to roll out very shortly.
Our general approach is to pursue a portfolio of development projects for Wolfram|Alpha—from short-term to long-term.
And we’re not only doing technical development, but also building up the team and business structure to support it.
But in this past week, the most important thing we’ve learned is that we’re not alone.
There’s an immense number of people who want to help make Wolfram|Alpha succeed.
It’s a great feeling. And it makes me look with great optimism and enthusiasm at the huge project that lies before us.
Thanks, everyone! These are going to be exciting weeks and months and years ahead with Wolfram|Alpha.