Talking about Computing and Philosophy

Wolfram|Alpha, A New Kind of Science, and even Mathematica all have aspects that are philosophy projects. Each of them, in different ways, informs questions in philosophy—and are themselves informed by philosophical ideas and discoveries.

Indeed, the very fact that I decided Wolfram|Alpha might be a possible project was the result of what amounts to a philosophical realization that I learned from A New Kind of Science: there is no bright line that identifies “intelligence”; it is all just computation.

I don’t get to talk much about philosophy. But here is a recording of a keynote speech I was recently asked to give about “computing and philosophy”.

Wolfram|Alpha: The Second Anniversary

To mark the second anniversary of the launch of Wolfram|Alpha, I did an interactive webcast:

Here’s a transcript of my introduction:

[Note: here is what I wrote for Wolfram|Alpha’s first anniversary a year ago.]

So, as of today, Wolfram|Alpha has officially been out in the wild for two years.

And I’m happy to say, it’s doing really well.

You know, I’d been thinking about building Wolfram|Alpha for more than 30 years.

And I’ve been working to build the stack of ideas and technology to make it possible for nearly that long.

At the beginning, I was not really sure that Wolfram|Alpha was going to be possible at all.

And I think if I look a year ago from now my main conclusion was that after a year out in the wild, we’d proved that, yes, Wolfram|Alpha was indeed possible.

Well, now that we’re two years out, I think my conclusion is: Wolfram|Alpha is even a lot more important than I thought it was.

This effort to make all our knowledge computable is really something very fundamental, that’s sort of inevitably going to be needed just all over the place.

So what have we been up to this year?
Continue reading

Computation and the Future of Biomedicine

In the last several weeks, I’ve given talks about innovation, mobile technology, mathematics and philosophy. Last week I gave a talk at the Bio–IT World conference in Boston.

At the beginning I covered many of my favorite topics: Wolfram|Alpha, Mathematica, A New Kind of Science. But then I turned more specifically to biomedicine, and talked about quite a few topics that I’ve never discussed in public before.

Here’s an edited transcript.

Bio-IT World

OK. Well. I’m going to talk about some pretty ambitious things here today.

Both in technology and in science.

I’m going to talk about what we can know, and what we can compute, in biomedicine.

And about how we can make use of that.

I’m going to talk both about some practical technology and some basic science that I’ve been involved in building, that tries to address those things.

Many of you I hope will have seen and used Wolfram|Alpha, which has been off entertaining us in the background there.

Let me start with that.

You know–when computers, and I, were a lot younger, it used to be a common assumption that one day one would just be able to walk up to a computer and ask it anything.

And that if what one asked could somehow be answered on the basis of any knowledge that had been accumulated in our civilization, then the computer would be able to figure it out.

Well, 30 years ago I started wondering what it would take to actually do this.

And at first I have to say I thought the only possibility was to build a whole artificial intelligence—a whole brain-like thing that somehow thinks like a human.

And that seemed really hard.

But gradually I realized that actually, that might not be the right direction at all.

And that we might not want to build sort of the analog of a bird—but rather the analog of an airplane.

And that computation—and a bunch of ideas around it—might be the key.

Well, by that point I’d assembled a pretty big stack of technology and science, and organizational capability.

And a little more than five years ago I decided it was time to try a serious assault on the problem—of making the world’s knowledge computable.

Well, the result was Wolfram|Alpha. Which is a very long-term project.

But already gets used every day by millions of people, who manage effectively just to walk up to it and have it answer all kinds of things.
Continue reading

Launching a New Era in Large-Scale Systems Modeling

Over the past 25 years, we’ve been fortunate enough to make a mark in all sorts of areas of science and technology. Today I’m excited to announce that we’re in a position to tackle another major area: large-scale systems modeling.

It’s a huge and important area, long central to engineering, and increasingly central to fields like biomedicine. To do it right is also incredibly algorithmically demanding. But the exciting thing is that now we’ve finally assembled the technology stack that we need to do it—and we’re able to begin the process of making large-scale systems modeling an integrated core feature of Mathematica, accessible to a very broad range of users.

Lots of remarkable things will become possible. Using the methodology we’ve developed for Wolfram|Alpha, we’ll be curating not only data about systems and their components, but also complete dynamic models. Then we’ll have the tools to easily assemble models of almost arbitrary complexity—and to put them into algorithmic form so that they can be simulated, optimized, validated, visualized or manipulated by anything across the Mathematica system.

Making models computable

And then we’ll also be able to inject large-scale models into the Wolfram|Alpha system, and all its deployment channels.

So what does this mean? Here’s an example. Imagine that there’s a model for a new kind of car engine—probably involving thousands of individual components. The model is running in Mathematica, inside a Wolfram|Alpha server. Now imagine someone out in the field with a smartphone, wondering what will happen if they do a particular thing with an engine.

