Question: How does Wolfram Alpha work?
Stephen Wolfram: Well first thing is that we’ve collected a huge amount of data and we’ve curated this data, so it’s data where we’ve gone typically to sort of primary sources of data and made arrangements to get either the static data or a feed of data that comes in every minute, every second, every hour, whatever and we’ve organized this data so that it is sort of set up to be clean and computable, so that is sort of the first component is all this data that exists in the system, whether it’s about chemicals of countries or foods or nuclear isotopes or whatever else. Or financial data about companies or whatever, so all this data.
Then sort of the second piece is given this data how do we figure things out? How do we compute things? It’s like you know if you ask a suitable scientist you know can you figure out for me you know something like where will the sun be at a particular time of day at a particular place on the earth. You know if they can do their physics correctly they’ll eventually be able to figure out the answer. Or if you have this particular level of some substance in you know blood, what percentile of the distribution does this correspond to or what does that mean for the probability of this or that thing.
So these are things which sort of in principle can be computed if you find the right expert. What we’ve tried to do is to actually accumulate all of the algorithms necessary to do those computations. Typically that is done by talking to the world’s experts in these areas and encapsulating the knowledge that we get in the form of algorithms. Well, then, another aspect of this is: "So okay, so we know all the stuff. We can compute all these things. How does a typical person who walks up to Wolfram Alpha…? How do they communicate with it?" So that is then another big challenge is to be able to take sort of the natural language questions, the kind of the first way that people would think of asking such and such a question and being able to automatically understand that and that is something that wasn’t clear whether it was going to possible.
People have been trying to do kind of natural language processing with computers for decades and there has only been sort of slow progress in that in general. It turned out the problem we had to solve is sort of the reverse of the problem people usually have to solve. People usually have to solve the problem of you’re given you know thousands, millions of pages of text, go have the computer understand this. Our problem was: we can compute a certain set of things and then we’re given this very short sort of utterance that the human has fed us and we have to ask the question can we understand that utterance and map it into the things that we can compute, so it’s turned out somewhat to my surprise actually that we’ve been able using a bunch of ideas about sort of computational linguistics and so on to make really great progress in being able to let one sort of type in things in whatever form one first thinks of them and having the computer understand them.
And then finally one has to figure out so there are all these things we can compute. We’ve understood a question that has been asked. There is all sorts of things that we can give as the answer. Which parts of the things that we might give as the answer should we actually present? How do we sort of present the right graphical tabular and so on results to actually communicate it in an effective way with humans who are using the system?
So you know all the pieces we’ve managed to sort of pull them together and it all sort of has to be connected to sort of a big super-computer-type system, sort of big crunchy software engineering necessary to actually deliver results quickly to people on the Web and so on, but sort of the main objective here is sort of collect all this knowledge from our civilization, make it as much as possible computable, get it to the point where, sort of, if there is question that could be answered by some expert our system will be able to automatically answer that question. So one is asking sort of a one might ask a very specific question you know, “What will be the value of this particular… I don’t know… annuity after this amount with these particular dollar values based on this thing about interest rates or whatever else it is?” So that is something very specific. It’s not sort of, give me a general essay about such and such a topic. It’s I’ve got a specific question. Give me a specific answer.
Question: What have you learned from the first year of Wolfram Alpha?
Stephen Wolfram: Wolfram Alpha has been out and about in the world for a little over a year now. It was a big sort of issue when we would actually sort of launch the thing for the first time because it’s learning more and more. It’s knowing about more and more different areas. It’s able to do more and more sophisticated things. We knew there was sort of a curve of increasing capability, but the reason we launched when we did was basically we had… we had exhausted what we could figure out about how people would interact with it and so on from sort of static sort of in vitro tests so to speak, so we really had to expose it to the world and see how people actually interact with it, particularly things like how people choose to talk to it so to speak, what kind of linguistic forms they choose to use as the input to ask the questions they want to ask and so on.
So, over the first year I think the main thing we’ve discovered is that the basic idea of delivering computable knowledge, having an engine that delivers computable knowledge, the basic idea works. It’s very encouraging. It’s a bit technology stack, a lot of work. It’s kind of for us it’s sort of a technology stack that we’ve been working on for nearly 25 years now that’s made it possible to do this. You know: this is the right decade. We can actually do this now.
In terms of what we see as sort of a pattern of usage where people start using Wolfram Alpha and they go on using Wolfram Alpha. And there are people who are doing for sort of some kind of tourist recreational kinds of things, but the vast majority are people who need to use it for some professional, educational sort of factual content kind of purpose and we see people kind of starting off discovering you can do a particular kind of… you can ask a particular kind of question. You can do a particular kind of computation with Wolfram Alpha and they’ll go on doing it all the time, every day, many times, because that is something that is used in their profession or whatever else.
The thing we’re doing sort of in the world in general we kind of held back on really sort of promoting Wolfram Alpha as a general thing that everybody should use until we had kind of let the thing advance as much as we could and you know one of the main things for us is that we watch how people interact with Wolfram Alpha and we use that information to make Wolfram Alpha better. That is sort of a critical feedback loop that we have in the system. And so I think we’re just about now, last few months we’ve really felt we’ve gotten to the point where we look at very concrete metrics like what fraction of queries that come into Wolfram Alpha can be answered first time and that is hovering right now around 92%, 95%, that kind of thing. So that is... for us that is a really good number and it means that when people go to the site they’re typically going to find something useful really quickly.
So we’re sort of ready to really push Wolfram Alpha to be kind of a ubiquitous source for computable knowledge on the Web and elsewhere and you’ll see Wolfram Alpha showing up in all sorts of different places, whether it’s we have a deal that is announced with Microsoft and Bing where Wolfram Alpha is being used as something inside the Bing system giving results for particular kinds of queries for the Bing search engine. And there are a whole bunch of other places where you’ll start to see Wolfram Alpha show up. Some of them are very direct things very much like the Wolfram Alpha Web site. Some are less direct things where Wolfram Alpha is embedded inside other systems, products and so on. For example, there is one that actually as it happens coming out the day after we’re doing this videotaping tomorrow, which is a thing, a so called widget system where one is able to take Wolfram Alpha and use it to create sort of little web calculators so to speak about a whole range of different topics.
You know what has been true in the past is that one is now able to sort of build a form on the web pretty easily to let one sort of fill in some inputs and press a button and so on, but there has been a difficulty in what does this form connect to, what does it actually compute? Well Wolfram Alpha has this sort of huge collection of computable knowledge, and now we’re able to sort of do what I like to call knowledge-based computing where on is starting not just from sort of raw computational primitives, but instead from this huge sort of collection of knowledge. So one can take this sort of little form that one is created and one can immediately connect it to the computable knowledge of Wolfram Alpha and then get something which computes something useful immediately. And this is something will be available to people to put into blogs and Web sites and all sorts of other things and I think I’ve done it many times. In under a minute you can go from having nothing to having a nice one of these widgets that actually does something dynamic and active for a Web site, so that is another example of where Wolfram Alpha is showing up and there will be a whole sequence of these kinds of things which take the raw technology of Wolfram Alpha. Really Wolfram Alpha it’s first seen as a Web site, but really what it is, is a big technology of kind of knowledge based computing that can deployed in all sorts of different directions.
Question: What is the future of science that you envision in “A New Kind of Science”?
Stephen Wolfram: So a number of years ago I published this very big book called "A New Kind of Science." So what is this book about? Well it’s really about a new direction, a new kind of science, as the book title says. And the premise of the book is if we look back at sort of the history of science about 300 years ago there was this sort of big idea, which was we can take these things that we see in the natural world and we can start to describe them not just in terms of sort of philosophy and logic, but by using mathematics. We have this kind of language and methodology for thinking about nature which is mathematics and mathematical equations and so on and that has been a very successful idea that has led to sort of physics, a lot of modern physics and sort of spread out into a bunch of different areas over the exact sciences. So maybe 25 years ago now I got very involved—more than that, 30 years ago now—I got very involved in kind of thinking about "Is that really enough, is this sort of mathematical paradigm that we’ve developed enough to explain all the things that we’re interested in the natural world?"
And what I realized is that if we’re going to be able to have a theory about what happens in, for example, nature there has to ultimately be some rule by which nature operates. But the issue is does that rule have to correspond to something like a mathematical equation, something that we have sort of created in our human mathematics or is there some more general sort of source or possible rules by which nature can operate? And what I realized is that now with our understanding of computation and computer programs and so on, there is actually a much bigger universe of possible rules to describe the natural world than just these mathematical equation kinds of things. And we can think about them in terms of computer programs: we can say, just imagine that nature was described by rules that correspond to computer programs. What are the possibilities for those rules?
Now normally when we set up computer programs we build programs for very particular purposes. You know, we’re constructing a program to perform a particular task. We write this big complicated program with thousands, maybe millions of line of code to perform our particular task. But there is kind of a basic science question, which is: if we just look at the possible programs that we could construct just imagine that we start off and let’s say pick at random a few little instructions to put into our program. What do all these possible programs... what do they do? What does this sort of computational universe of possible programs look like?
So I started exploring this many years ago and the thing that I discovered was something that really surprised me a lot. When you look at this sort of computational universe of possible programs what you find is that even very, very simple programs, sometimes the very simple programs do very simple things, but there are very simple programs that do immensely complicated kinds of things. It’s a big surprise from our usual sort of intuition of engineering, because usually when we think about making something complicated in engineering we think we have to go to a lot of effort to do that. We have to sort of set up complicated rules, go to lots of... put in all these different steps and so on to build our complicated thing. But what one discovers is in this computational universe of possible programs, it’s really easy to find simple programs that kind of effortlessly produce immense complexity in their behavior.
So I first noticed my favorite example of this, a thing called the Rule 30 cellular automaton in 1984 and this kind of for me was sort of the... a critical moment in my development of my sort of scientific thinking. I kind of view it a little bit like I sort of had the luck of using computers to do experiments on this computational universe and sort of being for the first time able to sort of see what was out there in this computational universe. It’s a little bit like what you know what Galileo got to do 400 years ago when he took a telescope and pointed it at the sky and it was pretty easy to see that there were mountains on the moon and then you know moons of Jupiter and things like that.
So, sort of pointing a computer out into this computational universe it was in a sense pretty easy to see that there were these very simple programs that did these immensely complex things. And so I then sort of got to explore so what does this mean. What is this? What happens when you sort of look at this new paradigm that is created from realizing that in this computational universe there is a lot of sort of richness and complexity kind of readily at hand and what I discovered is that a lot of problems that exist in the natural sciences whether it’s physics or biology, other areas thing where it looked as if nature had some mysterious secret about how it produces the kinds of things we see whether it’s complexity in a physical system, biological system, whatever. A lot of this we can understand now in terms of this paradigm of looking at the computational universe and seeing simple programs do these very complex things. So sort of the first big sort of results of this new kind of science is to be able to have a lot broader supply of potential models for the natural world and to understand sort of how it can be that nature produces so much apparent complexity in lots of different kinds of systems.
So having sort of looked at this from a science point of view... and there are many directions to that science you know trying to understand whether one can use this to find the fundamental theory of physics, trying to use it to understand sort of things about the foundations of mathematics, things about biology and the importance or lack thereof of Darwinian evolution and so on and the production of complexity in biology, lots of different applications in the natural sciences. But then one could sort of say well what else can one do given this sort of paradigm of finding these simple programs in the computational universe that do such sophisticated things?
And one of the directions of application is in technology. See, in a sense what is technology? Technology is in a sense finding things that exist in the world and applying them somehow for human purposes to achieve some human objective and so we do that with you know materials that we find in the natural world whether it’s you know magnets or liquid crystals or whatever else. We find these materials and then we realize how to apply them to create things that are useful to us as humans.
So what one realizes is that in this computational universe it’s kind of the same story. Out in the computational universe there are all these programs that effectively perform algorithms that are rich and complex and then the question is: are they useful for human purposes? So one of the things that has happened over the last decade or so is that increasingly we’ve been able to make use of these kinds of programs of just sort of searching the computational universe for technology, finding programs that achieve particular purposes so in our mathematical system an increasing fraction of the algorithms that we introduce are ones that were not constructed by some sort of human software engineer going step by step, but instead were found by big searches in the computational universe.
Question: What role does human creativity play in our understanding of formal scientific truths?
Stephen Wolfram: We routinely go out into the computational universe to find algorithms which when we as humans look at them we say that is really clever, that is you know it’s a really neat thing and it’s something where if there had been a human creating them we would have been very impressed by that human’s creativity, but actually these things were just found by searching this sort of formal abstract universe of possible programs.
So I think it’s sort of an interesting question when we look at different areas of sort of human endeavor to what extent what we have found, what we create, is something that is a feature of kind of us as humans and to what it sort of... to what extent it sort of... what is necessarily out there.
One area I’ve thought about quite a bit is mathematics and the question is, is the mathematics that we have today sort of a necessary kind of formal structure, or is it something that really is more a reflection of the particular history of human mathematics. And so one thing that we can think about is this: if we look at sort of all the mathematics that has been done—mathematics is a field of inquiry where on thinks one is starting from a collection of axioms and then deriving all these theorems of what is true about mathematics. The complete axioms for all the mathematics that has been done in the last however many years fit on a page or two of something therein the "New Kind of Science" book for example actually displayed on a couple of pages. So that is sort of the raw material for all of mathematics is a couple of pages of axioms. From those axioms about three million or so theorems have been derived in the history of mathematics. And the question though is: why those axioms? Why not other axioms?
Well we can sort of think about the universe of all possible axioms. We can just imagine kind of enumerating possible axiom systems that one can formally consider and we do that and we can say out of this universe of all possible axiom systems where do the axioms that correspond to our particular mathematics lie? And so I know the answer to that for things like logic for example. I know that logic, if you were to enumerate all possible axiom systems, logic is about 50,000th axiom system that you’d find in that enumeration, so realizing that it makes one think about sort of why this mathematics and not some other? And what realizes is really the mathematics we have today is something that is a direct historical consequence of ideas that existed in ancient Babylon, arithmetic and geometry and so on, that got sort of generalized to give us the mathematics we have today and that is the mathematics that we use to kind of make our descriptions in physics and do our engineering and so on.
What one realizes is that there is this whole sort of universe of other possible mathematics that is out there, that in fact in many cases can be much more powerful in describing things that we see in the natural world and so on, and that form sort of the basis for a lot of new directions in science and technology and elsewhere. So in a sense the mathematics that we have today is very much it’s a great historical artifact. It’s probably, if one looks at the history of civilization, mathematics as it exists today is probably the single largest artifact in the sense that more hands have been involved in sort of molding the particular intellectual thing that has been created than anything else in history, but we have to realize that it is very much a human artifact created from its history, not something that is sort of a necessary feature of the way that sort of formal systems of the universe work.
Question: What idea keeps you up at night?
Stephen Wolfram: Here is a question. We look at the universe. We look at physics. We look at nature. The question is, is there ultimately some simple rule that determines everything that happens in our universe? Is there some ultimate theory of physics that will allow to sort of hold in our hand some specification of everything about our universe and everything about the history of our universe?
You know, at times in history people have imagined that that would be close at hand, but in the last hundred years or so it seemed that it is always slipping away. It seemed like every time we know more about physics, the sort of models that we have to use are more and more sophisticated. It doesn’t look like there is an end to the sequence. It doesn’t look like we’ll ever get to the point where we can say, "This is it. We’ve reduced sort of all of physics, everything about our universe to basically a formal statement of mathematics, a formal thing that we can explicitly compute from." Well from what I’ve studied about "New Kind of Science," what I’ve studied about sort of what exists in the computational universe of possible programs, I’ve sort of ended up with a different intuition from the one that has sort of become traditional in the hundred years or so of physics and the different intuition say it really could be the case that there is some very simple program that might be the thing that sort of, when run, corresponds to our whole universe. It’s kind of a funny question. You know if we look at our universe and we think about it as sort of a program, we ask how many lines of code is the program that runs our universe? Is it, you know, is it three lines long? Is it 10,000 lines long? Is it 10 million lines long? Is it the size of the operating systems that run on our computers? You know: how big is the program for our universe?
We don’t know and we don’t really have a basis right now I think for thinking about that question. The only thing we do know and it’s sort of an old point made by theologians thousands of years ago now that—at least one and a half thousand years ago—that the sort of one of the most notable features of our universe is that there is order in our universe. It could be the case that sort of you know there are maybe 10 to the 90th particles in our universe. It could be the case that every particle in our universe will be off doing its own thing, so that in a sense the rules that define our universe could have sort of one little case for every particle, so it gets to do its own thing. But we know, it’s a very fundamental fact about our universe, that it isn’t that complicated, that there is order in our universe, that there is some sort of regularity. There is some sort of simplicity to our universe and so then the question is how far does that simplicity go? Does it go down to the point where we can describe our universe by a few lines of code or does it only go to the point where we can describe our universe with a million lines of code?
Well one thing you realize is if there is going to be a very simple model for our universe, a very simple program that specifies how our universe works almost nothing about that program will be familiar from what we currently know about the universe because the things we currently know about the universe, you know three dimensions of space, detailed particles, gravity, all this kind of thing—if the program is going to be that small there is no way that you can sort of fit all those details visibly into the program. The program has to be something much lower level from which all those details emerge.
And so one of the things that I’ve been interested in is: is there such a program and is it the case that for example we can find that program just by searching the computational universe of all possible programs and in fact that computational universe is full of programs that correspond to little universes, they just don’t happen to be our physical universe. And so one of the questions is: at this time in history do we have the wherewithal to be able to do the search that we need to do to find our universe in this computational universe of possibilities? And one thing I can say is that as you start doing that search you might find that every sort of candidate universe that you find is completely inappropriate. And, in fact, the first few that you look at you say, “Well this one is no good. It has no dimensions of space." Or "This one is no good. It has a completely pathological notion of time.” Or, “This one is no good. It blows up in some other kind of way.”
But after not too long you start getting to candidate universes that are very complicated in their behavior. They kind of blob around and you follow them in your computer until they have you know billions of little nodes in them and so on, but then the question is are these things that we’re seeing are they our universe or not and there is a phenomenon called computational irreducibility that makes it really hard to tell because in affect the computation that this little universe is doing there is no way that we can effectively jump ahead and see what the consequences of that will be. Yet what we get to simulate in our computer is only the first sort of microscopic moment of time in our actual universe. So there is sort of a question of how do you match up what you see in your computer with what you can actually observe in the universe as it is and that is a whole complicated question of science and methodology and so on to do that.
But so the real issue is, is it the case that our whole universe, including every aspect of its history, everything that happens in the universe is that something that ultimately is specified by some program that we can just sort of hold in our hands or is it something that for some reason has to be known about only in some quite different way? And it’s sort of a funny thing. It’s a funny kind of Copernican question. You know, you might say, “How could it be the case that our universe is simple? That would make us special in some way.” And yet sort of the history of science through Copernicus and so on has been that you know we gradually learn the extent to which we’re not special.
You know first we learn that our you know planet isn’t the center of the universe. Then we learn that there is nothing special about the way that our sort of life and biological construction works, and so on. So then the issue is: if we look at our whole physical universe is it the case that there is something special about the way that that works and how that exists in sort of the universe of all possible universes. It’s kind of fun to think about what might the answer to a question like that look like. I mean it’s kind of a thing you know if you look at the early days of lots of kinds of paradigms in science, I don’t know, you know... Newton looking at orbits of planets. You know, Newton could say once the planets were put in motion you can work out using calculus and so on how the planets will move from that point on. But it wasn’t clear how you could even imagine about how the planets first got to be set up and how they first came to exist, same with Darwin and the evolution of life, you know? The question of how life evolves once it exists is one thing. The question of how sort of the first living organism comes to be is a quite different thing.
So similarly here we can say something about sort of how our universe progresses once it exists, but why to sort of imagine the answer to a question like why this particular universe and not some other is something for which we don’t currently have—at least I don’t currently have—a good framework for thinking about that. I actually have some guesses about how it may work out. Usually these kinds of questions have the feature that in the ultimate answer to the question is something where the question is somewhat redefined and I might have some guesses about ideas about ways in which in a sense all possible universes that have a certain degree of computational sophistication will turn out to be equivalent to each other and then affect to our universe, but that is something I don’t know when that will be figured out or whether even that is the right idea. It could be very soon. It could be a really long time before we know how that works.
Recorded July 26, 2010
Interviewed by Max Miller