1 00:00:00,000 --> 00:00:03,780 [APPLAUSE] 2 00:00:03,780 --> 00:00:05,460 Sorry for the delay in getting started, 3 00:00:05,460 --> 00:00:06,960 we were having trouble with Windows. 4 00:00:06,960 --> 00:00:12,980 5 00:00:12,980 --> 00:00:17,660 Bill Gates is always a hard act to follow, 6 00:00:17,660 --> 00:00:21,290 but who better than the author of the book What 7 00:00:21,290 --> 00:00:25,095 Will Be, our own Professor Michael Dertouzos, who 8 00:00:25,095 --> 00:00:29,700 has decided today to focus his remarks on the next 35 years 9 00:00:29,700 --> 00:00:32,110 for the entire world? 10 00:00:32,110 --> 00:00:32,610 Michael. 11 00:00:32,610 --> 00:00:42,810 12 00:00:42,810 --> 00:00:46,080 Thank you, Bob. 13 00:00:46,080 --> 00:00:49,770 Ladies and gentlemen, there is no reason 14 00:00:49,770 --> 00:00:54,100 we can't talk about the future while having a little fun. 15 00:00:54,100 --> 00:00:56,670 So, let me recollect something for you. 16 00:00:56,670 --> 00:01:00,210 Last year, a few of my colleagues and I 17 00:01:00,210 --> 00:01:03,030 were heading to Taiwan. 18 00:01:03,030 --> 00:01:06,480 The flight, as you know, is very long, and on the airplane 19 00:01:06,480 --> 00:01:10,020 I was trying to make something work. 20 00:01:10,020 --> 00:01:14,280 Now, that something was a laptop, a brand new laptop, 21 00:01:14,280 --> 00:01:16,050 the latest-- 22 00:01:16,050 --> 00:01:18,900 it was running Windows-- 23 00:01:18,900 --> 00:01:23,580 and a little card on which you download your software, 24 00:01:23,580 --> 00:01:26,290 you download your addresses, you download your calendar, 25 00:01:26,290 --> 00:01:28,680 and then you take the card in your pocket. 26 00:01:28,680 --> 00:01:31,680 I had been at it for three hours, 27 00:01:31,680 --> 00:01:34,500 and my problem was that when the card software was happy, 28 00:01:34,500 --> 00:01:39,520 the operating system wasn't, and vice versa, as you well know. 29 00:01:39,520 --> 00:01:44,550 So, we're on the plane, so I turn to one of my colleagues 30 00:01:44,550 --> 00:01:47,960 and I say, Tim, would you please help me? 31 00:01:47,960 --> 00:01:50,330 Well, Tim Berners-Lee is a very gracious man. 32 00:01:50,330 --> 00:01:52,340 So he said, of course. 33 00:01:52,340 --> 00:01:54,240 He said, I think I can help you. 34 00:01:54,240 --> 00:01:56,060 So he picked up the machine. 35 00:01:56,060 --> 00:01:58,732 An hour and a half later, he hands it back to me, 36 00:01:58,732 --> 00:02:01,190 still very polite, still very British, and says, I'm sorry, 37 00:02:01,190 --> 00:02:03,870 I can't make this thing work. 38 00:02:03,870 --> 00:02:08,690 So I turned to my friend and associate director Ron Rivest, 39 00:02:08,690 --> 00:02:11,540 and I say, the inventor of the web couldn't do it. 40 00:02:11,540 --> 00:02:15,290 How about you, inventor of RSA? 41 00:02:15,290 --> 00:02:19,310 And Ron, with his characteristic wisdom, looked at me 42 00:02:19,310 --> 00:02:22,640 and said, no Mike, thanks. 43 00:02:22,640 --> 00:02:25,730 And then, the youngest member of our delegation, 44 00:02:25,730 --> 00:02:29,270 whose name I shall not mention to protect the innocent, 45 00:02:29,270 --> 00:02:30,050 jumped up. 46 00:02:30,050 --> 00:02:35,150 And he says to me, you guys are a bunch of old fogies. 47 00:02:35,150 --> 00:02:38,870 Let me show you. 48 00:02:38,870 --> 00:02:40,490 Good LCS attitude. 49 00:02:40,490 --> 00:02:42,830 Two hours later, he hands it to me 50 00:02:42,830 --> 00:02:47,170 with expletives surrounding this. 51 00:02:47,170 --> 00:02:51,220 I went to my seat and I did what every expert does. 52 00:02:51,220 --> 00:02:54,580 I tried the various wizards and lizards 53 00:02:54,580 --> 00:02:56,870 that were coming up at me. 54 00:02:56,870 --> 00:03:00,430 And I kept typing, at random, things in the fields, 55 00:03:00,430 --> 00:03:03,400 until finally, three hours later, it worked. 56 00:03:03,400 --> 00:03:05,550 Total elapsed time, nine hours. 57 00:03:05,550 --> 00:03:08,550 [? Hold the ?] battery, Mike! 58 00:03:08,550 --> 00:03:09,533 [LAUGHTER] 59 00:03:09,533 --> 00:03:11,200 Good point for those who make batteries. 60 00:03:11,200 --> 00:03:13,420 Now, ladies and gentlemen, why do I bring this up? 61 00:03:13,420 --> 00:03:15,820 Our field is young, so I don't bring it up 62 00:03:15,820 --> 00:03:17,020 to complain so much. 63 00:03:17,020 --> 00:03:18,580 This is to be expected. 64 00:03:18,580 --> 00:03:21,820 But we are at a junction. 65 00:03:21,820 --> 00:03:24,940 What I experienced with that example 66 00:03:24,940 --> 00:03:28,750 is typical of what we have done for the last 40 years 67 00:03:28,750 --> 00:03:30,340 with our field. 68 00:03:30,340 --> 00:03:33,760 We have focused on designing for machines. 69 00:03:33,760 --> 00:03:34,900 We put little envelopes. 70 00:03:34,900 --> 00:03:36,400 We call them operating systems, we 71 00:03:36,400 --> 00:03:39,100 call them browsers, we call them network software. 72 00:03:39,100 --> 00:03:43,630 And then we throw all this stuff at the user. 73 00:03:43,630 --> 00:03:47,060 Now, the image that this evokes to me 74 00:03:47,060 --> 00:03:51,950 is a user, you, sitting in your car, a car that's 75 00:03:51,950 --> 00:03:53,450 very early vintage. 76 00:03:53,450 --> 00:03:56,090 And you've got rings on every finger. 77 00:03:56,090 --> 00:03:58,970 And on every ring, a wire is attached. 78 00:03:58,970 --> 00:04:01,400 And you've got a wire for fuel mixture. 79 00:04:01,400 --> 00:04:05,170 You've got another wire for advance of the ignition. 80 00:04:05,170 --> 00:04:07,670 You've got another one for the valve clearances, the brakes, 81 00:04:07,670 --> 00:04:08,540 and this and that. 82 00:04:08,540 --> 00:04:10,910 And you're sitting there with all these wires 83 00:04:10,910 --> 00:04:14,750 and we say to you, go from Boston to New York. 84 00:04:14,750 --> 00:04:18,060 85 00:04:18,060 --> 00:04:22,040 Ladies and gentlemen, this must stop. 86 00:04:22,040 --> 00:04:23,480 40 years is enough. 87 00:04:23,480 --> 00:04:30,550 88 00:04:30,550 --> 00:04:35,530 This brings me squarely into my vision for the 21st century. 89 00:04:35,530 --> 00:04:40,050 Stated in simple human terms, it is simply this. 90 00:04:40,050 --> 00:04:47,030 People should be able to do more by doing less. 91 00:04:47,030 --> 00:04:50,360 Now, when I say these simple words, which 92 00:04:50,360 --> 00:04:54,680 have been characteristic of every revolution up to now, 93 00:04:54,680 --> 00:04:58,160 I mean three things. 94 00:04:58,160 --> 00:05:02,040 First, we should bring the technologies of information 95 00:05:02,040 --> 00:05:03,810 into our lives. 96 00:05:03,810 --> 00:05:06,480 Now, when I read the papers and the magazines and I hear 97 00:05:06,480 --> 00:05:10,860 the pundits talk about cyberspace, 98 00:05:10,860 --> 00:05:12,610 where we're going to go, this other space. 99 00:05:12,610 --> 00:05:15,520 We're going to leave our lives and go into cyberspace. 100 00:05:15,520 --> 00:05:18,355 We're going to put on glasses, gigabyte [? infected ?] suits. 101 00:05:18,355 --> 00:05:21,640 102 00:05:21,640 --> 00:05:23,920 And we're going to live in an exciting world. 103 00:05:23,920 --> 00:05:27,280 Well, you know, when the Industrial Revolution came, 104 00:05:27,280 --> 00:05:29,575 we didn't go into motor space. 105 00:05:29,575 --> 00:05:33,010 106 00:05:33,010 --> 00:05:36,020 The motors came into our lives. 107 00:05:36,020 --> 00:05:37,540 We turned them into refrigerators 108 00:05:37,540 --> 00:05:40,960 and we call them refrigerators, not motors. 109 00:05:40,960 --> 00:05:43,540 We turned them into cars, and call them cars. 110 00:05:43,540 --> 00:05:46,300 And they absorb themselves, the motors, 111 00:05:46,300 --> 00:05:49,090 into the functions and tasks that ancient humans 112 00:05:49,090 --> 00:05:54,080 have been doing, except now with new tools. 113 00:05:54,080 --> 00:05:57,370 So, the first thing is to bring the technology into our lives. 114 00:05:57,370 --> 00:06:00,170 And that's exactly what I think will happen, 115 00:06:00,170 --> 00:06:04,100 and what I wish will happen, with the Information Age. 116 00:06:04,100 --> 00:06:06,850 They will come into our lives, the new technologies, 117 00:06:06,850 --> 00:06:10,490 and they will serve our ancient needs. 118 00:06:10,490 --> 00:06:13,270 The second thing that I mean when 119 00:06:13,270 --> 00:06:19,510 I say doing more by doing less is increased human productivity 120 00:06:19,510 --> 00:06:21,700 and increased ease of use. 121 00:06:21,700 --> 00:06:24,350 122 00:06:24,350 --> 00:06:28,470 With respect to increased human productivity 123 00:06:28,470 --> 00:06:32,415 first, imagine that I'm holding a handheld. 124 00:06:32,415 --> 00:06:36,240 125 00:06:36,240 --> 00:06:39,690 Take us to Athens this weekend. 126 00:06:39,690 --> 00:06:44,040 Later, you'll see a system that does this. 127 00:06:44,040 --> 00:06:46,840 It took me three seconds to say that. 128 00:06:46,840 --> 00:06:49,090 The computer knows that "us" is two people, 129 00:06:49,090 --> 00:06:50,710 but we like to travel business class. 130 00:06:50,710 --> 00:06:53,830 It knows that we can this Friday, Saturday, and Sunday. 131 00:06:53,830 --> 00:06:56,050 It connects with Eaasy Sabre. 132 00:06:56,050 --> 00:06:57,520 It starts doing the exchanges. 133 00:06:57,520 --> 00:06:58,490 It tries for Friday. 134 00:06:58,490 --> 00:06:59,740 It doesn't find an aisle seat. 135 00:06:59,740 --> 00:07:00,670 We like aisle seats. 136 00:07:00,670 --> 00:07:01,830 It goes to Saturday. 137 00:07:01,830 --> 00:07:03,830 It finds two seats, but something else is wrong. 138 00:07:03,830 --> 00:07:06,610 It finally books on Sunday. 139 00:07:06,610 --> 00:07:10,120 Total elapsed time in actual experiments for this 140 00:07:10,120 --> 00:07:14,650 is a minimum of three minutes, maximum of 13 minutes. 141 00:07:14,650 --> 00:07:19,400 I will take five minutes as an acceptable average. 142 00:07:19,400 --> 00:07:24,450 Five minutes is 300 seconds. 143 00:07:24,450 --> 00:07:24,950 Nod. 144 00:07:24,950 --> 00:07:27,920 145 00:07:27,920 --> 00:07:29,900 You went to Harvard for a while. 146 00:07:29,900 --> 00:07:34,700 Divided by the three seconds, the 300 seconds 147 00:07:34,700 --> 00:07:38,390 gives us a ratio of 100 productivity leverage. 148 00:07:38,390 --> 00:07:42,685 But in business terms, that's 10,000%. 149 00:07:42,685 --> 00:07:47,730 We have achieved a 10,000% increase in human productivity. 150 00:07:47,730 --> 00:07:50,400 Now, this is actual. 151 00:07:50,400 --> 00:07:52,650 Maybe I do it once a day and you say it doesn't count. 152 00:07:52,650 --> 00:07:54,980 But if I was the travel agent for a large organization, 153 00:07:54,980 --> 00:07:56,930 it would count. 154 00:07:56,930 --> 00:08:01,070 Now, I don't expect these kind of gains across the board, 155 00:08:01,070 --> 00:08:07,760 but I do expect across the board in the next century 156 00:08:07,760 --> 00:08:13,580 about a 300% increase in human productivity, primarily 157 00:08:13,580 --> 00:08:16,130 in the office sector. 158 00:08:16,130 --> 00:08:18,590 Today, as you look at your browsers, 159 00:08:18,590 --> 00:08:20,540 as you look at your email, you're 160 00:08:20,540 --> 00:08:22,250 sitting there exercising your eyeballs 161 00:08:22,250 --> 00:08:27,020 and your brains just as hard as our predecessors exercised 162 00:08:27,020 --> 00:08:29,150 their shovels in the Industrial Era, 163 00:08:29,150 --> 00:08:32,750 except you're using these for your shovels. 164 00:08:32,750 --> 00:08:34,010 And shoveling you are. 165 00:08:34,010 --> 00:08:38,070 166 00:08:38,070 --> 00:08:40,919 But it isn't painful because the shovels 167 00:08:40,919 --> 00:08:42,840 are stamped "high tech." 168 00:08:42,840 --> 00:08:45,990 169 00:08:45,990 --> 00:08:49,380 All right, let's take up ease of use. 170 00:08:49,380 --> 00:08:53,700 Every time I hear the phrase "ease of use" 171 00:08:53,700 --> 00:08:56,020 from a vendor of hardware or software, 172 00:08:56,020 --> 00:08:57,640 I become physically violent. 173 00:08:57,640 --> 00:09:00,810 174 00:09:00,810 --> 00:09:03,450 The invariable image that pops up 175 00:09:03,450 --> 00:09:07,710 is of their operating a chimpanzee around dressed 176 00:09:07,710 --> 00:09:14,140 in a green suit pretending to be a surgeon. 177 00:09:14,140 --> 00:09:15,640 I mean, the thing isn't easy to use. 178 00:09:15,640 --> 00:09:18,790 The fact that they put floating animals and collars 179 00:09:18,790 --> 00:09:23,060 and ergonomics doesn't make it easy to use. 180 00:09:23,060 --> 00:09:25,090 What we want is something that's truly easy 181 00:09:25,090 --> 00:09:27,790 to use, regardless of whether it's using graphics or text 182 00:09:27,790 --> 00:09:29,110 or whatever. 183 00:09:29,110 --> 00:09:35,220 Let me pick an example, browsers and operating systems. 184 00:09:35,220 --> 00:09:40,110 Those two worlds, one catering to local information, 185 00:09:40,110 --> 00:09:42,220 the computer with its computer system, 186 00:09:42,220 --> 00:09:45,210 the other one catering to long-distance information 187 00:09:45,210 --> 00:09:49,070 across the browser, have different commands, quite 188 00:09:49,070 --> 00:09:51,300 different commands. 189 00:09:51,300 --> 00:09:54,950 Now, that doesn't lead to ease of use. 190 00:09:54,950 --> 00:09:58,930 The image I get from that is that of an automobile 191 00:09:58,930 --> 00:10:01,765 again, which, when you're driving it 192 00:10:01,765 --> 00:10:05,320 in your neighborhood, local, when you turn right, 193 00:10:05,320 --> 00:10:06,940 it turns right. 194 00:10:06,940 --> 00:10:09,220 But when you're driving it on country roads, when 195 00:10:09,220 --> 00:10:13,520 you turn the wheel right, it applies the brakes. 196 00:10:13,520 --> 00:10:17,720 It sounds silly here, but it sounds OK 197 00:10:17,720 --> 00:10:20,660 when you highlight an icon in the operating system 198 00:10:20,660 --> 00:10:24,090 and take a hotlink on the browser with the same command. 199 00:10:24,090 --> 00:10:27,690 So we've got to revise this kind of stuff. 200 00:10:27,690 --> 00:10:30,950 Now, ladies and gentlemen, this is the second thing 201 00:10:30,950 --> 00:10:34,280 that I mean when I say that we should be 202 00:10:34,280 --> 00:10:37,550 able to do more by doing less. 203 00:10:37,550 --> 00:10:42,968 The third thing that I mean is that when we say "we," 204 00:10:42,968 --> 00:10:46,400 "we" should mean the people of the world. 205 00:10:46,400 --> 00:10:49,550 Now, we feel pretty smug today because we, 206 00:10:49,550 --> 00:10:52,610 the people of the industrialized wealthy world, 207 00:10:52,610 --> 00:10:55,050 are largely connected. 208 00:10:55,050 --> 00:10:58,400 But if you stop and look, there are 600 million telephones 209 00:10:58,400 --> 00:11:02,360 only, which is 10% of the 6 billion living on this Earth. 210 00:11:02,360 --> 00:11:06,170 And in terms of these 600 million telephones, only 15% 211 00:11:06,170 --> 00:11:10,710 are interconnected, about 80 or 90 million people. 212 00:11:10,710 --> 00:11:11,730 Multiply the two. 213 00:11:11,730 --> 00:11:14,860 214 00:11:14,860 --> 00:11:18,710 1.5% to 2% of the world's population, 215 00:11:18,710 --> 00:11:21,310 ladies and gentlemen, is interconnected. 216 00:11:21,310 --> 00:11:22,480 That's all. 217 00:11:22,480 --> 00:11:26,260 98% is disconnected. 218 00:11:26,260 --> 00:11:30,280 We cannot hear the millions of voices from the Indian 219 00:11:30,280 --> 00:11:34,250 subcontinent, from Africa, and from China, 220 00:11:34,250 --> 00:11:37,270 although increasingly they're becoming connected there. 221 00:11:37,270 --> 00:11:39,700 All we're getting is the television feeds 222 00:11:39,700 --> 00:11:41,710 and the government feeds. 223 00:11:41,710 --> 00:11:44,290 And these people do not have the opportunity 224 00:11:44,290 --> 00:11:46,690 to sell their services or their products 225 00:11:46,690 --> 00:11:51,310 yet on the world's markets through the new medium. 226 00:11:51,310 --> 00:11:55,510 Now, I think it's very important to bring these people 227 00:11:55,510 --> 00:12:01,870 in because left to its own devices, 228 00:12:01,870 --> 00:12:05,010 the Information Revolution will increase the gap 229 00:12:05,010 --> 00:12:06,930 between rich and poor people. 230 00:12:06,930 --> 00:12:10,820 The proof is excruciatingly simple. 231 00:12:10,820 --> 00:12:12,470 The rich get more computers. 232 00:12:12,470 --> 00:12:13,860 They become more productive. 233 00:12:13,860 --> 00:12:15,290 They get richer. 234 00:12:15,290 --> 00:12:18,920 The poor have no computers, stay where they are, formula 235 00:12:18,920 --> 00:12:21,410 for exponential gap increase. 236 00:12:21,410 --> 00:12:23,240 Everybody says we can help them to get out 237 00:12:23,240 --> 00:12:24,920 of the problems, et cetera. 238 00:12:24,920 --> 00:12:26,390 Yes, but we've got to help them. 239 00:12:26,390 --> 00:12:29,240 Alone, they cannot get the machines, the communications, 240 00:12:29,240 --> 00:12:32,270 the training, and the skills to do that. 241 00:12:32,270 --> 00:12:37,900 It's important that we do so, not only for compassion's sake 242 00:12:37,900 --> 00:12:42,260 and for altruism, but also for self-preservation, 243 00:12:42,260 --> 00:12:45,140 because history teaches that when gaps like this 244 00:12:45,140 --> 00:12:50,240 are allowed to grow, they result in bloodshed. 245 00:12:50,240 --> 00:12:54,140 So, ladies and gentlemen, there's so much potential 246 00:12:54,140 --> 00:12:57,020 if we do help the poor, not only poor countries, 247 00:12:57,020 --> 00:13:00,260 but poor people within the rich countries. 248 00:13:00,260 --> 00:13:03,060 The kinds of services and products 249 00:13:03,060 --> 00:13:08,130 they could sell, the way they could rise, 250 00:13:08,130 --> 00:13:11,820 it's not always helping from the rich to the poor. 251 00:13:11,820 --> 00:13:13,950 Imagine a Sri Lankan doctor. 252 00:13:13,950 --> 00:13:19,620 A Sri Lankan doctor makes $20 a day and speaks English. 253 00:13:19,620 --> 00:13:24,990 Imagine that doctor connected through the world's networks 254 00:13:24,990 --> 00:13:28,920 administering health care to homeless people in Boston 255 00:13:28,920 --> 00:13:30,870 who go to a kiosk where there's a nurse, 256 00:13:30,870 --> 00:13:33,150 there's a blood cuff meter, a monitor. 257 00:13:33,150 --> 00:13:36,480 They can talk to the doctor. 258 00:13:36,480 --> 00:13:38,480 Maybe it's not the best health care in the world 259 00:13:38,480 --> 00:13:41,780 because the doctor isn't there, but it's a lot better 260 00:13:41,780 --> 00:13:47,500 than no health care, and it might cost $2 or $3 per person. 261 00:13:47,500 --> 00:13:49,990 At the Lab for Computer Science, a team of undergraduates 262 00:13:49,990 --> 00:13:53,170 is building a virtual Compassion Corps 263 00:13:53,170 --> 00:13:55,198 that I discuss in What Will Be. 264 00:13:55,198 --> 00:13:56,740 This is nothing more and nothing less 265 00:13:56,740 --> 00:14:01,180 than a gigantic want ad website where 266 00:14:01,180 --> 00:14:04,480 people who wish to give human help and people who 267 00:14:04,480 --> 00:14:07,630 wish to receive human help find each other according 268 00:14:07,630 --> 00:14:09,220 to the categories of help. 269 00:14:09,220 --> 00:14:11,638 And they simply match with each other and help. 270 00:14:11,638 --> 00:14:13,180 This is the first time in our history 271 00:14:13,180 --> 00:14:15,130 we could do this worldwide. 272 00:14:15,130 --> 00:14:19,850 273 00:14:19,850 --> 00:14:27,040 So, to make it short, the vision is 274 00:14:27,040 --> 00:14:30,070 to let people do more by doing less, 275 00:14:30,070 --> 00:14:33,800 and by this, I mean three things. 276 00:14:33,800 --> 00:14:37,120 First, bring the technology into our lives. 277 00:14:37,120 --> 00:14:41,290 Second, improve human productivity and ease of use. 278 00:14:41,290 --> 00:14:45,730 And third, include in this vision all people of the world. 279 00:14:45,730 --> 00:14:49,990 Good enough for top-level vision, but now, 280 00:14:49,990 --> 00:14:54,410 over what computing model do we see this taking place? 281 00:14:54,410 --> 00:14:57,370 Well, for the last 20 years, you've 282 00:14:57,370 --> 00:15:00,950 heard me talking about the information marketplace. 283 00:15:00,950 --> 00:15:04,660 And I'm not going to change my tune because we haven't yet 284 00:15:04,660 --> 00:15:06,320 realized it. 285 00:15:06,320 --> 00:15:11,720 So the model I am proposing is the same model, the information 286 00:15:11,720 --> 00:15:15,640 marketplace, which I define as follows. 287 00:15:15,640 --> 00:15:19,480 People and their computers, about half a billion 288 00:15:19,480 --> 00:15:24,370 to a billion in the next decade, plus appliances, gadgets, 289 00:15:24,370 --> 00:15:27,850 embedded computers, and the like that are unmanned, 290 00:15:27,850 --> 00:15:33,030 interconnected together doing three things, 291 00:15:33,030 --> 00:15:38,520 buying, selling, and freely exchanging 292 00:15:38,520 --> 00:15:45,080 two things, information and information services. 293 00:15:45,080 --> 00:15:47,450 Now, with respect to buying and selling, 294 00:15:47,450 --> 00:15:52,800 currently we are at $50 billion per year on the internet. 295 00:15:52,800 --> 00:15:58,610 My estimate is $4 trillion in the next 30 years or so, 296 00:15:58,610 --> 00:16:01,940 doing so by going predominantly down. 297 00:16:01,940 --> 00:16:04,730 That half of the industrial economy 298 00:16:04,730 --> 00:16:08,510 is called the office sector, previously white collar work. 299 00:16:08,510 --> 00:16:12,890 Half of our economy is the office sector. 300 00:16:12,890 --> 00:16:15,980 And that is where the bulk of it will come. 301 00:16:15,980 --> 00:16:20,090 Now, a big part of that is going to be a new kind of activity 302 00:16:20,090 --> 00:16:25,290 we haven't seen yet, which I like to call information work. 303 00:16:25,290 --> 00:16:27,890 So we deal with information as a noun. 304 00:16:27,890 --> 00:16:33,620 Information as a noun is text, sounds, images, videos. 305 00:16:33,620 --> 00:16:37,340 Information as a verb is what a doctor does. 306 00:16:37,340 --> 00:16:40,400 It's what a thousand accountants do from Beijing, China 307 00:16:40,400 --> 00:16:43,250 when they sell their services to General Motors in Detroit 308 00:16:43,250 --> 00:16:44,780 for $2 an hour. 309 00:16:44,780 --> 00:16:46,970 It is the processing, the management, the handling 310 00:16:46,970 --> 00:16:48,515 of information, the service. 311 00:16:48,515 --> 00:16:51,370 312 00:16:51,370 --> 00:16:54,400 That is going to be, I believe, a very large part 313 00:16:54,400 --> 00:16:56,270 of the information marketplace. 314 00:16:56,270 --> 00:16:59,140 You add to that the non-dollar component, 315 00:16:59,140 --> 00:17:02,860 the family message links, the political discussions, 316 00:17:02,860 --> 00:17:07,089 the publishing, the administration of health freely 317 00:17:07,089 --> 00:17:10,660 where it happens, do-gooder activities, chat groups, 318 00:17:10,660 --> 00:17:14,740 neighborhoods, all that huge non-dollar component which 319 00:17:14,740 --> 00:17:16,220 cannot be measured. 320 00:17:16,220 --> 00:17:18,290 We cannot put a $4 trillion stamp on it, 321 00:17:18,290 --> 00:17:20,200 but it's just as important. 322 00:17:20,200 --> 00:17:25,270 And you have the picture of this information marketplace. 323 00:17:25,270 --> 00:17:26,599 We're not yet there. 324 00:17:26,599 --> 00:17:29,410 There's no information work on the current marketplace. 325 00:17:29,410 --> 00:17:30,910 There is no automation. 326 00:17:30,910 --> 00:17:32,740 There's no capability to do collaboration. 327 00:17:32,740 --> 00:17:37,900 All we're doing is having voyeurs and exhibitionists. 328 00:17:37,900 --> 00:17:39,280 The voyeurs are browsing. 329 00:17:39,280 --> 00:17:41,920 The exhibitionists are saying, look at what I'm selling. 330 00:17:41,920 --> 00:17:44,150 And there are a few little transactions between them. 331 00:17:44,150 --> 00:17:46,930 So, we have a little bit of ways to go before we get there. 332 00:17:46,930 --> 00:17:49,450 333 00:17:49,450 --> 00:17:55,240 So, let this be the vision of doing more by doing less. 334 00:17:55,240 --> 00:17:59,620 And let this be the model over which 335 00:17:59,620 --> 00:18:03,980 we will do more by doing less in the information marketplace. 336 00:18:03,980 --> 00:18:08,900 Now, that's still pretty general. 337 00:18:08,900 --> 00:18:10,780 So how might we do that? 338 00:18:10,780 --> 00:18:14,750 339 00:18:14,750 --> 00:18:19,190 What I would like to do next is to announce a major research 340 00:18:19,190 --> 00:18:23,600 project that we are launching today 341 00:18:23,600 --> 00:18:26,480 at the MIT Laboratory for Computer Science. 342 00:18:26,480 --> 00:18:30,620 We call it Oxygen. It's a research project. 343 00:18:30,620 --> 00:18:36,980 It involves a radically new system for tomorrow 344 00:18:36,980 --> 00:18:41,150 that contains a lot of this stuff that I talked about. 345 00:18:41,150 --> 00:18:47,030 I'm very happy to say that Oxygen went as a $38.5 million 346 00:18:47,030 --> 00:18:50,150 proposal to DARPA, and I'm very pleased to say 347 00:18:50,150 --> 00:18:52,580 that DARPA awarded it to us. 348 00:18:52,580 --> 00:18:55,190 But they haven't awarded the money yet, 349 00:18:55,190 --> 00:18:57,770 so we're negotiating that. 350 00:18:57,770 --> 00:18:59,570 While I'm at it, let me say, we always 351 00:18:59,570 --> 00:19:01,170 say bad things about government. 352 00:19:01,170 --> 00:19:03,890 Let me say that in the last 25 years I've led this laboratory, 353 00:19:03,890 --> 00:19:06,530 and the 10 previous years DARPA has 354 00:19:06,530 --> 00:19:10,010 been with us and with other major universities, 355 00:19:10,010 --> 00:19:14,570 they've carved computer science and technology on the map. 356 00:19:14,570 --> 00:19:18,110 And let me say that the current efforts of the administration 357 00:19:18,110 --> 00:19:20,210 to increase the funding in computer science 358 00:19:20,210 --> 00:19:22,700 and the various activities that have happened there 359 00:19:22,700 --> 00:19:23,960 are also laudable. 360 00:19:23,960 --> 00:19:26,480 So we shouldn't always complain about them. 361 00:19:26,480 --> 00:19:28,310 They've been with us and this birthday 362 00:19:28,310 --> 00:19:31,940 is largely due to them. 363 00:19:31,940 --> 00:19:38,880 All right, Oxygen. Let me make one more qualification 364 00:19:38,880 --> 00:19:42,320 before I describe it to you. 365 00:19:42,320 --> 00:19:46,580 We're not a corporation with a smooth presentation 366 00:19:46,580 --> 00:19:48,840 about the new system. 367 00:19:48,840 --> 00:19:51,060 We have a framework. 368 00:19:51,060 --> 00:19:53,460 Now, I'm not going to be surprised 369 00:19:53,460 --> 00:19:55,350 because I'm certain that when we're done, 370 00:19:55,350 --> 00:19:57,225 the thing will be totally different from what 371 00:19:57,225 --> 00:19:59,050 I described to you today. 372 00:19:59,050 --> 00:20:00,810 As you hear the talks of my colleagues 373 00:20:00,810 --> 00:20:02,760 who will speak about various pieces of this, 374 00:20:02,760 --> 00:20:04,540 keep that in mind. 375 00:20:04,540 --> 00:20:06,630 And as you hear the talks of the others, who 376 00:20:06,630 --> 00:20:09,450 will talk about other things while pretending 377 00:20:09,450 --> 00:20:12,540 to talk about the pieces, keep in mind 378 00:20:12,540 --> 00:20:16,740 that this laboratory does a lot of independent research. 379 00:20:16,740 --> 00:20:19,950 Keep in mind, too, that as we do all the system's work, 380 00:20:19,950 --> 00:20:22,950 our eyeballs are focused on trying 381 00:20:22,950 --> 00:20:25,890 to understand the fundamentals and the theories 382 00:20:25,890 --> 00:20:29,550 behind this brave new field of ours. 383 00:20:29,550 --> 00:20:32,350 With that as background, what is Oxygen? 384 00:20:32,350 --> 00:20:38,790 Oxygen is eight technologies, which I will now enumerate 385 00:20:38,790 --> 00:20:40,900 and describe very briefly. 386 00:20:40,900 --> 00:20:49,940 Number one, the Handy 21, for 21st century. 387 00:20:49,940 --> 00:21:00,260 You see it has a little display right there, which you can see. 388 00:21:00,260 --> 00:21:03,350 If you're nearsighted, it helps. 389 00:21:03,350 --> 00:21:09,230 It's like a cellular phone, except that it has in it 390 00:21:09,230 --> 00:21:11,360 a small screen, as you've seen. 391 00:21:11,360 --> 00:21:14,060 It has a very small analog part. 392 00:21:14,060 --> 00:21:15,710 The rest is all digital, which means 393 00:21:15,710 --> 00:21:17,540 it can change like a chameleon. 394 00:21:17,540 --> 00:21:19,880 It's got an infrared detector. 395 00:21:19,880 --> 00:21:23,330 And it's got, of course, a few other odds and ends which 396 00:21:23,330 --> 00:21:27,620 permit it, with downloading, to alter 397 00:21:27,620 --> 00:21:30,950 its function from a two-way radio talking 398 00:21:30,950 --> 00:21:34,520 to other such handhelds, to a network node talking 399 00:21:34,520 --> 00:21:39,140 to the campus network, to a cell phone which sniffs the air 400 00:21:39,140 --> 00:21:42,500 and decides, I'm in France so I'm going to switch to GSM. 401 00:21:42,500 --> 00:21:46,840 Or it says, I'm in America using CDMA, and on and on and on. 402 00:21:46,840 --> 00:21:48,890 We have done this early prototype in connection 403 00:21:48,890 --> 00:21:52,940 with another DARPA contract that Victor Zue and [? Raclowski ?] 404 00:21:52,940 --> 00:21:58,320 and Clark are involved in, and maybe we'll hear more about it. 405 00:21:58,320 --> 00:22:02,300 But that is the first technology of Oxygen. What 406 00:22:02,300 --> 00:22:05,450 we're trying to do with that is make sure 407 00:22:05,450 --> 00:22:11,690 that you have a thing that is person centric wherever you go. 408 00:22:11,690 --> 00:22:13,760 It's with you. 409 00:22:13,760 --> 00:22:16,670 In symmetric form, the second technology of Oxygen 410 00:22:16,670 --> 00:22:22,490 is the Enviro 21, which is environment centric. 411 00:22:22,490 --> 00:22:24,380 It sticks to the wall. 412 00:22:24,380 --> 00:22:27,590 Actually, it's big, so it may be in the wall or under the desk. 413 00:22:27,590 --> 00:22:29,720 It's in the trunk of your car. 414 00:22:29,720 --> 00:22:31,720 It's in your home. 415 00:22:31,720 --> 00:22:36,970 It is, in every respect, like the Handy 21 functionally, 416 00:22:36,970 --> 00:22:39,380 but it is much bigger. 417 00:22:39,380 --> 00:22:42,980 So it bears a relationship of a power socket to a battery, 418 00:22:42,980 --> 00:22:45,230 if you wish. 419 00:22:45,230 --> 00:22:48,700 Also, the Enviro 21 has tentacles 420 00:22:48,700 --> 00:22:52,660 which are connected to sensors and actuators 421 00:22:52,660 --> 00:22:55,580 and the famous appliances we are talking about. 422 00:22:55,580 --> 00:22:57,160 And it can control them. 423 00:22:57,160 --> 00:23:01,180 And also, the Handy has a little infrared 424 00:23:01,180 --> 00:23:03,500 in it in our current vision. 425 00:23:03,500 --> 00:23:08,500 And if you want to bring this door into your world, 426 00:23:08,500 --> 00:23:10,480 you put an infrared tag on the door. 427 00:23:10,480 --> 00:23:12,460 And when you point the handy to it, 428 00:23:12,460 --> 00:23:15,160 the machine identity of the door comes into your system. 429 00:23:15,160 --> 00:23:18,130 And then you could bring up a model that says, 430 00:23:18,130 --> 00:23:19,910 these are the people working behind it, 431 00:23:19,910 --> 00:23:21,190 and this is what they're supposed to be doing. 432 00:23:21,190 --> 00:23:23,110 And you could go down the corridor and check 433 00:23:23,110 --> 00:23:26,230 what's behind every door, at least virtually. 434 00:23:26,230 --> 00:23:31,190 So, there are interesting possibilities with Oxygen. 435 00:23:31,190 --> 00:23:36,350 The third technology is N21, Network 21, 436 00:23:36,350 --> 00:23:39,100 which is what we have to add to the internet 437 00:23:39,100 --> 00:23:43,870 to make possible the incorporation of these highly 438 00:23:43,870 --> 00:23:48,190 mobile nodes called people, because the internet goes 439 00:23:48,190 --> 00:23:49,660 to fixed addresses. 440 00:23:49,660 --> 00:23:54,300 And we want to go to resolve according to intention. 441 00:23:54,300 --> 00:23:57,720 It also makes possible networks that rise and collapse 442 00:23:57,720 --> 00:23:59,820 as people get together for a meeting, 443 00:23:59,820 --> 00:24:02,280 makes possible networks of unknown elements, 444 00:24:02,280 --> 00:24:04,500 fuzzy networks with self-adaptation, 445 00:24:04,500 --> 00:24:08,100 and we'll hear more about this later on. 446 00:24:08,100 --> 00:24:13,170 These are the three hardware technologies of Oxygen, 447 00:24:13,170 --> 00:24:16,000 with a lot of software in them, of course. 448 00:24:16,000 --> 00:24:19,530 The fourth technology may surprise you 449 00:24:19,530 --> 00:24:23,920 because it is an inner hardcore technology. 450 00:24:23,920 --> 00:24:28,510 It is built-in speech understanding. 451 00:24:28,510 --> 00:24:32,720 We really want our machines to be easy to use. 452 00:24:32,720 --> 00:24:34,730 We have to make them interact with us naturally. 453 00:24:34,730 --> 00:24:39,510 None of us is born with keyboard sockets or mouse sockets 454 00:24:39,510 --> 00:24:41,180 on our belly. 455 00:24:41,180 --> 00:24:44,860 We're born with mouths and ears, and that's what we should use. 456 00:24:44,860 --> 00:24:48,940 Dr. Zeus technologies are fantastic at the narrow domain 457 00:24:48,940 --> 00:24:51,370 level, as you heard from Bill Gates. 458 00:24:51,370 --> 00:24:53,660 What we are doing now is stitching together 459 00:24:53,660 --> 00:24:56,650 narrow domains to create a broader listening 460 00:24:56,650 --> 00:25:00,130 domain with some human help, so that you 461 00:25:00,130 --> 00:25:03,460 can help us navigate through these various narrow places 462 00:25:03,460 --> 00:25:05,380 and still talk to it. 463 00:25:05,380 --> 00:25:09,190 The Handy 21 has no keyboard. 464 00:25:09,190 --> 00:25:12,020 465 00:25:12,020 --> 00:25:16,790 The fifth Oxygen technology is individualized 466 00:25:16,790 --> 00:25:18,470 knowledge access. 467 00:25:18,470 --> 00:25:20,690 By this, I mean that people should 468 00:25:20,690 --> 00:25:24,260 be able to access knowledge in ways familiar to them. 469 00:25:24,260 --> 00:25:27,080 And we're talking about low-hanging fruit here. 470 00:25:27,080 --> 00:25:29,215 We're not talking about highfalutin concepts. 471 00:25:29,215 --> 00:25:30,590 You should be able to say, get me 472 00:25:30,590 --> 00:25:33,110 that red book next to the blue one, or next to the document 473 00:25:33,110 --> 00:25:35,360 that came from Paris yesterday. 474 00:25:35,360 --> 00:25:37,940 And then if you run out from your own store 475 00:25:37,940 --> 00:25:42,290 of goods and knowledge, you go to the store of your friends. 476 00:25:42,290 --> 00:25:45,880 And you say, assuming they permit you, 477 00:25:45,880 --> 00:25:47,650 do you know the answer to this question? 478 00:25:47,650 --> 00:25:49,670 Can I access this from you? 479 00:25:49,670 --> 00:25:52,990 And if that doesn't work, you can go out to the web 480 00:25:52,990 --> 00:25:55,300 and get the 5,000 hits. 481 00:25:55,300 --> 00:25:59,050 But then in Oxygen, we triangulate between those three 482 00:25:59,050 --> 00:26:02,050 to try to tailor big hits with friends 483 00:26:02,050 --> 00:26:04,930 and individual knowledge, as you will hear Professor 484 00:26:04,930 --> 00:26:07,750 Karger describe later on. 485 00:26:07,750 --> 00:26:12,620 The sixth Oxygen technology is automation. 486 00:26:12,620 --> 00:26:14,900 Now, this is the biggest workhorse 487 00:26:14,900 --> 00:26:16,970 of the Information Age. 488 00:26:16,970 --> 00:26:18,800 No revolution is a true revolution 489 00:26:18,800 --> 00:26:22,220 unless the machines can do our work. 490 00:26:22,220 --> 00:26:23,900 Take the shovels, throw them away, 491 00:26:23,900 --> 00:26:25,550 bring in the electronic bulldozers. 492 00:26:25,550 --> 00:26:29,350 That's what we want with that technology. 493 00:26:29,350 --> 00:26:32,440 In Oxygen, we offer scripts for you 494 00:26:32,440 --> 00:26:35,060 to automate what you're going to do. 495 00:26:35,060 --> 00:26:38,960 And you can set up and control procedures that will 496 00:26:38,960 --> 00:26:40,490 take place in a given time. 497 00:26:40,490 --> 00:26:42,260 Or when something arrives you can 498 00:26:42,260 --> 00:26:45,230 encapsulate physical objects, deal with them together 499 00:26:45,230 --> 00:26:48,410 with informational objects, and create a world around you that 500 00:26:48,410 --> 00:26:53,870 caters to you by offloading work from your head and eyes 501 00:26:53,870 --> 00:26:55,990 to the machines. 502 00:26:55,990 --> 00:27:00,640 The seventh Oxygen technology is collaboration. 503 00:27:00,640 --> 00:27:02,530 And this you can think of as a method 504 00:27:02,530 --> 00:27:06,310 of keeping track of meetings, a method of keeping track 505 00:27:06,310 --> 00:27:11,170 of who said what, open issues, and a way of zeroing 506 00:27:11,170 --> 00:27:15,510 in from human summaries, which may be brief, to fragments 507 00:27:15,510 --> 00:27:18,480 of speech that took place in the meeting, all the way 508 00:27:18,480 --> 00:27:21,990 to original work in the meeting that will remind you 509 00:27:21,990 --> 00:27:23,940 if you come back later of what you did. 510 00:27:23,940 --> 00:27:27,220 511 00:27:27,220 --> 00:27:31,740 The last, eighth Oxygen technology is customization. 512 00:27:31,740 --> 00:27:34,020 One of the most valuable resources in the world 513 00:27:34,020 --> 00:27:37,230 is human beings, and Oxygen enables 514 00:27:37,230 --> 00:27:39,960 us to customize to individual needs. 515 00:27:39,960 --> 00:27:43,170 Besides doing this in automation and all the other technologies 516 00:27:43,170 --> 00:27:47,010 I mentioned earlier, it does this with all the software. 517 00:27:47,010 --> 00:27:51,490 In Oxygen, there is no shrinkwrap software. 518 00:27:51,490 --> 00:27:54,400 Everything is downloaded, and everything 519 00:27:54,400 --> 00:27:57,820 is adjusted according to whether a user asked for it, 520 00:27:57,820 --> 00:27:59,470 or there was an error, or there was 521 00:27:59,470 --> 00:28:01,780 new software made available. 522 00:28:01,780 --> 00:28:03,350 This, then, ladies and gentlemen, 523 00:28:03,350 --> 00:28:09,010 is Oxygen, Handy 21s, Enrivo 21s in the wall, 524 00:28:09,010 --> 00:28:15,550 Network 21, built-in speech, individualized knowledge 525 00:28:15,550 --> 00:28:19,810 access, automation, collaboration, customization. 526 00:28:19,810 --> 00:28:22,600 Now, these eight are not operating individually, 527 00:28:22,600 --> 00:28:24,500 they're operating together. 528 00:28:24,500 --> 00:28:26,890 And that's where their power lies. 529 00:28:26,890 --> 00:28:30,530 And now, I'd to make a bigger claim. 530 00:28:30,530 --> 00:28:34,220 When we envisioned that person with the rings on his finger, 531 00:28:34,220 --> 00:28:36,440 trying to drive from Boston to New York, 532 00:28:36,440 --> 00:28:38,350 we were wishing that we could give him 533 00:28:38,350 --> 00:28:42,220 a gas pedal, a steering wheel, and brakes 534 00:28:42,220 --> 00:28:44,260 to make it easier to drive. 535 00:28:44,260 --> 00:28:49,270 My claim is that the five software technologies 536 00:28:49,270 --> 00:28:52,540 of speech, individualized knowledge access, automation, 537 00:28:52,540 --> 00:28:56,470 collaboration, and customization are essentially 538 00:28:56,470 --> 00:29:00,070 the new kids on the block of the Information Age, 539 00:29:00,070 --> 00:29:01,930 that of the thousands and millions of things 540 00:29:01,930 --> 00:29:06,220 we read that will be possible, a great deal of them 541 00:29:06,220 --> 00:29:08,510 can be done with these five. 542 00:29:08,510 --> 00:29:12,550 I believe these are pretty close to the gas pedal, the brakes, 543 00:29:12,550 --> 00:29:16,550 and the steering wheel, at least for the next couple of decades, 544 00:29:16,550 --> 00:29:18,710 or maybe earlier. 545 00:29:18,710 --> 00:29:22,300 And if that is true, then companies and individuals 546 00:29:22,300 --> 00:29:25,060 will do well to ask in their companies 547 00:29:25,060 --> 00:29:27,250 and in their activities, how can they 548 00:29:27,250 --> 00:29:32,470 maximize their own activities under these five elements? 549 00:29:32,470 --> 00:29:35,290 Imagine a health application under Oxygen. 550 00:29:35,290 --> 00:29:37,210 What's the individualized knowledge access? 551 00:29:37,210 --> 00:29:39,760 Well, it's the doctor's records, the patient records, 552 00:29:39,760 --> 00:29:40,630 it's Medline. 553 00:29:40,630 --> 00:29:44,570 All this has to be put together, triangulated, 554 00:29:44,570 --> 00:29:45,998 and help the doctors. 555 00:29:45,998 --> 00:29:48,290 And then you can imagine the collaboration when doctors 556 00:29:48,290 --> 00:29:50,330 get together, what they will put on that, 557 00:29:50,330 --> 00:29:52,760 and the customization for individual doctors 558 00:29:52,760 --> 00:29:56,450 and the automation of routine tasks for x-rays, et cetera. 559 00:29:56,450 --> 00:29:59,930 So, applications will take their color from Oxygen 560 00:29:59,930 --> 00:30:06,020 as applications have in the past, if our dreams come true. 561 00:30:06,020 --> 00:30:10,530 Now, I would like to close, ladies and gentlemen, 562 00:30:10,530 --> 00:30:15,510 by observing that both my colleagues and I have been 563 00:30:15,510 --> 00:30:21,570 immensely grateful to work on this, the information 564 00:30:21,570 --> 00:30:25,530 revolution, for the last many, many years. 565 00:30:25,530 --> 00:30:27,360 And we're very happy and excited that we're 566 00:30:27,360 --> 00:30:29,910 working on it right now, at this very moment, 567 00:30:29,910 --> 00:30:33,330 at this very junction and change. 568 00:30:33,330 --> 00:30:35,910 The vision of doing more by doing less 569 00:30:35,910 --> 00:30:37,890 on tomorrow's information marketplace, 570 00:30:37,890 --> 00:30:43,110 with Oxygen as our first step, is where I see us today. 571 00:30:43,110 --> 00:30:45,060 And since we're talking about revolutions, 572 00:30:45,060 --> 00:30:48,930 I'd like to close with an observation and a wish. 573 00:30:48,930 --> 00:30:51,710 574 00:30:51,710 --> 00:30:56,490 All three revolutions are based on things. 575 00:30:56,490 --> 00:30:59,580 The Agrarian Revolution was based on the plow. 576 00:30:59,580 --> 00:31:02,580 The Information Revolution, which is now happening, 577 00:31:02,580 --> 00:31:04,080 is based on the computer. 578 00:31:04,080 --> 00:31:06,900 And the one in the middle, the Industrial Revolution, 579 00:31:06,900 --> 00:31:11,180 was based on the motor, the chemicals, and so forth. 580 00:31:11,180 --> 00:31:14,330 Well, maybe the time has come for us 581 00:31:14,330 --> 00:31:18,710 to start thinking of a fourth revolution, one that is not 582 00:31:18,710 --> 00:31:22,100 based on things, but one that tries 583 00:31:22,100 --> 00:31:27,540 to understand the most precious resource on our planet, 584 00:31:27,540 --> 00:31:28,810 ourselves. 585 00:31:28,810 --> 00:31:29,310 Thank you. 586 00:31:29,310 --> 00:31:47,480 587 00:31:47,480 --> 00:31:50,435 And now that the chef has presented us with the menu, 588 00:31:50,435 --> 00:31:54,560 we will now begin with a series of short, nourishing 589 00:31:54,560 --> 00:31:58,010 presentations from the researchers at the Laboratory 590 00:31:58,010 --> 00:31:59,750 for Computer Science. 591 00:31:59,750 --> 00:32:02,150 Now, this promises to be a treat for us, 592 00:32:02,150 --> 00:32:04,130 a series of treats for us, but I assure you 593 00:32:04,130 --> 00:32:07,490 it is agonizing for them. 594 00:32:07,490 --> 00:32:12,740 Imagine summarizing your life's work in 13 minutes. 595 00:32:12,740 --> 00:32:16,820 And by the way, you have agreed to summarize 596 00:32:16,820 --> 00:32:18,635 your life's work in 13 minutes. 597 00:32:18,635 --> 00:32:21,470 598 00:32:21,470 --> 00:32:24,380 Now, as we just heard, at the heart of Oxygen 599 00:32:24,380 --> 00:32:29,480 are the hardware devices, Handy 21 and Enviro 21. 600 00:32:29,480 --> 00:32:31,010 And we're about to hear a novel way 601 00:32:31,010 --> 00:32:33,920 to get more out of hardware, as we 602 00:32:33,920 --> 00:32:36,560 hear from Anant Agarwal, who will talk 603 00:32:36,560 --> 00:32:39,290 to us about raw computation. 604 00:32:39,290 --> 00:32:48,690 605 00:32:48,690 --> 00:32:49,350 Thanks, Bob. 606 00:32:49,350 --> 00:32:51,880 607 00:32:51,880 --> 00:32:56,950 Oxygen has as its foundations the premise that computation 608 00:32:56,950 --> 00:32:58,800 will become free. 609 00:32:58,800 --> 00:33:02,600 So in this talk, I will review some technological trends 610 00:33:02,600 --> 00:33:09,610 that justify this belief and discuss how we're rethinking 611 00:33:09,610 --> 00:33:13,720 computer architecture in light of these technological 612 00:33:13,720 --> 00:33:15,710 advancements. 613 00:33:15,710 --> 00:33:20,680 So, as a quick review, let's go back to 1987. 614 00:33:20,680 --> 00:33:26,710 And what you see here is roughly 1 square centimeter of silicon. 615 00:33:26,710 --> 00:33:29,980 And a little over 10 years ago, one 616 00:33:29,980 --> 00:33:36,370 could fit in approximately a 10 or 20 MIPS CPU, [? a la ?] 617 00:33:36,370 --> 00:33:39,990 the MIPS in that small amount of area. 618 00:33:39,990 --> 00:33:47,330 And then you go forward 10 years and that same chip in 1997 619 00:33:47,330 --> 00:33:50,990 would have fit approximately in that little corner 620 00:33:50,990 --> 00:33:55,470 of the same 1-square-centimeter sized chip. 621 00:33:55,470 --> 00:33:57,930 So let's continue to go forward. 622 00:33:57,930 --> 00:34:01,680 And 10 years from now, we are going 623 00:34:01,680 --> 00:34:05,130 to have chips with billions of transistors in them 624 00:34:05,130 --> 00:34:08,280 and the teeny little MIPS chip is 625 00:34:08,280 --> 00:34:12,929 barely noticeable in the bottom left-hand corner. 626 00:34:12,929 --> 00:34:15,710 So, we have an amazing opportunity before us 627 00:34:15,710 --> 00:34:19,400 where we are going to be getting an ungodly number 628 00:34:19,400 --> 00:34:24,090 of transistors in a square centimeter of silicon. 629 00:34:24,090 --> 00:34:27,900 So we can fritter away this opportunity. 630 00:34:27,900 --> 00:34:32,130 And one way to do that is to continue living life 631 00:34:32,130 --> 00:34:37,590 as we have been in the past and look to the big or small eyes 632 00:34:37,590 --> 00:34:40,590 of this world to continue advancing our architecture 633 00:34:40,590 --> 00:34:44,610 and technologies, and just do more of the same, 634 00:34:44,610 --> 00:34:48,300 build microprocessors that are bigger of the same kind, 635 00:34:48,300 --> 00:34:51,570 and build chips microprocessors with huge amounts of register 636 00:34:51,570 --> 00:34:54,760 files, huge amounts of control and complexity. 637 00:34:54,760 --> 00:34:57,210 Well, the problem is that this kind of architecture 638 00:34:57,210 --> 00:34:59,340 simply does not scale. 639 00:34:59,340 --> 00:35:04,040 And the reason is that as technology advances, 640 00:35:04,040 --> 00:35:08,450 and certainly as we get into the 2007s and on, 641 00:35:08,450 --> 00:35:10,760 we are going to find that the transistors have 642 00:35:10,760 --> 00:35:12,350 become incredibly fast. 643 00:35:12,350 --> 00:35:14,400 They're much faster than ever before. 644 00:35:14,400 --> 00:35:17,870 However, wires simply do not scale. 645 00:35:17,870 --> 00:35:21,020 And this kind of architecture requires long wires 646 00:35:21,020 --> 00:35:23,690 in the chip to manage the fairly complicated hardware 647 00:35:23,690 --> 00:35:24,470 and control. 648 00:35:24,470 --> 00:35:28,820 And this class of architecture simply doesn't scale. 649 00:35:28,820 --> 00:35:33,170 But in many senses, we are already there. 650 00:35:33,170 --> 00:35:37,370 We've already hit a complexity and a speed issue 651 00:35:37,370 --> 00:35:38,810 with the existing architectures. 652 00:35:38,810 --> 00:35:41,888 And if you look today at where computing has gone, 653 00:35:41,888 --> 00:35:42,680 what do you notice? 654 00:35:42,680 --> 00:35:46,610 When you buy a PC, just so you can call it a PC, 655 00:35:46,610 --> 00:35:49,320 you do have an X86 in there. 656 00:35:49,320 --> 00:35:51,890 That's what I guess goes into a PC. 657 00:35:51,890 --> 00:35:55,090 But when you want to do anything real, what do you do? 658 00:35:55,090 --> 00:35:57,550 You buy a graphics card, a Photoshop card, 659 00:35:57,550 --> 00:36:01,060 you buy a math card, an encryption card, a radio card. 660 00:36:01,060 --> 00:36:02,980 I just buy big cases for my computer 661 00:36:02,980 --> 00:36:05,562 simply because I can plug in a ton of cards. 662 00:36:05,562 --> 00:36:07,270 And you get a whole bunch of these cards, 663 00:36:07,270 --> 00:36:10,570 and real performance and streaming multimedia 664 00:36:10,570 --> 00:36:14,730 applications comes from these specialized hardware units. 665 00:36:14,730 --> 00:36:17,370 So how do these give you performance? 666 00:36:17,370 --> 00:36:21,270 These give you performance because some poor souls sitting 667 00:36:21,270 --> 00:36:23,100 out somewhere have very carefully 668 00:36:23,100 --> 00:36:26,920 handcrafted the wiring through the application. 669 00:36:26,920 --> 00:36:30,220 They have customized the wiring to applications 670 00:36:30,220 --> 00:36:32,800 such as encryption, radio, and so on. 671 00:36:32,800 --> 00:36:36,190 They've hand-hacked the wires on the board or on chips 672 00:36:36,190 --> 00:36:40,300 so that the application has been very carefully choreographed 673 00:36:40,300 --> 00:36:43,210 on the VLSI chip so that all the wires take data 674 00:36:43,210 --> 00:36:45,490 right from where it should be to the right place, 675 00:36:45,490 --> 00:36:47,030 at exactly the right time. 676 00:36:47,030 --> 00:36:49,850 But a huge amount of effort goes into that process. 677 00:36:49,850 --> 00:36:53,030 And that's how you get performance. 678 00:36:53,030 --> 00:36:55,040 So, what do we do? 679 00:36:55,040 --> 00:36:57,010 This is a problem. 680 00:36:57,010 --> 00:36:58,690 You want to make people's lives easy, 681 00:36:58,690 --> 00:37:04,870 but it certainly gives us pause in terms of how we can actually 682 00:37:04,870 --> 00:37:05,860 achieve this. 683 00:37:05,860 --> 00:37:09,965 So the key insight here is to observe the following. 684 00:37:09,965 --> 00:37:12,190 In about 10 years, we're going to have 685 00:37:12,190 --> 00:37:16,545 so many gates on our chip, billions of gates on our chip. 686 00:37:16,545 --> 00:37:17,920 We're going to get to a situation 687 00:37:17,920 --> 00:37:21,340 where we're going to have gates crawling on it for years, 688 00:37:21,340 --> 00:37:25,240 tons of gates on our chip with ungodly amounts of logic. 689 00:37:25,240 --> 00:37:28,000 And what we're going to do is we are 690 00:37:28,000 --> 00:37:32,140 going to solve our computing problem by throwing gates 691 00:37:32,140 --> 00:37:33,910 at the problem. 692 00:37:33,910 --> 00:37:36,790 And what you do here is, in the past 693 00:37:36,790 --> 00:37:40,270 while people hand-compiled these applications by customizing 694 00:37:40,270 --> 00:37:42,640 the wiring of boards, what we are going to do 695 00:37:42,640 --> 00:37:48,010 is take the application and build a compiler, 696 00:37:48,010 --> 00:37:50,950 and build a compiler that uses these excess gates 697 00:37:50,950 --> 00:37:52,540 to choreograph the wires. 698 00:37:52,540 --> 00:37:55,780 Again, the key is that instead of having users spend 699 00:37:55,780 --> 00:37:58,295 huge amounts of time orchestrating the wires 700 00:37:58,295 --> 00:38:00,670 and carefully laying out the wires to get the performance 701 00:38:00,670 --> 00:38:02,650 from applications, what we're going to do 702 00:38:02,650 --> 00:38:06,190 is build an architecture and a compiler that 703 00:38:06,190 --> 00:38:09,310 uses these excess amounts of gates 704 00:38:09,310 --> 00:38:11,290 to allow us to configure the wires, 705 00:38:11,290 --> 00:38:15,220 thereby directly combining applications into the logic. 706 00:38:15,220 --> 00:38:17,920 So what we get here is a trashing 707 00:38:17,920 --> 00:38:20,230 of the traditional instruction set. 708 00:38:20,230 --> 00:38:24,880 Raw is an architectural approach that trashes existing 709 00:38:24,880 --> 00:38:26,230 instructions and architectures. 710 00:38:26,230 --> 00:38:30,010 And instead, what it does is exposes the raw hardware 711 00:38:30,010 --> 00:38:32,010 to the compiler. 712 00:38:32,010 --> 00:38:34,530 So you get the raw hardware on a chip completely exposed 713 00:38:34,530 --> 00:38:35,950 to the compiler. 714 00:38:35,950 --> 00:38:39,270 And raw hardware means the wires and the compiler 715 00:38:39,270 --> 00:38:41,800 on the chip completely exposed to the compiler. 716 00:38:41,800 --> 00:38:45,510 And what we're going to do is use these excess gates. 717 00:38:45,510 --> 00:38:48,000 We're going to have a compiler that causes those three 718 00:38:48,000 --> 00:38:51,240 gates to orchestrate the wires on the chip 719 00:38:51,240 --> 00:38:54,000 so that we get the effect of customized 720 00:38:54,000 --> 00:38:56,110 wiring to our applications. 721 00:38:56,110 --> 00:39:00,120 So what this does is lead to a new model of computation. 722 00:39:00,120 --> 00:39:01,800 I love this new model of computation 723 00:39:01,800 --> 00:39:05,260 because it is an exercise in excess. 724 00:39:05,260 --> 00:39:06,870 You're going to have lots of gates. 725 00:39:06,870 --> 00:39:08,703 So we're going to throw gates at the problem 726 00:39:08,703 --> 00:39:11,140 and combine applications directly into logic. 727 00:39:11,140 --> 00:39:12,990 And the key idea here is that we are 728 00:39:12,990 --> 00:39:16,230 going to program the wires, not a logic unit. 729 00:39:16,230 --> 00:39:19,770 This is a radical departure from existing architectures. 730 00:39:19,770 --> 00:39:22,740 In existing architectures, existing instruction sets, 731 00:39:22,740 --> 00:39:24,930 what is exposed to the software system? 732 00:39:24,930 --> 00:39:27,900 What is exposed are logic operations such as "and," 733 00:39:27,900 --> 00:39:30,647 "subtract," "add," and so on. 734 00:39:30,647 --> 00:39:32,730 What this is going to do, what Raw is going to do, 735 00:39:32,730 --> 00:39:35,800 is not expose the logic or the logic operations 736 00:39:35,800 --> 00:39:38,550 to the compiler, but rather, the most valuable resource, 737 00:39:38,550 --> 00:39:40,260 the most critical resource, the wires. 738 00:39:40,260 --> 00:39:43,060 739 00:39:43,060 --> 00:39:45,190 So what does it mean to program a wire? 740 00:39:45,190 --> 00:39:47,920 What does it mean to expose the wires to the compiler 741 00:39:47,920 --> 00:39:49,850 and let the compiler program them? 742 00:39:49,850 --> 00:39:52,150 So this is a playground, if you will. 743 00:39:52,150 --> 00:39:56,560 And this is our most critical resource, a wire. 744 00:39:56,560 --> 00:40:00,370 It is also the real problem in terms of getting performance 745 00:40:00,370 --> 00:40:02,110 out of complicated chips. 746 00:40:02,110 --> 00:40:04,600 So what we're going to do is build a compiler 747 00:40:04,600 --> 00:40:07,420 that is going to orchestrate these wires in a way that 748 00:40:07,420 --> 00:40:10,420 customizes them to the application. 749 00:40:10,420 --> 00:40:13,170 So the first step that we're going to follow 750 00:40:13,170 --> 00:40:16,950 is that the compiler is going to pipeline the wires so 751 00:40:16,950 --> 00:40:21,930 that long wires don't incur long delays. 752 00:40:21,930 --> 00:40:24,600 Pipeline the wires, use that excess logic 753 00:40:24,600 --> 00:40:27,330 to introduce registers to pipeline the wires, so we 754 00:40:27,330 --> 00:40:31,290 can run at much higher clock speeds than we could imagine, 755 00:40:31,290 --> 00:40:35,190 say around 10 to 15 gigahertz by the year 2010. 756 00:40:35,190 --> 00:40:38,760 The next step, why is it a really valuable resource? 757 00:40:38,760 --> 00:40:41,610 So if you do not want to send just one signal down a wire 758 00:40:41,610 --> 00:40:43,770 and bind it to that signal for all time, 759 00:40:43,770 --> 00:40:48,220 rather multiplex the wires among a large number of signals. 760 00:40:48,220 --> 00:40:50,400 And again, if you'd like to use a compiler 761 00:40:50,400 --> 00:40:52,650 to introduce multiplexers, again, 762 00:40:52,650 --> 00:40:55,050 use the excess gates to orchestrate 763 00:40:55,050 --> 00:40:56,680 our most valuable resource. 764 00:40:56,680 --> 00:40:59,325 So use the gates to build multiplexers 765 00:40:59,325 --> 00:41:02,550 to multiplex the wires among a much larger number of signals 766 00:41:02,550 --> 00:41:06,480 and improve the utilization of the wires. 767 00:41:06,480 --> 00:41:08,520 And finally, what we would like to do 768 00:41:08,520 --> 00:41:12,810 is use a compiler to customize and schedule 769 00:41:12,810 --> 00:41:15,660 and route the signals on these wires at the right time 770 00:41:15,660 --> 00:41:18,450 so that the set of wires takes on the identity 771 00:41:18,450 --> 00:41:20,110 of the application. 772 00:41:20,110 --> 00:41:22,410 So this is what it means to program a wire. 773 00:41:22,410 --> 00:41:26,910 And we in fact like to call these wires of the 21st century 774 00:41:26,910 --> 00:41:27,765 "soft wires." 775 00:41:27,765 --> 00:41:30,300 776 00:41:30,300 --> 00:41:33,120 So what we like to do with this class of approach 777 00:41:33,120 --> 00:41:35,610 is enable the Handy 21. 778 00:41:35,610 --> 00:41:38,580 So we'd like to have a single device into which we 779 00:41:38,580 --> 00:41:41,670 can directly map applications using our compiler. 780 00:41:41,670 --> 00:41:47,580 So encryption, or speech recognition of various forms, 781 00:41:47,580 --> 00:41:50,190 cell phones directly map the appropriate software 782 00:41:50,190 --> 00:41:52,890 into Raw hardware, like games. 783 00:41:52,890 --> 00:41:55,740 And in collaboration with the networking folks, 784 00:41:55,740 --> 00:41:56,910 we enable the following. 785 00:41:56,910 --> 00:42:00,060 We have a single device that I can use and talk 786 00:42:00,060 --> 00:42:02,790 to and say, hey, turn yourself into a cell phone. 787 00:42:02,790 --> 00:42:06,180 The device will go and locate the appropriate configuration 788 00:42:06,180 --> 00:42:09,360 software, configuration bits, download it, 789 00:42:09,360 --> 00:42:11,730 configure the wires after our chip, 790 00:42:11,730 --> 00:42:14,610 and give it the personality of a cell phone 791 00:42:14,610 --> 00:42:16,530 and then I talk to it. 792 00:42:16,530 --> 00:42:18,440 So what does that mean to me? 793 00:42:18,440 --> 00:42:20,090 That's pretty fantastic. 794 00:42:20,090 --> 00:42:26,030 Today, I carry a beeper, I carry a cell phone, 795 00:42:26,030 --> 00:42:30,260 and I carry a Palm Pilot. 796 00:42:30,260 --> 00:42:32,860 So I'm going to take all of these things 797 00:42:32,860 --> 00:42:34,730 and throw them away. 798 00:42:34,730 --> 00:42:38,810 I'm going to have a single device, the Handy 21, 799 00:42:38,810 --> 00:42:41,030 and just carry one little device. 800 00:42:41,030 --> 00:42:43,490 And just by talking to it, I get it 801 00:42:43,490 --> 00:42:46,190 to download the appropriate configuration bits 802 00:42:46,190 --> 00:42:49,130 so that it takes the personality of pretty much any device 803 00:42:49,130 --> 00:42:51,660 that you want. 804 00:42:51,660 --> 00:42:55,590 So, the one other step, and what I'd like to do. 805 00:42:55,590 --> 00:42:58,020 This is the little device I'm talking about, 806 00:42:58,020 --> 00:43:00,930 and all it would contain, in terms 807 00:43:00,930 --> 00:43:04,440 of digital logic, digital hardware, a single Raw chip 808 00:43:04,440 --> 00:43:05,280 inside. 809 00:43:05,280 --> 00:43:07,170 And in addition to that, it has a bunch 810 00:43:07,170 --> 00:43:08,620 of perceptual interfaces. 811 00:43:08,620 --> 00:43:13,600 It has cameras and perhaps a little 3x3 DFT display. 812 00:43:13,600 --> 00:43:16,620 It has other perceptual interfaces, like speech, 813 00:43:16,620 --> 00:43:18,180 both speakers and microphones. 814 00:43:18,180 --> 00:43:21,900 Of course it needs an antenna and an A-to-D converter. 815 00:43:21,900 --> 00:43:25,530 And the A-to-D will probably be integrated on the same chip 816 00:43:25,530 --> 00:43:29,460 itself, so that essentially all the function that you 817 00:43:29,460 --> 00:43:32,130 buy custom hardware for today will be accomplished 818 00:43:32,130 --> 00:43:34,350 within the Raw chip by customizing applications 819 00:43:34,350 --> 00:43:38,280 directly into the wires on the chip. 820 00:43:38,280 --> 00:43:40,560 By building a device of this sort, 821 00:43:40,560 --> 00:43:43,750 we'd also like to paper our walls with computation. 822 00:43:43,750 --> 00:43:46,320 We need to have computation all over the map. 823 00:43:46,320 --> 00:43:47,767 You look and guess what? 824 00:43:47,767 --> 00:43:48,600 There's computation. 825 00:43:48,600 --> 00:43:50,250 It's going to be everywhere, it's going to be free, 826 00:43:50,250 --> 00:43:52,980 and it's going to be readily available like oxygen. You 827 00:43:52,980 --> 00:43:55,120 will be wondering how you lived without it. 828 00:43:55,120 --> 00:43:58,560 So the key idea is that in the walls of a new building, 829 00:43:58,560 --> 00:44:01,650 we have an array of Raw like chips on the wall, 830 00:44:01,650 --> 00:44:04,980 so that these can give you a massive amount of computation. 831 00:44:04,980 --> 00:44:08,130 As Mike pointed out, it's the wall socket analogy 832 00:44:08,130 --> 00:44:11,520 or in contrast to handheld little batteries. 833 00:44:11,520 --> 00:44:14,490 So I call these computational fabrics the sheetrock 834 00:44:14,490 --> 00:44:16,710 of the 21st century. 835 00:44:16,710 --> 00:44:18,960 So the Raw architecture is actually very, very simple. 836 00:44:18,960 --> 00:44:20,585 The challenge is in the compiler system 837 00:44:20,585 --> 00:44:22,230 to orchestrate the wires. 838 00:44:22,230 --> 00:44:26,310 So the Raw chip itself is an array of tiles, 839 00:44:26,310 --> 00:44:29,490 very simple, replicated, simple to design and build. 840 00:44:29,490 --> 00:44:34,630 And the key in the tile is the switching fabric. 841 00:44:34,630 --> 00:44:36,390 Each tile has a switch. 842 00:44:36,390 --> 00:44:39,760 What the switch does is orchestrate the wires. 843 00:44:39,760 --> 00:44:41,760 The bunch of excess gates that I talked about 844 00:44:41,760 --> 00:44:43,920 are devoted to the switch and the compiler 845 00:44:43,920 --> 00:44:45,762 programs the switch. 846 00:44:45,762 --> 00:44:47,970 This is not a multiprocessor in the traditional sense 847 00:44:47,970 --> 00:44:48,780 of the word. 848 00:44:48,780 --> 00:44:50,250 The bunch of tiles, each of which 849 00:44:50,250 --> 00:44:53,940 has a memory which can be programmed by the compiler, 850 00:44:53,940 --> 00:44:57,990 tells the switch exactly what wire or what sort of wires 851 00:44:57,990 --> 00:45:01,860 to connect to what point on every cycle of its operation. 852 00:45:01,860 --> 00:45:03,960 So the compiler, by introducing a program 853 00:45:03,960 --> 00:45:06,300 into each of these switching blocks, 854 00:45:06,300 --> 00:45:10,260 choreographs how data moves around the entire chip. 855 00:45:10,260 --> 00:45:13,230 It's a wire-centric model of computation. 856 00:45:13,230 --> 00:45:15,720 And, of course, you need a bunch of logic. 857 00:45:15,720 --> 00:45:17,470 So there'll be a bunch of logic out there. 858 00:45:17,470 --> 00:45:19,637 It really doesn't matter exactly what it looks like. 859 00:45:19,637 --> 00:45:21,900 It's incredibly simple. 860 00:45:21,900 --> 00:45:24,690 And the other value of Raw architecture of the sort 861 00:45:24,690 --> 00:45:27,870 is you can now bring massive streams of data 862 00:45:27,870 --> 00:45:31,050 directly to where computation happens upon it. 863 00:45:31,050 --> 00:45:33,450 And the chip that you're building, 864 00:45:33,450 --> 00:45:36,420 by the end of next year, in collaboration with IBM, 865 00:45:36,420 --> 00:45:40,380 is going to have on the order of 1,500 [? I/Os. ?] 866 00:45:40,380 --> 00:45:43,230 Get massive amounts of data right for the computation, 867 00:45:43,230 --> 00:45:45,480 get the wires orchestrated to stream the data, 868 00:45:45,480 --> 00:45:50,950 and get much better performance and power than we can today. 869 00:45:50,950 --> 00:45:55,800 One can view this, if you like, in some respects, like an FPGA, 870 00:45:55,800 --> 00:45:59,250 but it's quite different from FPGAs in that it's 871 00:45:59,250 --> 00:46:00,630 a much coarser grain. 872 00:46:00,630 --> 00:46:03,540 It has built-in support for multiplexing all the wires. 873 00:46:03,540 --> 00:46:06,430 FPGA is [? bind ?] hardware for one time. 874 00:46:06,430 --> 00:46:08,910 It takes a much longer time to reprogram the wires. 875 00:46:08,910 --> 00:46:10,950 And I think the most important part 876 00:46:10,950 --> 00:46:14,130 is that we are looking to build an automatic compiler, 877 00:46:14,130 --> 00:46:16,572 a compiler that automatically compiles applications 878 00:46:16,572 --> 00:46:18,030 into the chip, as opposed to having 879 00:46:18,030 --> 00:46:20,590 users do hardware designs. 880 00:46:20,590 --> 00:46:22,110 So it's one example. 881 00:46:22,110 --> 00:46:25,350 This is not all hot air. 882 00:46:25,350 --> 00:46:28,230 My group, comprising Saman Amarasinghe and myself 883 00:46:28,230 --> 00:46:31,360 and many of our students, have combined many applications 884 00:46:31,360 --> 00:46:31,860 to this. 885 00:46:31,860 --> 00:46:36,780 We built a compiler that can take sequential C applications 886 00:46:36,780 --> 00:46:41,250 and compile it directly into a simulator of the Raw fabric. 887 00:46:41,250 --> 00:46:44,550 As one example, you will hear a talk later 888 00:46:44,550 --> 00:46:52,500 on by John Guttag on a software implementation of FM radio. 889 00:46:52,500 --> 00:46:55,140 So what we did is took their sequential C code 890 00:46:55,140 --> 00:46:58,110 for the software area that they've built and automatically 891 00:46:58,110 --> 00:47:00,455 compiled it onto a Raw machine. 892 00:47:00,455 --> 00:47:01,830 So I can kind of give you a sense 893 00:47:01,830 --> 00:47:04,140 of what kinds of performance and benefits 894 00:47:04,140 --> 00:47:06,970 are achievable with something like that. 895 00:47:06,970 --> 00:47:10,090 So we've compiled that and it has a channel selection module, 896 00:47:10,090 --> 00:47:14,010 the demodulation component, and a low-pass filter component. 897 00:47:14,010 --> 00:47:19,110 And our projections are, for the 128 tile Raw chip, 898 00:47:19,110 --> 00:47:22,350 that an automatically compiled version of the sequential C 899 00:47:22,350 --> 00:47:25,590 application will run on the order of 10 times faster 900 00:47:25,590 --> 00:47:29,560 than an X10 PC of that day. 901 00:47:29,560 --> 00:47:31,200 We also have some wizard students 902 00:47:31,200 --> 00:47:35,940 and they hand-hacked a version of the code 903 00:47:35,940 --> 00:47:38,558 and they got it for the 10x improvement. 904 00:47:38,558 --> 00:47:40,350 So the real challenge in their own research 905 00:47:40,350 --> 00:47:43,140 is to build a compiler that can approach the 100x that you 906 00:47:43,140 --> 00:47:46,443 can get by hand customizing the wiring of the application. 907 00:47:46,443 --> 00:47:48,360 We're a long way to go, it's a real challenge. 908 00:47:48,360 --> 00:47:50,190 But the real key is the compiler. 909 00:47:50,190 --> 00:47:52,980 And what have we done here or what 910 00:47:52,980 --> 00:47:56,380 are we banking on that would make our life fairly easy? 911 00:47:56,380 --> 00:47:59,950 The key is the observation that 10 years from now, 912 00:47:59,950 --> 00:48:02,610 we are going to have an excess amount of gates on a chip. 913 00:48:02,610 --> 00:48:03,810 The wire to the problem. 914 00:48:03,810 --> 00:48:05,107 Gates are free. 915 00:48:05,107 --> 00:48:07,440 And what we're going to do is throw gates at the problem 916 00:48:07,440 --> 00:48:08,940 to solve a compilation problem. 917 00:48:08,940 --> 00:48:11,492 If you're not going to try to be stingy about gates, 918 00:48:11,492 --> 00:48:13,200 we're going to throw gates at the problem 919 00:48:13,200 --> 00:48:16,990 and use those to make our compilation job a lot easier. 920 00:48:16,990 --> 00:48:21,990 So finally, to close, let me talk about futures. 921 00:48:21,990 --> 00:48:25,470 If we can get our way and build a single Raw chip that 922 00:48:25,470 --> 00:48:27,480 can take the place of general-purpose computing 923 00:48:27,480 --> 00:48:31,800 chips, such as PC micros, and at the same time 924 00:48:31,800 --> 00:48:34,650 eliminate specialized hardware because the compiler combined 925 00:48:34,650 --> 00:48:36,630 these functions by customizing wires, 926 00:48:36,630 --> 00:48:38,250 then we will have a universal Raw 927 00:48:38,250 --> 00:48:41,640 chip that can replace both general-purpose micros 928 00:48:41,640 --> 00:48:42,760 and special hardware. 929 00:48:42,760 --> 00:48:44,430 And so I make a projection that it's 930 00:48:44,430 --> 00:48:46,675 quite likely that 10 or 15 years from now, 931 00:48:46,675 --> 00:48:48,300 there will be only three kinds of chips 932 00:48:48,300 --> 00:48:52,170 in the world, DRAM chips, Raw chips, and, of course, 933 00:48:52,170 --> 00:48:53,650 potato chips. 934 00:48:53,650 --> 00:48:54,150 Thank you. 935 00:48:54,150 --> 00:49:07,410 936 00:49:07,410 --> 00:49:09,840 But of course, we're going to have to connect 937 00:49:09,840 --> 00:49:11,460 these computers together. 938 00:49:11,460 --> 00:49:13,500 We're going to need networks, networks that 939 00:49:13,500 --> 00:49:14,790 go way beyond the internet. 940 00:49:14,790 --> 00:49:18,780 And to talk to us about that is Hari Balakrishnan, 941 00:49:18,780 --> 00:49:23,490 who is the youngest member of the faculty at LSC. 942 00:49:23,490 --> 00:49:24,970 Take it away. 943 00:49:24,970 --> 00:49:28,035 Thanks a lot, Bob, and good morning, ladies and gentlemen. 944 00:49:28,035 --> 00:49:29,410 What I'm going to describe to you 945 00:49:29,410 --> 00:49:33,400 is my vision for N21 Oxygen's networking component, which 946 00:49:33,400 --> 00:49:35,230 I fondly hope will also be a core component 947 00:49:35,230 --> 00:49:36,580 in the future internet. 948 00:49:36,580 --> 00:49:39,700 And this is a vision that has two main themes and components 949 00:49:39,700 --> 00:49:42,220 in it that I'd like you to take on from the stock. 950 00:49:42,220 --> 00:49:45,410 The first is the notion of self-organization. 951 00:49:45,410 --> 00:49:48,220 And the second is the notion of adaptation. 952 00:49:48,220 --> 00:49:50,050 By self-organization, what I mean 953 00:49:50,050 --> 00:49:53,860 is the ability for our networks and for our distributed network 954 00:49:53,860 --> 00:49:56,650 applications to organize themselves and configure 955 00:49:56,650 --> 00:49:59,170 themselves and get efficient work done 956 00:49:59,170 --> 00:50:01,480 without any manual intervention whatsoever, 957 00:50:01,480 --> 00:50:03,790 and without any user frustration in setting things up, 958 00:50:03,790 --> 00:50:05,810 which we're also familiar with. 959 00:50:05,810 --> 00:50:08,780 By adaptation, what I mean is the ability for our protocols 960 00:50:08,780 --> 00:50:11,210 and applications to adapt to all the changing conditions, 961 00:50:11,210 --> 00:50:13,580 from levels of congestion, to errors on networks, 962 00:50:13,580 --> 00:50:17,240 to heterogeneity of different types of links, 963 00:50:17,240 --> 00:50:20,820 and to transfer data as efficiently as possible. 964 00:50:20,820 --> 00:50:23,230 And this is what I'm going to talk about. 965 00:50:23,230 --> 00:50:26,218 So I'm going to start first by asking you to imagine 966 00:50:26,218 --> 00:50:28,260 a very simple scenario, not from science fiction, 967 00:50:28,260 --> 00:50:30,510 but this is something we'd all like to do 968 00:50:30,510 --> 00:50:33,822 today, something which we all really will find useful, 969 00:50:33,822 --> 00:50:36,030 but something that's really hard to accomplish today. 970 00:50:36,030 --> 00:50:37,860 And it starts first with a group of people 971 00:50:37,860 --> 00:50:40,170 who gather together in a meeting room to collaborate. 972 00:50:40,170 --> 00:50:42,553 This is just a simple meeting we're all so used to doing. 973 00:50:42,553 --> 00:50:44,970 We have a variety of different computing and communication 974 00:50:44,970 --> 00:50:48,480 devices, including, of course, the H21, or the Handy 21 975 00:50:48,480 --> 00:50:50,802 that Michael and Anant talked to you about. 976 00:50:50,802 --> 00:50:52,260 During the process of this meeting, 977 00:50:52,260 --> 00:50:54,000 we would like to bring these devices in and have 978 00:50:54,000 --> 00:50:55,810 them networked and have an application 979 00:50:55,810 --> 00:50:57,510 to share information with each other 980 00:50:57,510 --> 00:50:59,160 without any intervention on our part 981 00:50:59,160 --> 00:51:01,710 and any frustration of our own. 982 00:51:01,710 --> 00:51:04,170 Of course, we also find that in any environment that we 983 00:51:04,170 --> 00:51:06,305 move in and live in, there are a number of services 984 00:51:06,305 --> 00:51:08,430 and a number of different things in the environment 985 00:51:08,430 --> 00:51:11,490 that we have that we would like to control and like 986 00:51:11,490 --> 00:51:14,182 to gain information access from, ranging from coffee 987 00:51:14,182 --> 00:51:16,140 machines that would be networked in the future, 988 00:51:16,140 --> 00:51:21,360 to projection equipment, to copy machines to temperature sensors 989 00:51:21,360 --> 00:51:25,080 and other types of sensors and actuators in our environment. 990 00:51:25,080 --> 00:51:27,240 Of course, we also have the Enviro 21, 991 00:51:27,240 --> 00:51:29,610 which are embedded sensors and actuators in the wall 992 00:51:29,610 --> 00:51:32,990 that we would like to control from our network. 993 00:51:32,990 --> 00:51:34,610 In our meeting, we also have a person 994 00:51:34,610 --> 00:51:36,290 who's been lucky enough to be at home today, 995 00:51:36,290 --> 00:51:38,300 but he would like to participate in the meeting. 996 00:51:38,300 --> 00:51:41,780 And he does so by using his wide area wireless 997 00:51:41,780 --> 00:51:44,700 link from his home to connect to our corporation. 998 00:51:44,700 --> 00:51:47,300 And we would like to do this again without any setting up 999 00:51:47,300 --> 00:51:48,120 of our own. 1000 00:51:48,120 --> 00:51:49,670 And again, during the process of our meeting, 1001 00:51:49,670 --> 00:51:52,045 we find that a colleague of ours is vacationing somewhere 1002 00:51:52,045 --> 00:51:54,350 in the Mediterranean and we would like our system to, 1003 00:51:54,350 --> 00:51:57,650 in a secure and private way, track her and have her join in 1004 00:51:57,650 --> 00:52:00,560 and participate via satellite connection. 1005 00:52:00,560 --> 00:52:03,763 We'd like all this to happen automatically. 1006 00:52:03,763 --> 00:52:05,430 During the meeting, we find that there's 1007 00:52:05,430 --> 00:52:07,458 lots of information, lots of services 1008 00:52:07,458 --> 00:52:09,000 from the worldwide web, that we would 1009 00:52:09,000 --> 00:52:11,160 like to garner in and actually use 1010 00:52:11,160 --> 00:52:12,900 to make our meeting more productive, 1011 00:52:12,900 --> 00:52:14,850 lots of different types of data. 1012 00:52:14,850 --> 00:52:17,010 What we would like to do is to have all this happen 1013 00:52:17,010 --> 00:52:19,020 automatically and efficiently to create 1014 00:52:19,020 --> 00:52:21,570 this notion of collaboration, of collaborative regions that 1015 00:52:21,570 --> 00:52:25,200 aren't people that automatically can be spontaneously created 1016 00:52:25,200 --> 00:52:30,163 and when the meeting is done, be turned on automatically. 1017 00:52:30,163 --> 00:52:31,580 What are some technical challenges 1018 00:52:31,580 --> 00:52:33,635 in enabling this vision? 1019 00:52:33,635 --> 00:52:34,760 The first is heterogeneity. 1020 00:52:34,760 --> 00:52:36,410 There's a wide variety and diversity 1021 00:52:36,410 --> 00:52:38,150 of devices, of types of networks, 1022 00:52:38,150 --> 00:52:39,950 of applications and data and services, 1023 00:52:39,950 --> 00:52:44,740 that we somehow have to overcome and have our system handle. 1024 00:52:44,740 --> 00:52:46,490 The second is the large amount of dynamism 1025 00:52:46,490 --> 00:52:48,920 and spontaneous operation and mobility that we need. 1026 00:52:48,920 --> 00:52:51,080 We need to have these networks and applications 1027 00:52:51,080 --> 00:52:53,810 rapidly deployable and organized without 1028 00:52:53,810 --> 00:52:55,580 any manual intervention. 1029 00:52:55,580 --> 00:52:58,880 And the third is a much higher and much better 1030 00:52:58,880 --> 00:53:01,220 degree of fault tolerance and decentralization 1031 00:53:01,220 --> 00:53:02,300 than what we have today. 1032 00:53:02,300 --> 00:53:04,217 We absolutely need our networks to be far more 1033 00:53:04,217 --> 00:53:06,610 robust than they are today. 1034 00:53:06,610 --> 00:53:10,020 I'm going to describe to you how the ideas of self-organization 1035 00:53:10,020 --> 00:53:14,340 and the ideas of adaptation built into Oxygen's protocols 1036 00:53:14,340 --> 00:53:18,068 and middleware will enable this to happen. 1037 00:53:18,068 --> 00:53:19,610 Before we get into Oxygen, let's look 1038 00:53:19,610 --> 00:53:20,818 at how current networks work. 1039 00:53:20,818 --> 00:53:24,380 And this is a highly simplified, high-level view of networks, 1040 00:53:24,380 --> 00:53:27,030 which are typically built around clients and servers. 1041 00:53:27,030 --> 00:53:29,150 Think of them as web clients and web servers. 1042 00:53:29,150 --> 00:53:32,570 And packets get routed from clients to servers and vice 1043 00:53:32,570 --> 00:53:36,247 versa via routers using IP, the internet protocol. 1044 00:53:36,247 --> 00:53:38,330 One of the most interesting and important services 1045 00:53:38,330 --> 00:53:39,920 that exists in the internet today 1046 00:53:39,920 --> 00:53:43,580 is the domain name system, which is a fairly static mapping that 1047 00:53:43,580 --> 00:53:46,700 converts host names, such as microsoft.com or cnn.com 1048 00:53:46,700 --> 00:53:49,350 or mit.edu to IP addresses. 1049 00:53:49,350 --> 00:53:50,900 And this is a fairly static mapping 1050 00:53:50,900 --> 00:53:52,970 that's not dynamic, doesn't get updated 1051 00:53:52,970 --> 00:53:57,480 or changed very spontaneously and doesn't happen often. 1052 00:53:57,480 --> 00:54:00,800 So the problem is that the internet today 1053 00:54:00,800 --> 00:54:03,680 is tuned to work with mostly static topology and services. 1054 00:54:03,680 --> 00:54:06,230 It isn't tuned to handle a high degree of dynamism 1055 00:54:06,230 --> 00:54:07,787 and spontaneity. 1056 00:54:07,787 --> 00:54:10,370 The second problem is that our applications cannot learn about 1057 00:54:10,370 --> 00:54:10,870 the network. 1058 00:54:10,870 --> 00:54:13,520 We've been used to a highly layered view of networking 1059 00:54:13,520 --> 00:54:16,040 architecture, and that information doesn't easily 1060 00:54:16,040 --> 00:54:18,120 pass between different layers of the protocol 1061 00:54:18,120 --> 00:54:19,333 stack up to the application. 1062 00:54:19,333 --> 00:54:21,000 So it's very hard today for applications 1063 00:54:21,000 --> 00:54:23,450 to learn about the network, to learn that bandwidth may have 1064 00:54:23,450 --> 00:54:24,908 changed, or to learn that there are 1065 00:54:24,908 --> 00:54:26,480 wireless links along the path. 1066 00:54:26,480 --> 00:54:28,970 The third is the high cost of operational management, 1067 00:54:28,970 --> 00:54:32,290 of setting these networks up, of configuring networks to work. 1068 00:54:32,290 --> 00:54:34,790 And we would like to eliminate that, or at least reduce that 1069 00:54:34,790 --> 00:54:38,420 to something insignificant. 1070 00:54:38,420 --> 00:54:40,140 How are we going to achieve this? 1071 00:54:40,140 --> 00:54:41,450 Well, the first thing to do is, rather than 1072 00:54:41,450 --> 00:54:44,030 think of the internet and future networks as transmitting bits, 1073 00:54:44,030 --> 00:54:46,490 we should really think of them as transmitting information. 1074 00:54:46,490 --> 00:54:48,200 We should view ourselves as having 1075 00:54:48,200 --> 00:54:49,940 a large number of devices and sensors 1076 00:54:49,940 --> 00:54:52,295 and actuators in the world, a large number of providers, 1077 00:54:52,295 --> 00:54:55,400 a large number of information providers. 1078 00:54:55,400 --> 00:54:57,380 And at any point in time, let's imagine 1079 00:54:57,380 --> 00:55:00,890 we have an application running on our Handy 21. 1080 00:55:00,890 --> 00:55:02,480 And we want to control our environment 1081 00:55:02,480 --> 00:55:05,450 or retrieve some information from the worldwide web 1082 00:55:05,450 --> 00:55:06,890 or from the internet. 1083 00:55:06,890 --> 00:55:09,320 Rather than think of this as bits, 1084 00:55:09,320 --> 00:55:11,580 let's think of us as a consumer of information. 1085 00:55:11,580 --> 00:55:14,360 Let's imagine that we want some piece of information. 1086 00:55:14,360 --> 00:55:15,740 We have a distributed application 1087 00:55:15,740 --> 00:55:17,157 that's running on our machine that 1088 00:55:17,157 --> 00:55:19,580 requires some data or some functionality 1089 00:55:19,580 --> 00:55:23,310 or some service that exists somewhere in the network. 1090 00:55:23,310 --> 00:55:25,610 The point is that often our application 1091 00:55:25,610 --> 00:55:28,100 or often we can express what we want, 1092 00:55:28,100 --> 00:55:29,810 we can describe what we want in words, 1093 00:55:29,810 --> 00:55:32,340 or our applications can express what they want. 1094 00:55:32,340 --> 00:55:34,340 Unfortunately, they can't often tell the network 1095 00:55:34,340 --> 00:55:36,302 where to find it. 1096 00:55:36,302 --> 00:55:37,760 With the way the domain name system 1097 00:55:37,760 --> 00:55:39,800 works today, unless we tell the network 1098 00:55:39,800 --> 00:55:45,470 where to find this information, we don't get the information. 1099 00:55:45,470 --> 00:55:48,390 We can express this information in interesting ways. 1100 00:55:48,390 --> 00:55:50,715 And that's how N21 is going to work. 1101 00:55:50,715 --> 00:55:52,340 So we're going to think of this network 1102 00:55:52,340 --> 00:55:54,590 as having a set of consumers and a set of providers 1103 00:55:54,590 --> 00:55:56,840 of information, of any piece of information or service 1104 00:55:56,840 --> 00:55:58,280 or functionality that we want. 1105 00:55:58,280 --> 00:56:01,100 And the task of the network, the first task of the network, 1106 00:56:01,100 --> 00:56:03,920 is to efficiently match up these consumers and providers. 1107 00:56:03,920 --> 00:56:06,530 The consumer expresses the information or the service 1108 00:56:06,530 --> 00:56:08,700 or functionality that it wants. 1109 00:56:08,700 --> 00:56:11,900 And the job of the network is to figure out the best provider 1110 00:56:11,900 --> 00:56:14,750 to get this information from. 1111 00:56:14,750 --> 00:56:18,440 The second job of N21, of the future network infrastructure, 1112 00:56:18,440 --> 00:56:21,013 is to enable applications, to learn about conditions 1113 00:56:21,013 --> 00:56:23,180 in the network, to learn about changes in bandwidth, 1114 00:56:23,180 --> 00:56:25,555 to learn about different types of [? error conditions, ?] 1115 00:56:25,555 --> 00:56:28,130 to learn about failure modes, and adapt well to what's 1116 00:56:28,130 --> 00:56:30,260 going on, adapt well to heterogeneity, 1117 00:56:30,260 --> 00:56:33,490 and adapt well to everything that changes in the network. 1118 00:56:33,490 --> 00:56:36,872 And our hope is that Oxygen's N21 middleware protocols that 1119 00:56:36,872 --> 00:56:38,830 will achieve this will also be a core component 1120 00:56:38,830 --> 00:56:42,207 of the future internet and enable a much better way 1121 00:56:42,207 --> 00:56:44,290 in which applications and distributed applications 1122 00:56:44,290 --> 00:56:46,300 can be set up to organize themselves. 1123 00:56:46,300 --> 00:56:50,682 This is the notion of self-organization. 1124 00:56:50,682 --> 00:56:52,640 What I'm going to describe now is one component 1125 00:56:52,640 --> 00:56:54,470 of the self-organization puzzle. 1126 00:56:54,470 --> 00:56:56,450 And this is built around the naming system 1127 00:56:56,450 --> 00:56:59,940 that we call an intentional naming system. 1128 00:56:59,940 --> 00:57:02,760 It departs greatly from the way current naming systems are 1129 00:57:02,760 --> 00:57:04,602 set up, which are fairly static and which 1130 00:57:04,602 --> 00:57:06,060 usually involve things like mapping 1131 00:57:06,060 --> 00:57:07,830 host names to addresses. 1132 00:57:07,830 --> 00:57:11,280 In N21's naming system, the INS, or intentional naming system, 1133 00:57:11,280 --> 00:57:14,490 names do not express just network locations or host 1134 00:57:14,490 --> 00:57:15,390 names. 1135 00:57:15,390 --> 00:57:16,960 Names express desired properties. 1136 00:57:16,960 --> 00:57:18,960 They're intentional because applications can now 1137 00:57:18,960 --> 00:57:21,000 express that intent in what they want 1138 00:57:21,000 --> 00:57:23,697 by describing what they want. 1139 00:57:23,697 --> 00:57:25,280 So, for example, names are descriptive 1140 00:57:25,280 --> 00:57:27,320 and information providers could periodically 1141 00:57:27,320 --> 00:57:29,900 disseminate this descriptive piece of information, 1142 00:57:29,900 --> 00:57:32,460 describing the service that they provide into the network. 1143 00:57:32,460 --> 00:57:35,555 So for example, if I have a camera in room 504 of the MIT 1144 00:57:35,555 --> 00:57:37,460 LCS building, I could periodically 1145 00:57:37,460 --> 00:57:40,800 advertise this in this fashion, for example, 1146 00:57:40,800 --> 00:57:44,690 a set of attributes and values or a set of other properties 1147 00:57:44,690 --> 00:57:48,455 in some sort of defined language. 1148 00:57:48,455 --> 00:57:49,830 When I want to look up something, 1149 00:57:49,830 --> 00:57:51,830 and I want to retrieve a piece of functionality, 1150 00:57:51,830 --> 00:57:53,930 names become query expressions, again, 1151 00:57:53,930 --> 00:57:56,450 in a carefully defined language with a well-defined set 1152 00:57:56,450 --> 00:58:00,050 of operators that we need to be thinking about quite carefully. 1153 00:58:00,050 --> 00:58:01,723 For example, these query expressions 1154 00:58:01,723 --> 00:58:03,890 could involve exact matches of attributes to values, 1155 00:58:03,890 --> 00:58:06,800 they could involve qualities of ranges and wildcard matches. 1156 00:58:06,800 --> 00:58:09,530 And for example, if I'm standing in Tech Square in Cambridge 1157 00:58:09,530 --> 00:58:11,930 and I want to find the closest cafe, what I could do 1158 00:58:11,930 --> 00:58:13,670 is to have my application, that's 1159 00:58:13,670 --> 00:58:16,340 my cafe application or my location application, 1160 00:58:16,340 --> 00:58:18,890 send a message out that wants the cafe within a quarter mile 1161 00:58:18,890 --> 00:58:20,680 from here. 1162 00:58:20,680 --> 00:58:22,300 Presumably, the cafes in the area 1163 00:58:22,300 --> 00:58:24,040 are proxies acting on their behalf, 1164 00:58:24,040 --> 00:58:26,808 and will have periodically broadcast or periodically 1165 00:58:26,808 --> 00:58:29,350 disseminated this information describing themselves as a cafe 1166 00:58:29,350 --> 00:58:30,170 into the network. 1167 00:58:30,170 --> 00:58:32,830 And what we would like to do is to have our system match 1168 00:58:32,830 --> 00:58:35,440 these queries with the properties 1169 00:58:35,440 --> 00:58:37,690 that the providers have disseminated 1170 00:58:37,690 --> 00:58:40,000 to the network, allowing, of course, for fuzzy matches 1171 00:58:40,000 --> 00:58:43,030 because we may not always expect an exact match to happen, 1172 00:58:43,030 --> 00:58:44,740 with different providers of information 1173 00:58:44,740 --> 00:58:48,582 being different from the consumers of information. 1174 00:58:48,582 --> 00:58:51,040 The way we're going to do this is to first build it around, 1175 00:58:51,040 --> 00:58:53,110 of course, the system architecture, because clearly, 1176 00:58:53,110 --> 00:58:55,402 just defining the syntax and the semantics of the names 1177 00:58:55,402 --> 00:58:58,060 doesn't really achieve the goal that we want. 1178 00:58:58,060 --> 00:59:00,673 And the first thing that we need in any naming system 1179 00:59:00,673 --> 00:59:02,590 is, of course, a way of resolving these names, 1180 00:59:02,590 --> 00:59:05,680 to where in the network these services can be found. 1181 00:59:05,680 --> 00:59:10,173 And we do this by defining INRs, or intentional name resolvers. 1182 00:59:10,173 --> 00:59:12,340 The way these intentional names resolvers are set up 1183 00:59:12,340 --> 00:59:14,980 are that they're set up to form a distributed overlay 1184 00:59:14,980 --> 00:59:17,740 network on top of the IP, on top of the internet, 1185 00:59:17,740 --> 00:59:20,350 running over the internet protocol. 1186 00:59:20,350 --> 00:59:23,240 And these resolvers are set up so they can automatically 1187 00:59:23,240 --> 00:59:26,110 spawn up when applications desire 1188 00:59:26,110 --> 00:59:29,710 the ability to resolve names that they have to addresses. 1189 00:59:29,710 --> 00:59:32,410 They also form an overlay topology of their own 1190 00:59:32,410 --> 00:59:34,330 using proper protocols to discover neighbors 1191 00:59:34,330 --> 00:59:36,423 and also to perform load balancing. 1192 00:59:36,423 --> 00:59:38,590 And one of the important issues that always comes up 1193 00:59:38,590 --> 00:59:39,850 when one does networking research 1194 00:59:39,850 --> 00:59:41,500 is how you're going to deploy the scheme. 1195 00:59:41,500 --> 00:59:42,970 And we've carefully thought about this, 1196 00:59:42,970 --> 00:59:44,020 and the way we're going to deploy it 1197 00:59:44,020 --> 00:59:46,030 is by starting with today's domain name system 1198 00:59:46,030 --> 00:59:48,010 and evolving that in a direction that 1199 00:59:48,010 --> 00:59:49,510 allows us to make it more expressive 1200 00:59:49,510 --> 00:59:51,980 and make it more intentional. 1201 00:59:51,980 --> 00:59:54,190 Let's say I'm on my Handy 21 and I'd 1202 00:59:54,190 --> 00:59:59,020 like to find out from the security camera located 1203 00:59:59,020 --> 01:00:01,198 in my office what it's currently seeing. 1204 01:00:01,198 --> 01:00:02,740 In today's world, what I'd have to do 1205 01:00:02,740 --> 01:00:04,930 is originally to have set up my camera 1206 01:00:04,930 --> 01:00:06,910 to be something like camera 510, which 1207 01:00:06,910 --> 01:00:09,880 happens to be my room number in lcs.mit.edu. 1208 01:00:09,880 --> 01:00:12,520 And then go in and mess with the domain name system 1209 01:00:12,520 --> 01:00:14,740 architecture, have a system administrator do that, 1210 01:00:14,740 --> 01:00:17,873 and then plug in the name to IP address mapping. 1211 01:00:17,873 --> 01:00:19,790 Of course, let's imagine that this is actually 1212 01:00:19,790 --> 01:00:21,740 a mobile camera network that are maybe 1213 01:00:21,740 --> 01:00:25,010 robotic cameras or other mobile elements that are 1214 01:00:25,010 --> 01:00:27,140 moving these cameras around. 1215 01:00:27,140 --> 01:00:29,372 Then this approach doesn't work very well, 1216 01:00:29,372 --> 01:00:30,830 because the moment something moves, 1217 01:00:30,830 --> 01:00:32,240 its network location changes. 1218 01:00:32,240 --> 01:00:33,823 And the name [INAUDIBLE] we're mapping 1219 01:00:33,823 --> 01:00:36,800 may need to be reinvoked and remapped. 1220 01:00:36,800 --> 01:00:40,280 So rather than go with a static mapping of host names, 1221 01:00:40,280 --> 01:00:44,978 let's express what we want using an intentional name. 1222 01:00:44,978 --> 01:00:46,520 And the intentional name in this case 1223 01:00:46,520 --> 01:00:49,100 would say that I want to go to room 510 1224 01:00:49,100 --> 01:00:51,320 in NE43, which is the MIT LSC building, 1225 01:00:51,320 --> 01:00:52,975 to an entity that's a camera. 1226 01:00:52,975 --> 01:00:54,350 And I would send this packet out. 1227 01:00:54,350 --> 01:00:56,210 My application would send this packet out. 1228 01:00:56,210 --> 01:00:59,030 And this name would get looked up in the intentional name 1229 01:00:59,030 --> 01:01:00,692 resolvers that look up these names 1230 01:01:00,692 --> 01:01:02,150 and then decide what to do with it. 1231 01:01:02,150 --> 01:01:03,817 They might decide that they know exactly 1232 01:01:03,817 --> 01:01:06,680 where to find it, in which case they tell me where it is. 1233 01:01:06,680 --> 01:01:09,260 And they send the packet to the service that I'm looking for. 1234 01:01:09,260 --> 01:01:11,052 Or they decide they don't know where it is, 1235 01:01:11,052 --> 01:01:12,470 but they think they know who else 1236 01:01:12,470 --> 01:01:15,050 might know where it is and have these packets routed 1237 01:01:15,050 --> 01:01:17,785 via the name resolver network to the eventual location 1238 01:01:17,785 --> 01:01:18,410 of the service. 1239 01:01:18,410 --> 01:01:21,290 1240 01:01:21,290 --> 01:01:24,335 When the camera gets my request, it sends an image out and back 1241 01:01:24,335 --> 01:01:26,210 through the intentional name resolvers to me. 1242 01:01:26,210 --> 01:01:28,252 And the important thing here is that these images 1243 01:01:28,252 --> 01:01:30,950 get routed back, not with an IP address that's pre-configured, 1244 01:01:30,950 --> 01:01:33,980 but with a name that expresses who the consumer was, 1245 01:01:33,980 --> 01:01:36,680 which in this case, was me on my Handy 21. 1246 01:01:36,680 --> 01:01:39,440 What this buys us actually is automatic mobility, 1247 01:01:39,440 --> 01:01:41,660 because if I were to move from this location 1248 01:01:41,660 --> 01:01:46,090 to some other location, because the response isn't coming back 1249 01:01:46,090 --> 01:01:47,950 with the hot pre-configured IP address 1250 01:01:47,950 --> 01:01:50,048 but coming back with a name, if I move around 1251 01:01:50,048 --> 01:01:52,090 and I periodically send this piece of information 1252 01:01:52,090 --> 01:01:54,040 that I've moved around, the intentional name 1253 01:01:54,040 --> 01:01:55,720 resolvers and elsewhere in the network 1254 01:01:55,720 --> 01:01:57,400 will cache this information and know 1255 01:01:57,400 --> 01:02:00,710 how to route the packets to me at my new location. 1256 01:02:00,710 --> 01:02:02,920 The other piece that I get for free 1257 01:02:02,920 --> 01:02:04,930 is group communication, because a name can now 1258 01:02:04,930 --> 01:02:08,282 map on to multiple services or multiple people. 1259 01:02:08,282 --> 01:02:10,240 So for example, if there's a network of cameras 1260 01:02:10,240 --> 01:02:13,810 that I want to get to, I can use the name and use something 1261 01:02:13,810 --> 01:02:15,340 like a wild-card entry to match it 1262 01:02:15,340 --> 01:02:18,250 to all of the cameras that exist to have the packet returned 1263 01:02:18,250 --> 01:02:18,970 to them directly. 1264 01:02:18,970 --> 01:02:21,850 1265 01:02:21,850 --> 01:02:24,340 The key idea that enables this is the integration 1266 01:02:24,340 --> 01:02:26,797 of name resolution and message routing. 1267 01:02:26,797 --> 01:02:29,380 We've departed from the current view of name resolution, which 1268 01:02:29,380 --> 01:02:31,263 is something that the DNS does, which 1269 01:02:31,263 --> 01:02:32,680 is that you try to get a hostname, 1270 01:02:32,680 --> 01:02:35,170 you try to resolve a hostname, and it returns an IP address 1271 01:02:35,170 --> 01:02:35,470 to you. 1272 01:02:35,470 --> 01:02:37,000 And then you go ahead and separately 1273 01:02:37,000 --> 01:02:38,990 establish a connection to that IP address. 1274 01:02:38,990 --> 01:02:41,410 So when things move or the world changes around you, 1275 01:02:41,410 --> 01:02:44,050 end up with stale, outdated information. 1276 01:02:44,050 --> 01:02:46,120 In our architecture, we integrate the process 1277 01:02:46,120 --> 01:02:47,650 of name resolution, the looking up 1278 01:02:47,650 --> 01:02:49,602 and resolution of names to routing. 1279 01:02:49,602 --> 01:02:51,310 So the name resolver is actually actively 1280 01:02:51,310 --> 01:02:53,320 participate in routing, and this way, 1281 01:02:53,320 --> 01:02:55,360 enables the applications to actually control 1282 01:02:55,360 --> 01:02:56,710 what they get from the network. 1283 01:02:56,710 --> 01:02:59,938 1284 01:02:59,938 --> 01:03:00,730 This is the vision. 1285 01:03:00,730 --> 01:03:02,650 And I've described one piece of the puzzle 1286 01:03:02,650 --> 01:03:04,167 that we're actively working on. 1287 01:03:04,167 --> 01:03:06,250 But there are some significant research challenges 1288 01:03:06,250 --> 01:03:08,590 that we need to overcome before this vision becomes 1289 01:03:08,590 --> 01:03:12,070 a complete reality and we have truly self-organizing network 1290 01:03:12,070 --> 01:03:13,080 systems. 1291 01:03:13,080 --> 01:03:14,830 The first, of course, is to make the scale 1292 01:03:14,830 --> 01:03:17,500 to large networks and large numbers of applications. 1293 01:03:17,500 --> 01:03:20,110 We're working on a scalable wide area naming architecture 1294 01:03:20,110 --> 01:03:22,240 based on intentional names and actively thinking 1295 01:03:22,240 --> 01:03:24,010 of how to deploy this on the internet, 1296 01:03:24,010 --> 01:03:26,440 and how to deploy this first within the context of N21, 1297 01:03:26,440 --> 01:03:29,173 and then transition it to the internet. 1298 01:03:29,173 --> 01:03:30,840 The second thing that we need to look at 1299 01:03:30,840 --> 01:03:33,150 is an end-to-end adaptation framework, 1300 01:03:33,150 --> 01:03:36,510 one that exposes network information from underlying 1301 01:03:36,510 --> 01:03:38,520 layers of the protocol stack to applications, 1302 01:03:38,520 --> 01:03:41,020 so that they can learn about what's going on in the network. 1303 01:03:41,020 --> 01:03:43,530 And the second is coming up with new algorithms 1304 01:03:43,530 --> 01:03:45,870 and new protocols to react to this changing knowledge, 1305 01:03:45,870 --> 01:03:49,357 to do clever things that use bandwidth well. 1306 01:03:49,357 --> 01:03:51,690 You're also going to hear from Professor [INAUDIBLE] who 1307 01:03:51,690 --> 01:03:53,232 is going to talk about an idea called 1308 01:03:53,232 --> 01:03:56,320 radioactive networks that allow applications to have networks 1309 01:03:56,320 --> 01:03:57,430 adapt to what they desire. 1310 01:03:57,430 --> 01:03:59,030 So you can use this, for example, 1311 01:03:59,030 --> 01:04:01,030 to change the available bandwidth on the network 1312 01:04:01,030 --> 01:04:03,922 by changing the underlying wireless modulation. 1313 01:04:03,922 --> 01:04:05,380 In this context, we're also working 1314 01:04:05,380 --> 01:04:07,960 on a new congestion management architecture 1315 01:04:07,960 --> 01:04:10,135 for internet applications. 1316 01:04:10,135 --> 01:04:12,010 And the third piece that we need to deal with 1317 01:04:12,010 --> 01:04:14,723 is some very hard security and privacy issues. 1318 01:04:14,723 --> 01:04:16,390 We've enabled a lot of new functionality 1319 01:04:16,390 --> 01:04:19,030 and a lot of new, cool things, where 1320 01:04:19,030 --> 01:04:21,520 we can have services express what they want. 1321 01:04:21,520 --> 01:04:24,420 We have consumers express what they want and get to it. 1322 01:04:24,420 --> 01:04:26,170 But this leads to some significant privacy 1323 01:04:26,170 --> 01:04:28,795 and security issues, and you'll hear from Professor Rivest talk 1324 01:04:28,795 --> 01:04:31,300 about some of this. 1325 01:04:31,300 --> 01:04:34,750 So to conclude, my vision of the future is very simple. 1326 01:04:34,750 --> 01:04:36,820 It's networks that learn. 1327 01:04:36,820 --> 01:04:38,980 What we would like, and what I think we will see, 1328 01:04:38,980 --> 01:04:40,960 is better application and user control 1329 01:04:40,960 --> 01:04:42,220 over what networks provide. 1330 01:04:42,220 --> 01:04:44,032 And things like our intention naming system 1331 01:04:44,032 --> 01:04:45,240 are a step in that direction. 1332 01:04:45,240 --> 01:04:46,810 And a large number of other pieces 1333 01:04:46,810 --> 01:04:49,300 of this puzzle that will be fit and will make this 1334 01:04:49,300 --> 01:04:51,020 happen in the future. 1335 01:04:51,020 --> 01:04:53,110 The second is a significantly higher degree 1336 01:04:53,110 --> 01:04:56,290 of dynamism, mobility, and spontaneity, as well as 1337 01:04:56,290 --> 01:05:00,420 decentralization and robustness in our network infrastructure. 1338 01:05:00,420 --> 01:05:02,880 No longer will it be the case that a distributed system is 1339 01:05:02,880 --> 01:05:05,807 defined as, "if a machine that you've never heard of fails, 1340 01:05:05,807 --> 01:05:07,140 you'll never get any work done." 1341 01:05:07,140 --> 01:05:09,557 And this is something Leslie Lamport said a long time ago. 1342 01:05:09,557 --> 01:05:12,060 What we would like is to eliminate that altogether 1343 01:05:12,060 --> 01:05:15,300 and build really robust distributed network systems. 1344 01:05:15,300 --> 01:05:17,040 And the third point is that I think 1345 01:05:17,040 --> 01:05:19,508 we're going to see a significant degree of integration 1346 01:05:19,508 --> 01:05:22,050 with the real world, with the real, physical world of devices 1347 01:05:22,050 --> 01:05:24,930 and sensors and actuators that are already 1348 01:05:24,930 --> 01:05:26,520 embedded in our real world. 1349 01:05:26,520 --> 01:05:28,440 And we'll see them more tightly integrated 1350 01:05:28,440 --> 01:05:31,080 with our networked world so that we can actually 1351 01:05:31,080 --> 01:05:32,820 get useful work done. 1352 01:05:32,820 --> 01:05:35,370 And my belief is that the self-organization middleware 1353 01:05:35,370 --> 01:05:38,760 and adaptation protocols, such as the one I just described, 1354 01:05:38,760 --> 01:05:40,870 are key to making this a reality. 1355 01:05:40,870 --> 01:05:41,370 Thank you. 1356 01:05:41,370 --> 01:05:52,890 1357 01:05:52,890 --> 01:05:55,740 Last week, the New York Times called Dave Clark 1358 01:05:55,740 --> 01:05:59,880 "the father of the internet." 1359 01:05:59,880 --> 01:06:02,710 It's not exactly true. 1360 01:06:02,710 --> 01:06:07,800 I mean there was Licklider and Taylor and Roberts and Kahn 1361 01:06:07,800 --> 01:06:10,110 and Serf and, of course, Al Gore. 1362 01:06:10,110 --> 01:06:13,960 Now, don't ruin my jokes like that. 1363 01:06:13,960 --> 01:06:17,770 Dave himself denies paternity. 1364 01:06:17,770 --> 01:06:22,690 He admits to being the first cousin of the internet. 1365 01:06:22,690 --> 01:06:25,480 During the early '80s, Dave had a lot 1366 01:06:25,480 --> 01:06:30,100 to do with putting personal computers onto the internet. 1367 01:06:30,100 --> 01:06:31,780 And so I'm anxious to hear what he's 1368 01:06:31,780 --> 01:06:35,330 going to say about the post-PC internet. 1369 01:06:35,330 --> 01:06:35,830 Dave. 1370 01:06:35,830 --> 01:06:42,540 1371 01:06:42,540 --> 01:06:44,520 You're stealing my jokes, too. 1372 01:06:44,520 --> 01:06:47,160 1373 01:06:47,160 --> 01:06:51,038 So let me explain this "post-PC" phrase. 1374 01:06:51,038 --> 01:06:53,580 I think several of us started using it for different reasons. 1375 01:06:53,580 --> 01:06:55,495 I picked it up because I wanted to tweak 1376 01:06:55,495 --> 01:06:57,870 my friends at Intel, but of course now they're saying it, 1377 01:06:57,870 --> 01:06:58,370 too. 1378 01:06:58,370 --> 01:07:01,380 So the fun is going out of it. 1379 01:07:01,380 --> 01:07:02,970 There's a spectrum we're on. 1380 01:07:02,970 --> 01:07:05,400 I'm old enough to remember timesharing. 1381 01:07:05,400 --> 01:07:07,650 And so I want to go back to the good old days 1382 01:07:07,650 --> 01:07:09,990 when the CPU was this monstrously expensive thing 1383 01:07:09,990 --> 01:07:12,120 and we all gathered in a circle and bowed down. 1384 01:07:12,120 --> 01:07:16,200 So you have all these displays clustered around the computer. 1385 01:07:16,200 --> 01:07:19,162 It filled the entire ninth floor of the building. 1386 01:07:19,162 --> 01:07:19,870 It was wonderful. 1387 01:07:19,870 --> 01:07:20,787 It was called Multics. 1388 01:07:20,787 --> 01:07:23,250 1389 01:07:23,250 --> 01:07:27,390 I'm old enough to remember CTSS. 1390 01:07:27,390 --> 01:07:30,460 So what happened is the CPU got cheaper as we kept doing this. 1391 01:07:30,460 --> 01:07:38,100 And as the CPU got cheaper, we reached this magic point 1392 01:07:38,100 --> 01:07:42,047 where there was a 1 to 1 ratio between the CPU and the PC. 1393 01:07:42,047 --> 01:07:43,380 1 to 1 is a very powerful ratio. 1394 01:07:43,380 --> 01:07:45,870 It lets you forget about all sorts of things, like, 1395 01:07:45,870 --> 01:07:47,820 we forgot about the Windows system. 1396 01:07:47,820 --> 01:07:50,190 We forgot how to split an application into two halves. 1397 01:07:50,190 --> 01:07:52,080 We're going to have to relearn all this. 1398 01:07:52,080 --> 01:07:54,300 And because that's a very powerful ratio, 1399 01:07:54,300 --> 01:07:56,740 we've sat at that point for a long time. 1400 01:07:56,740 --> 01:07:58,720 But that hasn't stopped this trend, 1401 01:07:58,720 --> 01:08:00,622 the one that Anant was referring to, 1402 01:08:00,622 --> 01:08:01,830 other people have alluded to. 1403 01:08:01,830 --> 01:08:04,500 The CPUs are still getting cheaper, faster 1404 01:08:04,500 --> 01:08:06,180 than the displays are getting cheaper. 1405 01:08:06,180 --> 01:08:08,770 So that ratio is eventually going to unstick. 1406 01:08:08,770 --> 01:08:10,770 And when it does, it's going to do it violently. 1407 01:08:10,770 --> 01:08:12,805 We can see this happening now. 1408 01:08:12,805 --> 01:08:15,180 When it does, of course, what you're going to end up with 1409 01:08:15,180 --> 01:08:17,430 is this alternative vision here, in which 1410 01:08:17,430 --> 01:08:21,990 there's one display surrounded by a bunch of CPUs. 1411 01:08:21,990 --> 01:08:25,260 You don't want to think of that as PC1, PC2, PC3. 1412 01:08:25,260 --> 01:08:26,520 That's stupid. 1413 01:08:26,520 --> 01:08:28,109 Those are all of the computers that 1414 01:08:28,109 --> 01:08:29,640 are embedded in all of the objects 1415 01:08:29,640 --> 01:08:32,920 that we encounter as we walk through the world. 1416 01:08:32,920 --> 01:08:35,640 So what are the essential characteristics here? 1417 01:08:35,640 --> 01:08:37,020 Processors are getting cheaper. 1418 01:08:37,020 --> 01:08:38,312 That's sort of straightforward. 1419 01:08:38,312 --> 01:08:40,500 I hope Anant talked to you into that. 1420 01:08:40,500 --> 01:08:43,290 The second is user interfaces go with people, 1421 01:08:43,290 --> 01:08:45,210 they don't go with processors. 1422 01:08:45,210 --> 01:08:47,340 I have a display on my desk. 1423 01:08:47,340 --> 01:08:50,609 I don't want to have one display for computer. 1424 01:08:50,609 --> 01:08:52,620 I want to have one display. 1425 01:08:52,620 --> 01:08:55,202 I'd like the small one with me when I walk around. 1426 01:08:55,202 --> 01:08:56,910 Do I have to throw this across the floor? 1427 01:08:56,910 --> 01:08:59,130 I'm not sure. 1428 01:08:59,130 --> 01:09:01,229 I'd like a small one with me when I walk around. 1429 01:09:01,229 --> 01:09:03,779 I'd like a big one in my office, maybe a huge one someplace 1430 01:09:03,779 --> 01:09:04,279 else. 1431 01:09:04,279 --> 01:09:06,990 I'd like one in my car that whispers in my ear. 1432 01:09:06,990 --> 01:09:08,430 So that's the second point. 1433 01:09:08,430 --> 01:09:10,350 And the third point. 1434 01:09:10,350 --> 01:09:13,000 Notice my picture had this downward trend. 1435 01:09:13,000 --> 01:09:15,870 Let's see, there's one button that they said don't use. 1436 01:09:15,870 --> 01:09:17,160 I got away with it. 1437 01:09:17,160 --> 01:09:19,319 It crashes the computer or something like that. 1438 01:09:19,319 --> 01:09:22,080 There's a trend that is going back toward the top as well, 1439 01:09:22,080 --> 01:09:23,247 although they've renamed it. 1440 01:09:23,247 --> 01:09:26,010 They don't call it timesharing, they call services in the net. 1441 01:09:26,010 --> 01:09:27,660 The idea that if you put something in the net, 1442 01:09:27,660 --> 01:09:29,130 it actually may be easier to manage. 1443 01:09:29,130 --> 01:09:31,047 You pay somebody else and he takes care of it. 1444 01:09:31,047 --> 01:09:33,270 You don't have to install it yourself for nine hours 1445 01:09:33,270 --> 01:09:35,920 so that you have an excuse to fly to Asia. 1446 01:09:35,920 --> 01:09:40,470 And so there's a force in this picture that is pushing us back 1447 01:09:40,470 --> 01:09:41,220 toward the top. 1448 01:09:41,220 --> 01:09:42,720 There's a force in this picture that 1449 01:09:42,720 --> 01:09:44,130 is pushing us to the bottom. 1450 01:09:44,130 --> 01:09:47,670 And the PC is simply a way station along that path. 1451 01:09:47,670 --> 01:09:51,779 Now, there are students I have met-- it's really depressing-- 1452 01:09:51,779 --> 01:09:54,360 who are so young that they've never 1453 01:09:54,360 --> 01:09:56,550 seen anything except a PC. 1454 01:09:56,550 --> 01:09:59,100 And they think that's the way it's always been. 1455 01:09:59,100 --> 01:10:02,220 So of course, that's the way it will always be. 1456 01:10:02,220 --> 01:10:05,250 So there is a role for old fogies. 1457 01:10:05,250 --> 01:10:07,320 If you've outlived the present into the past, 1458 01:10:07,320 --> 01:10:09,750 maybe you can remind them that-- 1459 01:10:09,750 --> 01:10:12,360 But we did TCP for the PC in 1982. 1460 01:10:12,360 --> 01:10:14,010 That's a long time ago. 1461 01:10:14,010 --> 01:10:16,950 And this gives you a false sense of stability. 1462 01:10:16,950 --> 01:10:20,220 And this traps you when you think about what applications 1463 01:10:20,220 --> 01:10:21,900 are going to look like. 1464 01:10:21,900 --> 01:10:23,370 I'm sort of an internet guy, so I 1465 01:10:23,370 --> 01:10:25,022 like to think of applications that 1466 01:10:25,022 --> 01:10:26,730 have the word internet in their name, so, 1467 01:10:26,730 --> 01:10:30,270 internet telephony, internet telephone, internet radio, 1468 01:10:30,270 --> 01:10:33,060 internet music, internet television. 1469 01:10:33,060 --> 01:10:35,340 And I had somebody say to me, I don't 1470 01:10:35,340 --> 01:10:38,700 want to go to my PC to make a phone call. 1471 01:10:38,700 --> 01:10:41,640 Wrong thought. 1472 01:10:41,640 --> 01:10:43,890 I have a telephone in almost all rooms in my house. 1473 01:10:43,890 --> 01:10:46,740 I don't know, we are sort of weird. 1474 01:10:46,740 --> 01:10:48,600 10 years from now, what will you have 1475 01:10:48,600 --> 01:10:51,000 in every room in your house? 1476 01:10:51,000 --> 01:10:52,170 It won't be a telephone. 1477 01:10:52,170 --> 01:10:53,580 It will be a something. 1478 01:10:53,580 --> 01:10:56,040 It'll be on the internet, we know that. 1479 01:10:56,040 --> 01:10:58,440 It'll probably have speech input, speech output. 1480 01:10:58,440 --> 01:11:01,440 It'll have a display. 1481 01:11:01,440 --> 01:11:02,970 It probably won't have a keyboard, 1482 01:11:02,970 --> 01:11:06,260 if you believe Victor Zue. 1483 01:11:06,260 --> 01:11:07,790 They'll be ubiquitous. 1484 01:11:07,790 --> 01:11:12,560 And that'll be where you do your telephony, you listen to music. 1485 01:11:12,560 --> 01:11:15,050 Now, you might disagree as to what that object is, 1486 01:11:15,050 --> 01:11:16,550 but envision it. 1487 01:11:16,550 --> 01:11:19,340 And say, that's the context in which new applications are 1488 01:11:19,340 --> 01:11:21,560 going to emerge, because that's the user interface 1489 01:11:21,560 --> 01:11:24,800 space in which they're going to happen. 1490 01:11:24,800 --> 01:11:26,840 Now, there are a couple of obvious things 1491 01:11:26,840 --> 01:11:29,810 that follow from what I just said. 1492 01:11:29,810 --> 01:11:32,132 I don't want to dwell on this. 1493 01:11:32,132 --> 01:11:34,340 The consumer today thinks they can go to a drugstore, 1494 01:11:34,340 --> 01:11:36,770 buy an RG11 and some wire, screw it all together, 1495 01:11:36,770 --> 01:11:38,590 and actually put a new phone extension in. 1496 01:11:38,590 --> 01:11:40,340 They don't have to run HP OpenView for you 1497 01:11:40,340 --> 01:11:42,180 in order to do that. 1498 01:11:42,180 --> 01:11:44,600 So whatever tomorrow's data networks are, 1499 01:11:44,600 --> 01:11:46,910 they have to be consumer grade. 1500 01:11:46,910 --> 01:11:50,150 You can't break it, and if you do, it fixes itself. 1501 01:11:50,150 --> 01:11:53,060 You can buy it at the drugstore. 1502 01:11:53,060 --> 01:11:55,287 It has to be cheap. 1503 01:11:55,287 --> 01:11:57,120 There's an old saying that somebody made up, 1504 01:11:57,120 --> 01:11:58,980 which is that the cost of networking something 1505 01:11:58,980 --> 01:12:01,240 could be no more than 10% of the cost of the something. 1506 01:12:01,240 --> 01:12:03,073 So if you have a dollar object in your hand, 1507 01:12:03,073 --> 01:12:07,070 putting it on the net shouldn't cost more than $0.10. 1508 01:12:07,070 --> 01:12:10,290 And that implies that networks have to be heterogeneous. 1509 01:12:10,290 --> 01:12:12,920 Now, those of us who've lived in internet for a long time, 1510 01:12:12,920 --> 01:12:14,930 have remembered that we didn't always 1511 01:12:14,930 --> 01:12:16,550 have one networking answer. 1512 01:12:16,550 --> 01:12:18,950 As Bob will remind you, if I were to drop my hat, 1513 01:12:18,950 --> 01:12:22,880 I'd try to invent something called Token Ring. 1514 01:12:22,880 --> 01:12:23,760 Oh well. 1515 01:12:23,760 --> 01:12:27,560 But during the time that we were debating this, 1516 01:12:27,560 --> 01:12:29,570 we could still talk to each other because 1517 01:12:29,570 --> 01:12:31,400 of a set of protocols that ran on top 1518 01:12:31,400 --> 01:12:34,100 of that mess called "internet." 1519 01:12:34,100 --> 01:12:36,230 Why is the future also heterogeneous? 1520 01:12:36,230 --> 01:12:39,350 Well, you're going to have somewhat expensive, like $1, 1521 01:12:39,350 --> 01:12:42,330 high-speed networks that are good for entertainment, video, 1522 01:12:42,330 --> 01:12:44,210 high-speed audio, and all that kind of stuff. 1523 01:12:44,210 --> 01:12:46,370 And you're going to have really cheap nets, like 1/10 1524 01:12:46,370 --> 01:12:48,740 of a cent, which are going to hook together little light 1525 01:12:48,740 --> 01:12:50,217 switches and things like this. 1526 01:12:50,217 --> 01:12:52,550 And the answer is that all of this has to work together. 1527 01:12:52,550 --> 01:12:55,430 Somebody said to me, consumer appliances 1528 01:12:55,430 --> 01:12:56,930 aren't taking off because we haven't 1529 01:12:56,930 --> 01:12:59,360 figured out what the standard is for networks in the home. 1530 01:12:59,360 --> 01:12:59,900 Wrong. 1531 01:12:59,900 --> 01:13:00,680 Think. 1532 01:13:00,680 --> 01:13:02,850 Multiple kinds, glue them together. 1533 01:13:02,850 --> 01:13:04,340 They have to be glued together. 1534 01:13:04,340 --> 01:13:07,640 Great new market for Cisco. 1535 01:13:07,640 --> 01:13:10,700 But except heterogeneity, I want to look 1536 01:13:10,700 --> 01:13:14,150 at some slightly more, I think, interesting observations 1537 01:13:14,150 --> 01:13:15,200 about system structure. 1538 01:13:15,200 --> 01:13:18,140 And this relates a little bit to what Anant was saying, 1539 01:13:18,140 --> 01:13:20,400 and Bill Gates a little while ago. 1540 01:13:20,400 --> 01:13:22,070 If you think about some of the devices-- 1541 01:13:22,070 --> 01:13:23,810 I was going to wave my cell phone, 1542 01:13:23,810 --> 01:13:25,820 but I can't because I inadvertently destroyed it 1543 01:13:25,820 --> 01:13:26,510 yesterday. 1544 01:13:26,510 --> 01:13:27,878 I did throw it away. 1545 01:13:27,878 --> 01:13:28,670 It was an accident. 1546 01:13:28,670 --> 01:13:30,650 I have to buy another one. 1547 01:13:30,650 --> 01:13:33,290 A lot of the devices we use today 1548 01:13:33,290 --> 01:13:36,230 are in the word processor stage that Gates was illustrating, 1549 01:13:36,230 --> 01:13:38,720 in which you have a device with a custom application built 1550 01:13:38,720 --> 01:13:39,220 into it. 1551 01:13:39,220 --> 01:13:41,300 My cell phone is really only one application. 1552 01:13:41,300 --> 01:13:44,510 It does cell phone for a living. 1553 01:13:44,510 --> 01:13:46,160 Then we've got this device that's 1554 01:13:46,160 --> 01:13:50,990 sort of the PC, the amazing shrinking PC. 1555 01:13:50,990 --> 01:13:54,445 It turned from a desktop to a laptop to a Palmtop. 1556 01:13:54,445 --> 01:13:55,820 I was reading a magazine that was 1557 01:13:55,820 --> 01:13:58,830 talking about the micro, ultra lightweight. 1558 01:13:58,830 --> 01:14:00,330 They're getting thinner and thinner. 1559 01:14:00,330 --> 01:14:01,580 But they're still PCs. 1560 01:14:01,580 --> 01:14:04,160 They have complete programmability in the way 1561 01:14:04,160 --> 01:14:08,180 that the shrinkwrap presumption of today assumes. 1562 01:14:08,180 --> 01:14:10,190 So the first stage in the process 1563 01:14:10,190 --> 01:14:12,920 of getting these devices into the future 1564 01:14:12,920 --> 01:14:14,582 is to make them smaller. 1565 01:14:14,582 --> 01:14:16,040 But the second stage, which I think 1566 01:14:16,040 --> 01:14:18,080 is actually more interesting, is when 1567 01:14:18,080 --> 01:14:21,060 they start to be dependent on services in the network 1568 01:14:21,060 --> 01:14:24,800 so that they're not quite so self-sufficient. 1569 01:14:24,800 --> 01:14:29,060 The exciting applications that run on your palm object 1570 01:14:29,060 --> 01:14:33,110 are the ones that have matching services back in the net. 1571 01:14:33,110 --> 01:14:35,480 My assistant can make an appointment in my calendar, 1572 01:14:35,480 --> 01:14:38,720 and if this thing were only on the net, sigh, 1573 01:14:38,720 --> 01:14:41,390 it would be able to tell me about it. 1574 01:14:41,390 --> 01:14:44,715 It's particularly interesting when, as I did yesterday, 1575 01:14:44,715 --> 01:14:46,340 I destroy the contents of this and have 1576 01:14:46,340 --> 01:14:48,260 to reload it from somewhere. 1577 01:14:48,260 --> 01:14:50,068 So what does this say about software? 1578 01:14:50,068 --> 01:14:51,860 Well, it says we have to do something we've 1579 01:14:51,860 --> 01:14:53,390 talked about for a long time. 1580 01:14:53,390 --> 01:14:56,210 We have to write client server software. 1581 01:14:56,210 --> 01:14:57,890 Now, today the server is on the PC, 1582 01:14:57,890 --> 01:15:01,400 but it's just going to diffuse into the net as a set of things 1583 01:15:01,400 --> 01:15:03,530 that you can either capitalize and purchase 1584 01:15:03,530 --> 01:15:05,780 or you can, in fact, rent. 1585 01:15:05,780 --> 01:15:08,998 There will be companies selling you services on the net. 1586 01:15:08,998 --> 01:15:11,540 But then the next thing that's going to happen to this device 1587 01:15:11,540 --> 01:15:16,440 that you carry with you is it's going to blow up into parts. 1588 01:15:16,440 --> 01:15:18,330 Here's a cool device. 1589 01:15:18,330 --> 01:15:22,050 Can you see it in the back of the room? 1590 01:15:22,050 --> 01:15:25,765 This is a little earphone with a little microphone. 1591 01:15:25,765 --> 01:15:27,890 Other people are pulling out their little earphones 1592 01:15:27,890 --> 01:15:28,515 and showing me. 1593 01:15:28,515 --> 01:15:30,890 You put it in your ear like this, and you talk. 1594 01:15:30,890 --> 01:15:32,600 Now, what era does this live in? 1595 01:15:32,600 --> 01:15:36,897 Well, actually this lives in the one-device, one-application 1596 01:15:36,897 --> 01:15:38,480 era, because the plug on the other end 1597 01:15:38,480 --> 01:15:41,147 goes into my cell phone, and the only thing you can use this for 1598 01:15:41,147 --> 01:15:43,155 is to make a cell phone call. 1599 01:15:43,155 --> 01:15:45,530 But as Victor is about to explain to you as soon as I get 1600 01:15:45,530 --> 01:15:48,860 off the stage, we want to talk to every one 1601 01:15:48,860 --> 01:15:50,820 of our applications. 1602 01:15:50,820 --> 01:15:53,480 So we're going to move from a model of one device, one 1603 01:15:53,480 --> 01:15:57,030 application, to one device, one function. 1604 01:15:57,030 --> 01:15:58,710 This is the listening function. 1605 01:15:58,710 --> 01:16:00,630 This is the talking function. 1606 01:16:00,630 --> 01:16:03,900 This is the two-line display with four buttons function. 1607 01:16:03,900 --> 01:16:07,860 This is the slightly larger display with a pen function. 1608 01:16:07,860 --> 01:16:11,180 And now when you want a new application, for example, 1609 01:16:11,180 --> 01:16:13,875 you'd like to be able to do the cell phone thing, what you're 1610 01:16:13,875 --> 01:16:15,500 going to do is you're going to download 1611 01:16:15,500 --> 01:16:17,917 a piece of software that looks around your world and says, 1612 01:16:17,917 --> 01:16:20,720 oh, he's asked me to build him a cell phone. 1613 01:16:20,720 --> 01:16:21,930 Can I do that? 1614 01:16:21,930 --> 01:16:23,270 Well, I found an earpiece. 1615 01:16:23,270 --> 01:16:24,740 I found a microphone. 1616 01:16:24,740 --> 01:16:27,380 I found someplace that the caller ID could show up. 1617 01:16:27,380 --> 01:16:29,330 I found his little black book out on the net. 1618 01:16:29,330 --> 01:16:31,070 I found this service over here. 1619 01:16:31,070 --> 01:16:35,870 If I stir and mix, that'll be a cell phone. 1620 01:16:35,870 --> 01:16:38,443 Where did my slide go? 1621 01:16:38,443 --> 01:16:40,610 Oh, I see, they're trying to show you my microphone. 1622 01:16:40,610 --> 01:16:43,220 Cool, great. 1623 01:16:43,220 --> 01:16:46,250 So applications, as somebody previously just said, 1624 01:16:46,250 --> 01:16:47,875 are not shrinkwrap. 1625 01:16:47,875 --> 01:16:49,250 What they have to do is they have 1626 01:16:49,250 --> 01:16:51,260 to come down into your world and they 1627 01:16:51,260 --> 01:16:52,790 have to organize your world. 1628 01:16:52,790 --> 01:16:56,210 And notice it gets organized differently for each person, 1629 01:16:56,210 --> 01:16:59,510 because I might like the caller ID 1630 01:16:59,510 --> 01:17:01,340 information on my wristwatch. 1631 01:17:01,340 --> 01:17:04,940 And you might like the caller ID information gently whispered 1632 01:17:04,940 --> 01:17:05,840 in your ear. 1633 01:17:05,840 --> 01:17:07,970 And somebody else might say, that's really stupid. 1634 01:17:07,970 --> 01:17:09,887 I just want this thing in my pocket to vibrate 1635 01:17:09,887 --> 01:17:11,900 and I'll answer it anyway. 1636 01:17:11,900 --> 01:17:14,240 So there isn't a uniformity of user interface. 1637 01:17:14,240 --> 01:17:17,300 There isn't a uniformity of application function. 1638 01:17:17,300 --> 01:17:19,640 It's the opposite of shrinkwrap. 1639 01:17:19,640 --> 01:17:21,968 It's going to be self-organizing. 1640 01:17:21,968 --> 01:17:23,510 And it's going to be self-organizing, 1641 01:17:23,510 --> 01:17:26,992 both among the devices you carry and the services that 1642 01:17:26,992 --> 01:17:27,950 are out on the network. 1643 01:17:27,950 --> 01:17:32,437 1644 01:17:32,437 --> 01:17:34,270 Let me make one more point about this world. 1645 01:17:34,270 --> 01:17:39,170 1646 01:17:39,170 --> 01:17:40,793 Well, here's a little, cute device. 1647 01:17:40,793 --> 01:17:42,460 I have no idea what it is, but I bet you 1648 01:17:42,460 --> 01:17:43,750 it has a computer in it. 1649 01:17:43,750 --> 01:17:45,090 It says RadioShack. 1650 01:17:45,090 --> 01:17:48,140 1651 01:17:48,140 --> 01:17:51,340 Everything's going to have a computer in it. 1652 01:17:51,340 --> 01:17:53,990 Everything's going to be networked. 1653 01:17:53,990 --> 01:17:55,000 Why? 1654 01:17:55,000 --> 01:17:56,860 Do I have some grand vision? 1655 01:17:56,860 --> 01:17:58,570 No, I don't have a grand vision. 1656 01:17:58,570 --> 01:18:01,000 It makes the cost lower. 1657 01:18:01,000 --> 01:18:04,405 Lowering the cost equals inevitable. 1658 01:18:04,405 --> 01:18:06,280 Somebody was explaining to me today that when 1659 01:18:06,280 --> 01:18:08,283 you manufacture an appliance-- 1660 01:18:08,283 --> 01:18:09,700 I don't mean a computer appliance, 1661 01:18:09,700 --> 01:18:11,620 I mean something like a microwave-- 1662 01:18:11,620 --> 01:18:16,300 it's cheaper to put a network interface 1663 01:18:16,300 --> 01:18:17,770 on the back of the box than it is 1664 01:18:17,770 --> 01:18:19,360 to put a user interface on the front of the box, 1665 01:18:19,360 --> 01:18:20,830 because the user interface in the front of the box 1666 01:18:20,830 --> 01:18:22,480 has buttons and displays and things. 1667 01:18:22,480 --> 01:18:26,100 And those cost money and they break. 1668 01:18:26,100 --> 01:18:27,530 So all of these computers that are 1669 01:18:27,530 --> 01:18:29,072 embedded in all the objects around us 1670 01:18:29,072 --> 01:18:31,520 are going to get networked. 1671 01:18:31,520 --> 01:18:33,140 And here's the point. 1672 01:18:33,140 --> 01:18:36,980 Each one of those devices represents a little piece 1673 01:18:36,980 --> 01:18:40,970 of cartilage that's linking the real world to the cyber world. 1674 01:18:40,970 --> 01:18:43,470 When you have an object that's got a computer inside it, 1675 01:18:43,470 --> 01:18:45,090 you can deal with it in two ways. 1676 01:18:45,090 --> 01:18:47,630 You can walk up to it in physical space like this, 1677 01:18:47,630 --> 01:18:50,330 and you can pat on the keyboard and see if something happens, 1678 01:18:50,330 --> 01:18:53,090 or you can talk to it in cyberspace. 1679 01:18:53,090 --> 01:18:55,205 So what's the Coke machine of the future? 1680 01:18:55,205 --> 01:18:57,020 The Coke machine of the future doesn't 1681 01:18:57,020 --> 01:18:59,730 have to have a place where you put money in. 1682 01:18:59,730 --> 01:19:01,730 Boy, does that add cost, because not only do you 1683 01:19:01,730 --> 01:19:03,230 have to have that machinery that can tell 1684 01:19:03,230 --> 01:19:04,610 real quarters from fake ones, but then you 1685 01:19:04,610 --> 01:19:05,900 have to send a human out to enter it 1686 01:19:05,900 --> 01:19:07,400 and they have to send a second human 1687 01:19:07,400 --> 01:19:08,920 to make sure it's not cheating. 1688 01:19:08,920 --> 01:19:09,710 No, no, no. 1689 01:19:09,710 --> 01:19:12,320 A Coke machine in the future is a machine 1690 01:19:12,320 --> 01:19:17,960 for dispensing a Coke that just has a little placard on front. 1691 01:19:17,960 --> 01:19:20,420 And the placard has some sort of machine-readable name 1692 01:19:20,420 --> 01:19:21,630 across the bottom. 1693 01:19:21,630 --> 01:19:25,800 And then above it, it says, scan and click one Coke. 1694 01:19:25,800 --> 01:19:26,550 So what do you do? 1695 01:19:26,550 --> 01:19:28,670 You take out of your pocket some little object 1696 01:19:28,670 --> 01:19:31,070 that can scan that name. 1697 01:19:31,070 --> 01:19:32,810 It's on the little placard. 1698 01:19:32,810 --> 01:19:34,610 This is like a mouse in real space. 1699 01:19:34,610 --> 01:19:35,660 You can point and click. 1700 01:19:35,660 --> 01:19:37,298 You can drag and drop. 1701 01:19:37,298 --> 01:19:38,840 And then you push the "do it" button. 1702 01:19:38,840 --> 01:19:41,310 I don't know what the Microsoft people call it. 1703 01:19:41,310 --> 01:19:44,090 But Windows have two buttons, "do it" and "about." 1704 01:19:44,090 --> 01:19:46,820 And so you scan the name, you push the "do it" 1705 01:19:46,820 --> 01:19:50,330 button, and the message goes out around through the internet 1706 01:19:50,330 --> 01:19:53,330 and it goes to the place where I pay the Coca-Cola franchisee 1707 01:19:53,330 --> 01:19:54,050 $1. 1708 01:19:54,050 --> 01:19:56,990 And then a Coca-Cola franchisee sends a message around the net 1709 01:19:56,990 --> 01:20:00,050 to the Coke machine, and it dumps a Coke out. 1710 01:20:00,050 --> 01:20:01,520 Why is this inevitable? 1711 01:20:01,520 --> 01:20:05,420 Because it's a much cheaper Coke machine. 1712 01:20:05,420 --> 01:20:08,892 So what namespace links real and cyberspace? 1713 01:20:08,892 --> 01:20:10,100 It's got to be very flexible. 1714 01:20:10,100 --> 01:20:11,660 It's got to be machine scannable. 1715 01:20:11,660 --> 01:20:13,423 You don't want to sit and type in a URL 1716 01:20:13,423 --> 01:20:15,590 in order to get a Coke out of a Coke machine, right? 1717 01:20:15,590 --> 01:20:17,690 So this has got to be automatic. 1718 01:20:17,690 --> 01:20:21,830 All of these names have to be scannable. 1719 01:20:21,830 --> 01:20:23,190 So what's the future look like? 1720 01:20:23,190 --> 01:20:31,330 Well, it's a network full of services, 1721 01:20:31,330 --> 01:20:35,530 all kinds of services, calendar, maintenance services, email 1722 01:20:35,530 --> 01:20:38,710 services, voicemail services. 1723 01:20:38,710 --> 01:20:41,560 It's a world in which there are devices which 1724 01:20:41,560 --> 01:20:43,250 you use as user interfaces. 1725 01:20:43,250 --> 01:20:45,580 There are devices you carry with you. 1726 01:20:45,580 --> 01:20:49,120 The Handy 21 is an example of a device you carry. 1727 01:20:49,120 --> 01:20:51,820 By the way, this is not a Handy 21. 1728 01:20:51,820 --> 01:20:53,350 This is not even the eventual device 1729 01:20:53,350 --> 01:20:54,760 that my group is building. 1730 01:20:54,760 --> 01:20:57,370 This is a much bigger mockup that you can use to play with. 1731 01:20:57,370 --> 01:20:58,960 Don't be put off by the size of this. 1732 01:20:58,960 --> 01:21:03,500 1733 01:21:03,500 --> 01:21:05,810 There are devices you carry with you. 1734 01:21:05,810 --> 01:21:08,520 There are devices you encounter, like Enviro 21s. 1735 01:21:08,520 --> 01:21:11,150 1736 01:21:11,150 --> 01:21:13,040 The applications that you choose to run 1737 01:21:13,040 --> 01:21:17,240 are constantly adapting to these new devices. 1738 01:21:17,240 --> 01:21:19,190 As you walk into a room, the application 1739 01:21:19,190 --> 01:21:21,800 has to reconfigure itself to use the different devices you've 1740 01:21:21,800 --> 01:21:23,037 encountered. 1741 01:21:23,037 --> 01:21:25,370 And then there are other devices that you don't actually 1742 01:21:25,370 --> 01:21:27,320 wish to make a part of your application world. 1743 01:21:27,320 --> 01:21:28,910 You really want to deal with them somehow. 1744 01:21:28,910 --> 01:21:31,040 You want to make the Coke machine give you a Coke. 1745 01:21:31,040 --> 01:21:33,690 You don't want it to answer your email because you're near it. 1746 01:21:33,690 --> 01:21:35,398 But you'd like to talk to it in some way. 1747 01:21:35,398 --> 01:21:37,730 So you are constantly walking through the world, 1748 01:21:37,730 --> 01:21:39,650 encountering these devices, finding 1749 01:21:39,650 --> 01:21:42,590 the linkage between their manifestation in real space 1750 01:21:42,590 --> 01:21:44,510 and the manifestation in cyberspace, 1751 01:21:44,510 --> 01:21:47,600 and dealing with them using the things you carry with you, 1752 01:21:47,600 --> 01:21:49,580 your interface devices. 1753 01:21:49,580 --> 01:21:51,920 And that is the post-PC world that I 1754 01:21:51,920 --> 01:21:53,270 think we're about to move into. 1755 01:21:53,270 --> 01:21:56,810 1756 01:21:56,810 --> 01:21:57,995 14, no, I overshot. 1757 01:21:57,995 --> 01:22:09,660 1758 01:22:09,660 --> 01:22:16,970 David Clark, father of the Token Ring, 1759 01:22:16,970 --> 01:22:20,060 said that future devices won't have keyboards 1760 01:22:20,060 --> 01:22:23,360 if you believe Victor Zue. 1761 01:22:23,360 --> 01:22:26,510 Well, I do believe Victor Zue. 1762 01:22:26,510 --> 01:22:29,750 As Michael explained, the natural ease of use of Oxygen 1763 01:22:29,750 --> 01:22:32,570 will be based on built-in speech. 1764 01:22:32,570 --> 01:22:35,450 And we have a well-known pioneer in interactive dialogue 1765 01:22:35,450 --> 01:22:38,750 systems, Associate Director of LCS, 1766 01:22:38,750 --> 01:22:41,810 head of the laboratory Spoken Language Systems Group, 1767 01:22:41,810 --> 01:22:45,410 and player of a mean guitar, welcome Victor Zue. 1768 01:22:45,410 --> 01:22:52,910 1769 01:22:52,910 --> 01:22:55,520 Thank you, Bob. 1770 01:22:55,520 --> 01:22:58,400 Everybody wants to talk to their computers. 1771 01:22:58,400 --> 01:23:01,610 For decades, science fiction writers, 1772 01:23:01,610 --> 01:23:05,930 Hollywood has been telling us, speech is it. 1773 01:23:05,930 --> 01:23:08,550 Is the ultimate interface. 1774 01:23:08,550 --> 01:23:10,510 Why is it? 1775 01:23:10,510 --> 01:23:12,940 I think part of this is our strong desire 1776 01:23:12,940 --> 01:23:15,460 to make computers anthropomorphic. 1777 01:23:15,460 --> 01:23:18,650 We want to make computers behave like human beings. 1778 01:23:18,650 --> 01:23:21,490 But I think it's more than that. 1779 01:23:21,490 --> 01:23:22,960 Speech is natural. 1780 01:23:22,960 --> 01:23:26,610 We know how to speak before we know how to read and write. 1781 01:23:26,610 --> 01:23:29,820 Speech is efficient. 1782 01:23:29,820 --> 01:23:32,070 Everybody can speak about five times faster 1783 01:23:32,070 --> 01:23:34,770 than they can type, and probably 10 times faster than they 1784 01:23:34,770 --> 01:23:37,370 can write. 1785 01:23:37,370 --> 01:23:39,060 And speech is flexible. 1786 01:23:39,060 --> 01:23:40,440 We don't have to touch anything. 1787 01:23:40,440 --> 01:23:44,250 We don't have to see anything. 1788 01:23:44,250 --> 01:23:47,040 Now, over the last two or three decades, 1789 01:23:47,040 --> 01:23:52,610 we're seeing the technology for speech maturing such 1790 01:23:52,610 --> 01:23:55,940 that the first generation of speech-based interfaces 1791 01:23:55,940 --> 01:23:58,010 are beginning to emerge. 1792 01:23:58,010 --> 01:24:00,830 And most of these interfaces are based on the technology 1793 01:24:00,830 --> 01:24:03,210 of speech recognition. 1794 01:24:03,210 --> 01:24:05,880 So where are we now? 1795 01:24:05,880 --> 01:24:09,180 We're seeing high-performance, speaker-independent speech 1796 01:24:09,180 --> 01:24:11,640 technology becoming possible. 1797 01:24:11,640 --> 01:24:15,600 For very large vocabularies of tens of thousands of words, 1798 01:24:15,600 --> 01:24:17,820 you can use it if you are a cooperative speaker 1799 01:24:17,820 --> 01:24:20,440 in a benign environment. 1800 01:24:20,440 --> 01:24:22,990 For moderate vocabulary tasks, the system 1801 01:24:22,990 --> 01:24:25,960 can accept extemporaneously generated speech 1802 01:24:25,960 --> 01:24:27,520 over the telephone. 1803 01:24:27,520 --> 01:24:31,570 In fact, you can go to various computer stores 1804 01:24:31,570 --> 01:24:35,980 and buy speech-recognition software for dictation. 1805 01:24:35,980 --> 01:24:40,180 Products offered by IBM, Dragon Systems, [INAUDIBLE],, 1806 01:24:40,180 --> 01:24:41,500 and Philips. 1807 01:24:41,500 --> 01:24:43,660 You're also seeing or experiencing 1808 01:24:43,660 --> 01:24:47,860 telephone-based transactions pioneered by AT&T Bell Labs, 1809 01:24:47,860 --> 01:24:50,390 and now pursued by a number of other places, 1810 01:24:50,390 --> 01:24:54,170 including Nuance, Philips, and SpeechWorks. 1811 01:24:54,170 --> 01:24:57,340 So the bottom line is the current-day day technology, 1812 01:24:57,340 --> 01:24:59,740 when well matched to applications, 1813 01:24:59,740 --> 01:25:02,500 you can actually put to good use. 1814 01:25:02,500 --> 01:25:04,600 But the point I would like to make today 1815 01:25:04,600 --> 01:25:08,240 is that Oxygen needs far more. 1816 01:25:08,240 --> 01:25:09,710 So what do we need? 1817 01:25:09,710 --> 01:25:12,710 I think in the next generation, our computer interfaces 1818 01:25:12,710 --> 01:25:15,170 are going to be the kind of interfaces 1819 01:25:15,170 --> 01:25:19,670 that allow you to communicate with computers very much 1820 01:25:19,670 --> 01:25:22,190 the same way you would communicate with another human 1821 01:25:22,190 --> 01:25:23,300 being. 1822 01:25:23,300 --> 01:25:28,130 And therefore, the notion of conversation is very important. 1823 01:25:28,130 --> 01:25:30,470 On the input side, the machine must 1824 01:25:30,470 --> 01:25:33,950 be able to understand verbal input. 1825 01:25:33,950 --> 01:25:37,280 That means the technology of speech recognition converting 1826 01:25:37,280 --> 01:25:41,510 signal to symbols must be augmented with language 1827 01:25:41,510 --> 01:25:44,620 understanding technology. 1828 01:25:44,620 --> 01:25:47,620 And you must be able to understand within context. 1829 01:25:47,620 --> 01:25:50,140 So when someone says, how far is it? 1830 01:25:50,140 --> 01:25:53,020 How much does it cost? 1831 01:25:53,020 --> 01:25:54,480 What about Tokyo, Japan? 1832 01:25:54,480 --> 01:25:56,850 Things like that you will be able to understand 1833 01:25:56,850 --> 01:25:59,510 as part of a conversation. 1834 01:25:59,510 --> 01:26:01,430 On the output side, the machine must 1835 01:26:01,430 --> 01:26:04,100 be able to verbalize the information. 1836 01:26:04,100 --> 01:26:07,040 You have to take documents from the web, 1837 01:26:07,040 --> 01:26:09,290 tabular form the information, turn it 1838 01:26:09,290 --> 01:26:12,110 into well-formed sentences, and eventually, utter 1839 01:26:12,110 --> 01:26:16,235 these sentences, perhaps over the telephone. 1840 01:26:16,235 --> 01:26:17,610 Throughout this process, you must 1841 01:26:17,610 --> 01:26:20,370 be able to engage in dialogue so the machine 1842 01:26:20,370 --> 01:26:23,640 will be able to clarify mistakes you might have made. 1843 01:26:23,640 --> 01:26:27,390 Did you say Boston, Massachusetts or Austin, Texas? 1844 01:26:27,390 --> 01:26:29,850 And it'll try to help you negotiate such 1845 01:26:29,850 --> 01:26:31,950 that you can conclude a transaction 1846 01:26:31,950 --> 01:26:34,950 in a meaningful and efficient manner. 1847 01:26:34,950 --> 01:26:37,147 Now, for the last decade, we at the Laboratory 1848 01:26:37,147 --> 01:26:38,730 for Computer Science have been working 1849 01:26:38,730 --> 01:26:42,030 on this kind of an interface, conversational interface. 1850 01:26:42,030 --> 01:26:44,610 And this point, we're seeing the emergence 1851 01:26:44,610 --> 01:26:47,490 of these kind of technologies and systems 1852 01:26:47,490 --> 01:26:50,220 that can recognize what a person said, 1853 01:26:50,220 --> 01:26:54,450 understand the meaning of the utterances in context, 1854 01:26:54,450 --> 01:26:58,170 take appropriate actions, and respond. 1855 01:26:58,170 --> 01:27:01,920 But as many of us have said this morning, these kind of systems 1856 01:27:01,920 --> 01:27:04,620 are unfortunately kind of dumb. 1857 01:27:04,620 --> 01:27:08,550 They can only deal with limited domains, such as weather, 1858 01:27:08,550 --> 01:27:12,810 flights, traffic, navigation, banking, electronic commerce, 1859 01:27:12,810 --> 01:27:14,430 individual domains. 1860 01:27:14,430 --> 01:27:17,880 It is not omnipotent. 1861 01:27:17,880 --> 01:27:20,820 Nonetheless, they can deal with real domains. 1862 01:27:20,820 --> 01:27:22,330 The applications are real. 1863 01:27:22,330 --> 01:27:24,510 The information is up-to-date. 1864 01:27:24,510 --> 01:27:28,640 And you can access this information over the telephone. 1865 01:27:28,640 --> 01:27:30,230 It deals with multiple languages. 1866 01:27:30,230 --> 01:27:32,360 The three that we paid the most attention to 1867 01:27:32,360 --> 01:27:37,160 has been American English, Spanish, and Mandarin Chinese, 1868 01:27:37,160 --> 01:27:39,170 among others. 1869 01:27:39,170 --> 01:27:42,080 And these systems can perform information access 1870 01:27:42,080 --> 01:27:46,430 in almost real time, the wait for the worldwide web 1871 01:27:46,430 --> 01:27:48,230 notwithstanding. 1872 01:27:48,230 --> 01:27:51,080 And using standard PCs, machines come, 1873 01:27:51,080 --> 01:27:54,380 you pour software into it, and it works. 1874 01:27:54,380 --> 01:27:56,180 The applications I'm going to show you, 1875 01:27:56,180 --> 01:27:58,490 and the applications we have been developing, 1876 01:27:58,490 --> 01:28:00,560 are all using an architecture called 1877 01:28:00,560 --> 01:28:04,682 Galaxy, which was introduced five years ago in our group. 1878 01:28:04,682 --> 01:28:06,140 And I just want to quickly tell you 1879 01:28:06,140 --> 01:28:09,210 about some of the features of this architecture. 1880 01:28:09,210 --> 01:28:12,540 First of all, it makes use of a distributor architecture. 1881 01:28:12,540 --> 01:28:15,260 So you can have a very lightweight client. 1882 01:28:15,260 --> 01:28:17,070 And the client can be so lightweight, 1883 01:28:17,070 --> 01:28:18,800 it is only a telephone. 1884 01:28:18,800 --> 01:28:21,110 And the compute and knowledge-intensive actions 1885 01:28:21,110 --> 01:28:24,440 are all taken on remote servers. 1886 01:28:24,440 --> 01:28:28,280 Galaxy can deal with multiple domains of knowledge 1887 01:28:28,280 --> 01:28:30,260 and can access them transparently. 1888 01:28:30,260 --> 01:28:33,660 And you can add more, new domains. 1889 01:28:33,660 --> 01:28:35,700 It can deal with multiple modalities. 1890 01:28:35,700 --> 01:28:38,700 You can point, click, type. 1891 01:28:38,700 --> 01:28:42,380 I can talk to my machines using a telephone. 1892 01:28:42,380 --> 01:28:44,080 So what I'd like to do is to give you 1893 01:28:44,080 --> 01:28:46,720 a very brief demonstration in terms of where we are 1894 01:28:46,720 --> 01:28:48,610 and what we can do. 1895 01:28:48,610 --> 01:28:52,420 The first demonstration is going to be without display. 1896 01:28:52,420 --> 01:28:56,230 In its simplest form, what the Galaxy system can deal with 1897 01:28:56,230 --> 01:29:00,140 is a client, which is nothing more than a telephone. 1898 01:29:00,140 --> 01:29:05,620 So telephone-based interaction without any display 1899 01:29:05,620 --> 01:29:09,010 poses new challenges, because if you only 1900 01:29:09,010 --> 01:29:10,810 have the auditory channel, then you 1901 01:29:10,810 --> 01:29:13,570 can only absorb a small amount of information 1902 01:29:13,570 --> 01:29:17,680 at a time, which means that a dialogue management 1903 01:29:17,680 --> 01:29:21,910 component must work concurrently with, cooperatively with, 1904 01:29:21,910 --> 01:29:24,790 language generation, so that you can get information down 1905 01:29:24,790 --> 01:29:27,610 to a digestible size for the user. 1906 01:29:27,610 --> 01:29:29,080 And the second thing is, of course, 1907 01:29:29,080 --> 01:29:33,650 better-quality computer voice response will be necessary. 1908 01:29:33,650 --> 01:29:36,160 We have been working in the synthesis area also. 1909 01:29:36,160 --> 01:29:38,390 But for the time being, the demonstration 1910 01:29:38,390 --> 01:29:40,000 I'm going to show you is actually 1911 01:29:40,000 --> 01:29:42,970 using a commercially off-the-shelf synthesizer 1912 01:29:42,970 --> 01:29:46,810 from Compaq, formerly Digital Equipment. 1913 01:29:46,810 --> 01:29:49,090 We have developed several applications, 1914 01:29:49,090 --> 01:29:51,100 about half a dozen or so. 1915 01:29:51,100 --> 01:29:53,020 And there is a system called Jupiter 1916 01:29:53,020 --> 01:29:56,260 that can deal with worldwide weather information for 500 1917 01:29:56,260 --> 01:29:57,850 cities worldwide. 1918 01:29:57,850 --> 01:30:00,430 And Pegasus is a system that can deal 1919 01:30:00,430 --> 01:30:03,730 with 4,000 flights flying in the United States airspace 1920 01:30:03,730 --> 01:30:04,870 every day. 1921 01:30:04,870 --> 01:30:07,540 And we update the information every two or three minutes. 1922 01:30:07,540 --> 01:30:10,040 And we don't lie to you. 1923 01:30:10,040 --> 01:30:13,190 Voyager can deal with traffic and navigation. 1924 01:30:13,190 --> 01:30:15,770 And again, the information about greater Boston traffic 1925 01:30:15,770 --> 01:30:19,210 comes in every two minutes or so. 1926 01:30:19,210 --> 01:30:22,060 And one thing you'll notice later on 1927 01:30:22,060 --> 01:30:24,790 is that in order for you to move from one domain to the other, 1928 01:30:24,790 --> 01:30:26,650 you must explicitly switch. 1929 01:30:26,650 --> 01:30:28,300 I want to talk to Jupiter now. 1930 01:30:28,300 --> 01:30:31,060 I want to talk to Voyager now, et cetera. 1931 01:30:31,060 --> 01:30:32,760 Well, because of time constraints, 1932 01:30:32,760 --> 01:30:36,340 what I'm going to do is just show you one demonstration 1933 01:30:36,340 --> 01:30:37,870 using Jupiter system. 1934 01:30:37,870 --> 01:30:39,370 Let's see whether the machine is up. 1935 01:30:39,370 --> 01:30:40,703 Let me apologize for two things. 1936 01:30:40,703 --> 01:30:42,537 We don't have that many phone lines and this 1937 01:30:42,537 --> 01:30:43,510 is a popular system. 1938 01:30:43,510 --> 01:30:44,920 Oftentimes people are calling. 1939 01:30:44,920 --> 01:30:47,530 If I get a busy signal, I apologize. 1940 01:30:47,530 --> 01:30:51,160 And the second thing is in the auditorium with feedback, 1941 01:30:51,160 --> 01:30:53,830 sometimes the system may not work so well. 1942 01:30:53,830 --> 01:30:54,330 Let me try. 1943 01:30:54,330 --> 01:31:02,760 1944 01:31:02,760 --> 01:31:06,540 Hi, welcome to Jupiter, the MIT Lab for Computer Science 1945 01:31:06,540 --> 01:31:08,220 weather information system. 1946 01:31:08,220 --> 01:31:11,070 This call is being recorded for system development. 1947 01:31:11,070 --> 01:31:13,810 You may hang up or ask for help at any time. 1948 01:31:13,810 --> 01:31:15,960 How can I help you? 1949 01:31:15,960 --> 01:31:17,960 What is the forecast for Boston today? 1950 01:31:17,960 --> 01:31:27,520 1951 01:31:27,520 --> 01:31:30,790 In Boston this afternoon, partly sunny and windy. 1952 01:31:30,790 --> 01:31:32,200 High around 50. 1953 01:31:32,200 --> 01:31:33,850 Tonight, clear. 1954 01:31:33,850 --> 01:31:35,530 Lows around 35. 1955 01:31:35,530 --> 01:31:38,680 What other information can I give you? 1956 01:31:38,680 --> 01:31:39,690 Will it rain tomorrow? 1957 01:31:39,690 --> 01:31:45,010 1958 01:31:45,010 --> 01:31:47,890 To my knowledge, the forecast calls for no rain in Boston 1959 01:31:47,890 --> 01:31:48,640 tomorrow. 1960 01:31:48,640 --> 01:31:51,340 Is there anything else? 1961 01:31:51,340 --> 01:31:52,120 How about Seattle? 1962 01:31:52,120 --> 01:31:54,960 1963 01:31:54,960 --> 01:31:57,480 The answer should be yes. 1964 01:31:57,480 --> 01:32:00,330 To my knowledge, the forecast calls for no rain in Seattle 1965 01:32:00,330 --> 01:32:01,050 tomorrow. 1966 01:32:01,050 --> 01:32:04,230 Is there something else you'd like to know? 1967 01:32:04,230 --> 01:32:06,450 Is it sunny anywhere in the Caribbean? 1968 01:32:06,450 --> 01:32:10,950 1969 01:32:10,950 --> 01:32:15,000 Sorry, I'm not sure what you said. 1970 01:32:15,000 --> 01:32:17,150 Is it sunny anywhere in the Caribbean? 1971 01:32:17,150 --> 01:32:20,910 1972 01:32:20,910 --> 01:32:22,480 I am sorry. 1973 01:32:22,480 --> 01:32:25,000 I may not know the city you're asking about. 1974 01:32:25,000 --> 01:32:26,740 Try asking for the state or country. 1975 01:32:26,740 --> 01:32:31,030 For example, what cities do you know about in Massachusetts? 1976 01:32:31,030 --> 01:32:33,150 What is the temperature in Montego Bay? 1977 01:32:33,150 --> 01:32:38,540 1978 01:32:38,540 --> 01:32:42,110 In Montego Bay today, high 86 and low 73. 1979 01:32:42,110 --> 01:32:44,340 Is this something else? 1980 01:32:44,340 --> 01:32:44,840 Goodbye. 1981 01:32:44,840 --> 01:32:54,300 1982 01:32:54,300 --> 01:32:57,750 This is a system that's up almost all the time. 1983 01:32:57,750 --> 01:32:59,250 We will give you a toll-free number. 1984 01:32:59,250 --> 01:33:02,460 You can call and donate your voice to science, 1985 01:33:02,460 --> 01:33:05,330 because we record your voice. 1986 01:33:05,330 --> 01:33:07,580 Anyway, this is an example of the kind of system 1987 01:33:07,580 --> 01:33:10,040 that's going to come out pretty soon. 1988 01:33:10,040 --> 01:33:12,890 And I want to tell you that I've been working 1989 01:33:12,890 --> 01:33:15,320 all my life in speech, and it's logical 1990 01:33:15,320 --> 01:33:18,350 that I would think speech is the solution to all problems. 1991 01:33:18,350 --> 01:33:21,960 If you have a hammer, everything looks like nails. 1992 01:33:21,960 --> 01:33:24,390 But even I have to admit, sometimes a picture 1993 01:33:24,390 --> 01:33:26,260 is kind of nice. 1994 01:33:26,260 --> 01:33:28,830 It can convey information not available otherwise. 1995 01:33:28,830 --> 01:33:31,170 And sometimes typing, pointing, and clicking, 1996 01:33:31,170 --> 01:33:35,320 all those kind of things, can augment a speech input. 1997 01:33:35,320 --> 01:33:41,640 So, in fact, our system can deal with a system with display. 1998 01:33:41,640 --> 01:33:44,430 And I'm going to show you a brief video clip which will 1999 01:33:44,430 --> 01:33:48,050 show you how this thing works. 2000 01:33:48,050 --> 01:33:48,800 Let's take a look. 2001 01:33:48,800 --> 01:33:55,110 2002 01:33:55,110 --> 01:33:57,707 What happened? 2003 01:33:57,707 --> 01:33:59,290 Maybe I won't show you the video clip. 2004 01:33:59,290 --> 01:34:03,670 2005 01:34:03,670 --> 01:34:04,210 Let's see. 2006 01:34:04,210 --> 01:34:08,110 2007 01:34:08,110 --> 01:34:09,850 It's not my fault. 2008 01:34:09,850 --> 01:34:13,907 Anyway, the good news is that, you 2009 01:34:13,907 --> 01:34:16,420 can please check it out this afternoon at the reception. 2010 01:34:16,420 --> 01:34:20,980 2011 01:34:20,980 --> 01:34:22,630 This will give you an opportunity 2012 01:34:22,630 --> 01:34:25,310 to see the system work in real life. 2013 01:34:25,310 --> 01:34:26,665 So let's try to do that. 2014 01:34:26,665 --> 01:34:28,540 Otherwise, I'm going to get the hook from Bob 2015 01:34:28,540 --> 01:34:31,960 if I were to figure out what's wrong with this display. 2016 01:34:31,960 --> 01:34:35,140 I want to spend the remainder of my time trying to tie speech 2017 01:34:35,140 --> 01:34:39,270 to Oxygen. Now, as Michael has said, 2018 01:34:39,270 --> 01:34:42,000 Oxygen has set forth a radically new way 2019 01:34:42,000 --> 01:34:44,100 of human-machine interaction. 2020 01:34:44,100 --> 01:34:48,890 And it's going to be natural using speech, no keyboard. 2021 01:34:48,890 --> 01:34:50,240 It's going to be mobile. 2022 01:34:50,240 --> 01:34:52,910 It's going to connect to the rest of the world using 2023 01:34:52,910 --> 01:34:54,230 wireless networks. 2024 01:34:54,230 --> 01:34:57,620 And it's going to have lightweight, hand-held devices 2025 01:34:57,620 --> 01:35:00,740 that will enable you to communicate with machines 2026 01:35:00,740 --> 01:35:02,640 and with the environment. 2027 01:35:02,640 --> 01:35:05,450 I just want to mention that the first-generation Handy 2028 01:35:05,450 --> 01:35:10,400 21 is under active development on a separate DARPA project. 2029 01:35:10,400 --> 01:35:15,120 And the idea is that you are going to have handheld devices. 2030 01:35:15,120 --> 01:35:17,570 And this is probably the final version 2031 01:35:17,570 --> 01:35:23,280 of the design with a little bit of navigation with the thumb. 2032 01:35:23,280 --> 01:35:24,830 And then you have camera. 2033 01:35:24,830 --> 01:35:29,060 And also you are going to have speech interface and display. 2034 01:35:29,060 --> 01:35:31,040 It's going to go through wireless network 2035 01:35:31,040 --> 01:35:35,505 and have the computing done on remote servers. 2036 01:35:35,505 --> 01:35:36,880 Now, so far, I have been spending 2037 01:35:36,880 --> 01:35:40,480 a lot of time talking about speech as an interface, 2038 01:35:40,480 --> 01:35:44,450 but I really want to caution you that spoken language, 2039 01:35:44,450 --> 01:35:48,280 the power of spoken language, goes far beyond interfaces. 2040 01:35:48,280 --> 01:35:51,250 Increasingly, we're seeing information 2041 01:35:51,250 --> 01:35:55,180 on the web in the form of audio, radio broadcasts, for example, 2042 01:35:55,180 --> 01:35:59,660 and video, movies, and video broadcasts, and also 2043 01:35:59,660 --> 01:36:01,970 a summary of meeting notes, for example. 2044 01:36:01,970 --> 01:36:06,670 So in fact, we must be able to index 2045 01:36:06,670 --> 01:36:10,570 the content in the form of spoken language. 2046 01:36:10,570 --> 01:36:13,920 And what's even more important is the fact that language 2047 01:36:13,920 --> 01:36:17,280 is what enables us to communicate in such a subtle 2048 01:36:17,280 --> 01:36:19,670 and also efficient manner. 2049 01:36:19,670 --> 01:36:22,040 If I were to talk to my computer-- 2050 01:36:22,040 --> 01:36:27,280 let me know when the Microsoft stock is above $160 2051 01:36:27,280 --> 01:36:31,240 or, call me half an hour before the flight is going to arrive-- 2052 01:36:31,240 --> 01:36:35,050 things like that, you can use very simple human language 2053 01:36:35,050 --> 01:36:38,470 to convey the kind of commands and have the computer really 2054 01:36:38,470 --> 01:36:42,070 serving as an agent to accomplish tasks for you. 2055 01:36:42,070 --> 01:36:43,390 So look at it this way. 2056 01:36:43,390 --> 01:36:46,690 I think it's important to realize that speech will 2057 01:36:46,690 --> 01:36:51,190 be a crucial part of the infrastructure for Oxygen. 2058 01:36:51,190 --> 01:36:54,640 There are a lot of research problems we need to deal with. 2059 01:36:54,640 --> 01:36:58,930 Now, we can deal with a few domains, simple domains 2060 01:36:58,930 --> 01:36:59,950 and a few. 2061 01:36:59,950 --> 01:37:02,920 We want to be able to deal with many domains 2062 01:37:02,920 --> 01:37:05,080 and complex domains. 2063 01:37:05,080 --> 01:37:10,630 You want to be able to navigate transparently. 2064 01:37:10,630 --> 01:37:13,240 At the moment, you have to say, I'm going from one domain 2065 01:37:13,240 --> 01:37:14,110 to the other. 2066 01:37:14,110 --> 01:37:17,110 And I'm going to have to specifically say that. 2067 01:37:17,110 --> 01:37:18,730 When you have multiple domains, this 2068 01:37:18,730 --> 01:37:21,200 will simply not be possible. 2069 01:37:21,200 --> 01:37:22,848 So what we want to do, as Michael says, 2070 01:37:22,848 --> 01:37:24,640 is to take [? narrow ?] domains, treat them 2071 01:37:24,640 --> 01:37:29,760 like little pieces of cloth, and try to stitch it together 2072 01:37:29,760 --> 01:37:34,070 into a quilt. Allow people to navigate transparently. 2073 01:37:34,070 --> 01:37:36,590 We can deal with a few languages of the world, 2074 01:37:36,590 --> 01:37:40,400 and we must be able to deal with many other languages. 2075 01:37:40,400 --> 01:37:42,200 At the moment, pointing, clicking, 2076 01:37:42,200 --> 01:37:46,070 and those kind of things are relatively primitive, 2077 01:37:46,070 --> 01:37:47,030 the coupling. 2078 01:37:47,030 --> 01:37:49,640 We want them to be fully integrated. 2079 01:37:49,640 --> 01:37:53,610 And finally, if you really want to use language, 2080 01:37:53,610 --> 01:37:58,170 then the machine must be able to do more than just what 2081 01:37:58,170 --> 01:38:00,810 I say, but understand the intention 2082 01:38:00,810 --> 01:38:04,170 and be able to do what I mean. 2083 01:38:04,170 --> 01:38:06,840 So these are some of the important research issues 2084 01:38:06,840 --> 01:38:09,160 that we must address. 2085 01:38:09,160 --> 01:38:11,470 And I just want to close by saying 2086 01:38:11,470 --> 01:38:15,550 that speech-based interfaces are an integral part of Oxygen. It 2087 01:38:15,550 --> 01:38:18,590 is almost inevitable for three reasons. 2088 01:38:18,590 --> 01:38:21,190 First of all, we need to be mobile 2089 01:38:21,190 --> 01:38:23,540 and yet, we need to be connected. 2090 01:38:23,540 --> 01:38:25,990 You can't carry a keyboard around. 2091 01:38:25,990 --> 01:38:28,510 Machines are getting smaller and smaller. 2092 01:38:28,510 --> 01:38:30,910 The only way you can type to write in the future 2093 01:38:30,910 --> 01:38:33,130 will be using toothpicks. 2094 01:38:33,130 --> 01:38:38,080 Last, but not least, we love to talk. 2095 01:38:38,080 --> 01:38:41,200 Tomorrow's interfaces, however, must 2096 01:38:41,200 --> 01:38:45,040 be able to understand and respond in context. 2097 01:38:45,040 --> 01:38:49,600 They must be able to incorporate multiple modalities, 2098 01:38:49,600 --> 01:38:52,760 be increasingly untethered. 2099 01:38:52,760 --> 01:38:57,120 And speech is more than an interface. 2100 01:38:57,120 --> 01:39:00,780 It is part of the Oxygen infrastructure. 2101 01:39:00,780 --> 01:39:04,170 And there are a lot of problems that need to be solved. 2102 01:39:04,170 --> 01:39:06,840 As my friend Fred Jelinek once said, 2103 01:39:06,840 --> 01:39:10,370 it's going to keep my family fed for many years. 2104 01:39:10,370 --> 01:39:10,870 Thank you. 2105 01:39:10,870 --> 01:39:28,020 2106 01:39:28,020 --> 01:39:28,520 Michael. 2107 01:39:28,520 --> 01:39:31,820 2108 01:39:31,820 --> 01:39:35,120 As we reach the midpoint between the proximity talks, 2109 01:39:35,120 --> 01:39:37,370 I wanted to remind you and tell you 2110 01:39:37,370 --> 01:39:39,140 something I didn't tell you earlier, 2111 01:39:39,140 --> 01:39:44,180 namely, that this project, for the first time 2112 01:39:44,180 --> 01:39:47,780 since timesharing, Multics, and CTSS that you'll remember, 2113 01:39:47,780 --> 01:39:51,630 has coalesced some 30 members of our faculty together. 2114 01:39:51,630 --> 01:39:53,690 So it's very, very widespread. 2115 01:39:53,690 --> 01:39:57,200 And we're collaborating with our sister lab, the Artificial 2116 01:39:57,200 --> 01:40:00,000 Intelligence Laboratory, who is extending 2117 01:40:00,000 --> 01:40:03,570 our speech into vision, smart rooms, 2118 01:40:03,570 --> 01:40:05,820 and a lot of other things we didn't talk this morning. 2119 01:40:05,820 --> 01:40:07,862 But we've written this up, you can read about it, 2120 01:40:07,862 --> 01:40:09,920 and I just wanted to remind you of that it's 2121 01:40:09,920 --> 01:40:11,240 a very, very large project. 2122 01:40:11,240 --> 01:40:14,330 Thank you, Bob. 2123 01:40:14,330 --> 01:40:18,080 I can only wonder what Oxygen will think the next time 2124 01:40:18,080 --> 01:40:20,745 someone says that they have excess gates coming out 2125 01:40:20,745 --> 01:40:21,245 their ears. 2126 01:40:21,245 --> 01:40:25,010 2127 01:40:25,010 --> 01:40:26,430 We're about to go to lunch. 2128 01:40:26,430 --> 01:40:28,430 We're going to have lunch in the Johnson Center. 2129 01:40:28,430 --> 01:40:29,847 The Johnson Center, by the way, is 2130 01:40:29,847 --> 01:40:32,390 where we're going to continue this meeting tomorrow morning 2131 01:40:32,390 --> 01:40:35,360 at 8:30 on Vassar Street. 2132 01:40:35,360 --> 01:40:37,790 Tomorrow morning at 8:30 on Vassar Street 2133 01:40:37,790 --> 01:40:39,515 at Johnson Center. 2134 01:40:39,515 --> 01:40:41,390 And it's going to be complicated to get there 2135 01:40:41,390 --> 01:40:45,170 because of the security arrangements necessary for me 2136 01:40:45,170 --> 01:40:46,400 and the premier of China. 2137 01:40:46,400 --> 01:40:49,640 2138 01:40:49,640 --> 01:40:53,120 At lunch today, there are 110 tables, each of which 2139 01:40:53,120 --> 01:40:54,015 has a host. 2140 01:40:54,015 --> 01:40:55,640 And I believe you have in your packages 2141 01:40:55,640 --> 01:40:59,660 this map of the tables. 2142 01:40:59,660 --> 01:41:01,790 And you should choose someone that you'd 2143 01:41:01,790 --> 01:41:04,640 like to have lunch with, and try to find room at their table. 2144 01:41:04,640 --> 01:41:08,450 For example, at my table is number 29. 2145 01:41:08,450 --> 01:41:11,240 So please come over to the Johnson Center for lunch. 2146 01:41:11,240 --> 01:41:15,115 Let's go promptly, and I'll see you back here at 2:00 PM. 2147 01:41:15,115 --> 01:41:41,000