Well, with the technology we’re building, they should be able to just type (or say) into an app: “Compare the frequency spectrum for the crankshaft in gears 1 and 5”. Back on the server, Wolfram|Alpha technology will convert the natural language into a definite symbolic query. Then in Mathematica the model will be simulated and analyzed, and the results—quantitative, visual or otherwise—will be sent back to the user. Like a much more elaborate and customized version of what Wolfram|Alpha would do today with a question about a satellite position or a tide.

OK. So what needs to happen to make all this stuff possible? To begin with, how can Mathematica even represent something like a car—with all its various physical components, moving and running and acting on each other?
Continue reading

Jeopardy, IBM, and Wolfram|Alpha

About a month before Wolfram|Alpha launched, I was on the phone with a group from IBM, talking about our vision for computable knowledge in Wolfram|Alpha. A few weeks later, the group announced that they were going to use what they had done in natural language processing to try to make a system to compete on Jeopardy.

I thought it was a brilliant way to showcase their work—and IBM’s capabilities in general. And now, a year and a half later, IBM has built an impressive level of anticipation for their upcoming Jeopardy television event. Whatever happens (and IBM’s system certainly should be able to win), one thing is clear: what IBM is doing will have an important effect in changing people’s expectations for how they might be able to interact with computers.

When Wolfram|Alpha was launched, people at first kept on referring to it as a “new search engine”—because basically keyword search was the only model they had for how they might find information on a large scale. But IBM’s project gives a terrific example of another model: question answering. And when people internalize this model, they’ll be coming a lot closer to realizing what’s possible with what we’re building in Wolfram|Alpha.

So what really is the relation between Wolfram|Alpha and the IBM Jeopardy project?

IBM Watson and Wolfram|Alpha

Continue reading

Knowledge-Based Computing and Version 2.0 of the Wolfram|Alpha API

Wolfram|Alpha is making possible a whole new very interesting and very powerful kind of computing. And with the release today of version 2.0 of the Wolfram|Alpha API, it’s going to be considerably easier for a broad range of software developers to take advantage of it.

I’m happy to say that it seems as if Wolfram|Alpha is pretty useful to humans—for example through the wolframalpha.com website. But it also turns out that Wolfram|Alpha is extremely useful to programs. And in fact, even today, the number of requests coming to Wolfram|Alpha each second from programs often exceeds by some margin all the requests coming directly from humans.

The reason for this popularity is really pretty simple: Wolfram|Alpha completely changes the economics of a lot of programming. You see, these days a remarkable number of programs rely on having some kind of knowledge. And traditionally, the only way to get knowledge into a program was for the programmer to painstakingly put it there.

But with Wolfram|Alpha in the picture, it’s a different story. Because built into Wolfram|Alpha is already a huge amount of computable knowledge. And if a program is connected to Wolfram|Alpha, then it can immediately make use of all that knowledge.

Whether one’s building a website or a mobile app or desktop software or an enterprise application, the point is that one can use Wolfram|Alpha as a “knowledge-based computing” platform—so that having all sorts of computable knowledge becomes effectively free from an engineering point of view.

How does a program communicate with Wolfram|Alpha?  It uses the Wolfram|Alpha API. (These days, API is pretty much a term on its own, but it comes from “Application Program Interface”.)
Continue reading

An App for Every Course, and More

Today we’re releasing the first three of a planned series of “course assistant” apps, built using Wolfram|Alpha technology.

Wolfram Algebra Wolfram Algebra plot

The long-term goal is to have an assistant app for every major course, from elementary school to graduate school. And the good news is that Wolfram|Alpha has the breadth and depth of capabilities to make this possible—and not only in traditionally “computational” kinds of courses.

The concept of these apps is to make it as quick and easy as possible to access the particular capabilities of Wolfram|Alpha relevant for specific courses. Each app is organized according to the major curriculum units of a course. Then within each section of the app, there are parts that cover each of the particular types of problems relevant to that unit.
Continue reading

Touch Press: The Second Book

“Someone has to make the first great ebook publishing company; it might as well be us.” So I said a few weeks before the iPad was released this April. And a little while later Touch Press was formed. The iPad was released, and simultaneously, Touch Press’s first book The Elements was released. The book has been on the iPad bestseller list ever since—in addition to being featured in all sorts of iPad television commercials and the like.

Well, it’s good for a publishing company to have a successful first book.  But for me it’s been getting a little old telling people that I’m a partner in a new publishing company, but so far we’ve only published one book. So it’s exciting to be able to say that as of this week, Touch Press has a second book: Solar System.

Cover

Continue reading

100 Years Since Principia Mathematica

A hundred years ago this month the first volume of Whitehead and Russell’s nearly-2000-page monumental work Principia Mathematica was published. A decade in the making, it contained page after page like the one below, devoted to showing how the truths of mathematics could be derived from logic.

The cardinal number 1

Principia Mathematica is inspiring for the obvious effort put into it—and as someone who has spent much of their life engaged in very large intellectual projects, I feel a certain sympathy towards it. Continue reading

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