Programming with Natural Language Is Actually Going to Work

I love computer languages. In fact, I’ve spent roughly half my life nurturing one particular very rich computer language: Mathematica.

But do we really need computer languages to tell our computers what to do? Why can’t we just use natural human languages, like English, instead?

If you’d asked me a few years ago, I would have said it was hopeless. That perhaps one could make toy examples, but that ultimately natural language just wouldn’t be up to the task of creating useful programs.

But then along came Wolfram|Alpha. In which we’ve been able to make free-form linguistics work vastly better than I ever thought possible.

But still, in Wolfram|Alpha the input is essentially just set up to request knowledge—and Wolfram|Alpha responds by computing and presenting whatever knowledge is requested. But programming is different. It is not about generating static knowledge, but about generating programs that can take a range of inputs, and dynamically perform operations.

So the first question is: how might we represent these programs?

Continue reading

The Free-Form Linguistics Revolution in Mathematica

With the release of Mathematica 8 today, the single most dramatic change is that you don’t have to communicate with Mathematica in the Mathematica language any more: you can just use free-form English instead.

Wolfram|Alpha has pioneered the concept of specifying computations with free-form linguistic input. And with Mathematica 8, the powerful methods of Wolfram|Alpha become available within the Mathematica environment.

All one has to do is to type an = at the beginning of a line. Then what follows is taken as free-form linguistic input.

Example of free-form linguistic input

You don’t have to use precise Mathematica syntax. You can type things in just the way you think about them, in free-form English. But what happens is that Mathematica calls on Wolfram|Alpha to try to interpret your input, and turn it into precise Mathematica code.

Continue reading

Mathematica 8!

Mathematica 8

Mathematica 8 is released today! It’s a huge and important release. With dramatic breakthroughs—and major broadening of the whole scope of Mathematica.

After 8 versions and 22 years most software systems have decayed to slow and lumbering development. But not Mathematica. In fact, with Mathematica it’s quite the opposite. As the years go by, Mathematica development is actually speeding up.

What has made that happen? Partly it’s our tenacious and broadening pursuit of ambitious long-term goals. But partly, it’s a remarkable reflection—and validation—of the core principles on which Mathematica has always been built.

Continue reading

The Poetry of Function Naming

For nearly a quarter of a century, one of the responsibilities that I’ve taken most seriously is the shepherding of the design of Mathematica. Partly that has involved establishing foundational principles, and maintaining unity and consistency across the system. But at some point all the capabilities of Mathematica must get expressed in the individual built-in functions—like Table or NestList—that ultimately make up the system.

Each one of those functions encapsulates some piece of repeated computational work—often implemented by some deep tower of algorithms. And each one of those now 3000 or so functions requires a name.

We’re currently in the closing weeks of a (spectacular!) new version of Mathematica, and I spent part of last week doing final design reviews for some fascinating new areas of the system. And as part of those design reviews, we were confirming and tweaking some of the names we’re going to use for new functions.

The naming of functions is a strange and difficult art—a bit like an ultimately abstracted form of poetry. The goal is to take the concept and functionality of a function, and capture the essence of it in one, or two, or perhaps three, words (like Riffle, or DeleteCases, or FixedPointList)—chosen so that when someone sees those words, they immediately get the right idea about the function. In even the most succinct forms of ordinary poetry, you get at least a handful of words to communicate with. In function names, you typically get at most perhaps three.

Continue reading

“The Emerging Computation Revolution”–A Talk

Last week I gave a talk at the 2010 Emerging Technologies conference at MIT. I talked about many of my favorite topics, but with a particular orientation toward the future of the technology industry.

Stephen Wolfram at EmTech

Here’s a transcript of the talk:

The Emerging Computation Revolution

When we look back on the history of technology, I think we’ll see that the greatest revolution of the 20th century was the arrival of the concept of computation.

And in these years today, I think we’re seeing something else happen: the emergence of a second set of revolutions made possible by the concept of computation.

And it’s those revolutions that I want to talk about here today.

Now, needless to say, I’m quite involved in these.  And for me it’s really been about a 30-year journey getting to the point we’re at today—slowly understanding what’s possible.

Well, behind me here I have one of the fruits of that—Wolfram|Alpha.

And I want to talk about that, and about the idea of knowledge-based computing that it’s making possible.

There’s a lot of knowledge in the world.  A lot of data that’s been systematically collected.  A lot of methods, models, algorithms, expertise that have been built up.

And ever since I was a kid I’ve wondered whether we could somehow make all of this computable. Whether we could somehow build something that’s a bit like those old science fiction computers.

So that we could just walk up to a machine, and immediately be able to answer any question that can be answered on the basis of the knowledge that our civilization has accumulated.

It’s an ambitious goal. And when I first thought about this nearly 40 years ago, it seemed very far off.

But every decade or so since then I’ve returned to this. And finally, earlier this past decade, I started to think that perhaps it wasn’t crazy to actually try to build something like this.

There were several things that made that possible.

Continue reading

Making the World’s Data Computable

Stephen Wolfram at the Wolfram Data Summit

Keynote talk given at the Wolfram Data Summit in Washington, DC on Thursday, September 9, 2010.

Well, I should start off by admitting one thing.

This Data Summit was my idea.

And I have to say that the #1 reason I wanted to have it was so I could have a chance to meet you all.

So… thanks for coming, and I hope I will have a chance to meet you-all!

Well, I’ve been a collector and an enthusiast of systematic data for about as long as I can remember.

But in the last few years, I’ve launched into what one might think of as the ultimate extreme data project.

It’s actually something I’ve been thinking about since I was a kid.

The idea is: take all the systematic knowledge—and data—that our civilization has accumulated, and somehow make it computable.

Make it so that given any specific question one wants to ask, one can just compute the answer on the basis of that knowledge and data.

Well, every so often I’d think about this again. And it’d always just seem too big and too difficult. And like it was at least decades in the future.

But two things happened in my life. Continue reading

A New Kind of Science is on the iPad!

I spent a decade of my life writing A New Kind of Science. Most of that time was devoted to discovering the science in the book. But another part was spent figuring out how to present the science in the best possible way—using words and pictures.

It took a lot of technology to do that presentation. On the software side, the biggest part was using Mathematica to create elaborate algorithmic diagrams—thousands of them. But then came the question of how to actually deliver everything. And back in 2002 when A New Kind of Science was published, the only real possibility was to print a book on paper, using the very best printing technology of the time.

The actual print production process was quite an adventure—going right to the edge of what was possible. But in the end we got many compliments on the object we produced. And from that time to this, that 5.5 lb (2.5 kg) lump of paper has been the definitive representation of my decade-plus of intellectual work.

But today I’m excited to be able to say that there’s something new and in some ways even better: a full version on the iPad.
NKS book and its iPad version

Continue reading

Welcome to the Blog

I like to write.  And most days I actually do write a lot.  But most of it is not visible to the world at large.  Hundreds of internal emails and documents.  Pieces of content inside Wolfram|Alpha or Mathematica.  The occasional unsigned public webpage or other document.

My purpose in this blog is to have a visible outlet for a little more of what I do, and what I think about.

I’m constantly thinking about new things.  Coming up with new ideas. Getting new perspectives.  Thinking of new possible projects to do.

Usually I don’t talk much about things until or unless I’ve actually done something real with them.  Which can take years, and sometimes decades—if it happens at all.

But I’ve decided it’s time I started writing a little more about what I’m thinking about—rather than always waiting to have a complete, finished, project or product.

I’d also like to write about some of the things that happen in my life.  In some ways my life is delightfully simple and ordinary.  But in others I’ve chosen to make it pretty far out on the curve.

Some of the wildest and juiciest things that happen I won’t be able to write publicly about, typically because they’re someone’s corporate or personal secrets.  Or because, frankly, I don’t want to tell the world about some things I’m doing before I’m ready.

I’m a great believer in the value of history, not least because I think it’s the best way to have an informed view about the future.  I’ve also been a collector of stories—often as a participant.  Sometimes the stories aren’t appropriate for public consumption, at least at the time.  But I’ve now been around long enough that it’s beginning to be OK to tell pretty much any of the earlier ones.  So I hope to have a chance to do that on this blog.

There’s a lot that I could write—about all sorts of topics.  Some of it is timely; some of it I just think I should write down sometime.

I’ll enjoy writing whatever I end up writing.  But if people want to request particular topics, please contact me. I suspect there are a lot of things where I might have something interesting to say, but I’ve never realized it.  So ask me!

Announcing the Wolfram Data Summit

The creation of large data repositories has been a key historical indicator of social and intellectual development—and indeed perhaps one of the defining characteristics of the whole progress of civilization.

And through our work on Wolfram|Alpha—with its insatiable appetite for systematic data—we have gained a uniquely broad view of the many great data repositories that exist in the world today.

Some of these repositories are maintained by national or international agencies, some by companies and other organizations, and some by individuals. A few of the repositories are quite new, but many date back 40 or more years, and some well over a century. But there is one thing in common across essentially every great data repository: a core of diligent and committed people who have carefully shepherded its development.

Curiously, though, few of these people have ever met their counterparts in other domains of data. And in our work on Wolfram|Alpha we are almost certainly the first group ever to have had the pleasure of getting to know such a broad range of leaders of great data repositories.

And one of the things that we have discovered is that there is much in common in both the methods used and the issues faced by these data repositories. So as part of our contribution to the worldwide data community we have decided to sponsor a data summit to bring together for the first time the leaders of today’s great data repositories.

The Wolfram Data Summit 2010 will be held in Washington, DC on September 9–10.
Continue reading