REDMOND, Wash., Aug. 7, 2001 — In 1988, when David Weise was working on the Windows “kernel” — the low-level code at the core of the operating system — he found a problem that he couldn’t resist solving.
David Weise, Microsoft Distinguished Engineer
At the time, the way PCs used memory was complicated and difficult to program. The basic problem was, there wasn’t enough of it. Windows was using the Intel 80286 processor in such a way that applications and Windows together were limited to 640K in memory, regardless of the amount of memory installed in a machine. But there was a different way to use the 286 processor — called “protect mode” — that allowed Windows and the applications to use all the memory installed in the machine. It also caused applications to run faster. Weise and a colleague determined that if you put all of Windows into protect mode, not just certain drivers and components, application performance would vastly improve. “We got so excited about the idea that we went straight back to my office to figure out how we could do it,” he says.
Working nights and weekends, Weise managed to solve the problem, surprising his colleagues and convincing the company to adopt his solution for Windows 3.0. “There were lots of other features in Windows, and lots of other factors that contributed to its success, but I think that solving this little problem really opened up the floodgates and got the momentum going for the platform,” he says.
Weise, who now works in Microsoft’s Natural Languages Group, this week was rewarded for his brilliance and enthusiasm by being named a Microsoft Distinguished Engineer, an honor created by the company to recognize individuals who have made outstanding contributions to the company’s success, yet do not aspire to become high-level managers or vice presidents.
“David is a passionate and inspirational team leader, forthright and practical, yet also a visionary,” said Bob Muglia, group vice president of Microsoft’s .NET Services Group. “He embodies a combination of qualities that are rare, valuable and a huge asset to Microsoft. Recognizing this set of qualities is what the Distinguished Engineer program is all about.”
Today, Weise is working on one of computer science’s most challenging problems — creating software that can understand written or spoken language. Since joining the Natural Languages Group in 1996, Weise has worked on software that analyzes sentences, determines how they are constructed and makes educated guesses as to their meaning. Currently, this technology runs behind the grammar checker in Microsoft Word, the Search Assistant in Windows XP, and on the Encarta Web site, where users can retrieve articles by typing sentences in plain English, such as “What is the population of Uruguay?”
This technology, according to Weise, is a crucial step towards the ability to interact with computers using natural language rather than learned commands. “Everyone says, ‘We want to talk to our computers.’ And they’ve been saying it for years. But I talk to my computer all the time. I want the thing to listen ! When I talk to another person, I’m making things happen in their mind using language. That’s not the kind of interaction we’ll have with computers — at least not in the next decade. We’re not going to have real conversations with them, but we will be able to use natural language to interact more easily with them, for things like command and control, information retrieval, machine translation and summarization.”
“When you analyze language, you discover that we understand it at three separate levels, all at once,” he says. “We understand it at a syntactic level — how sentences should be put together. We understand it at a semantic level — what objects belong to what. And the third level is pragmatics, which basically allows us to override the other two. The classic example of this is fairytales. We normally know that rocks don’t talk, but, in a fairytale, rocks can indeed talk.”
Weise’s work involves creating better statistical models of the way sentences are put together in English, particularly the ambiguities and idioms people use to communicate every day, to give computers at least a rudimentary understanding of language at each level. This involves not only recognizing the structure of a sentence — such as the arrangement of subjects and verbs — but also the meanings and relationships of the words themselves.
“English has certain sentence forms, but it also has words that like to have certain other words or phrases associated with them,” Weise says. “For example, you have adjectives such as ”tall’ or ”small’ or ”handsome,’ but you also have words like ‘fond.’ But you can’t just say someone is ‘fond’ — they’re fond ‘of’ something. What I’ve been doing is fleshing out these examples, creating a better model of how English behaves, and how certain words like to be modified.”
Once the parser has achieved this level of understanding of language, it is better able to process questions — and generate natural-sounding responses — in a wider range of contexts. As one way to explore this concept further, Weise’s group is working on a “chatbot” that can answer questions and have rudimentary ‘conversations’ with a user about specific, limited fields. When limited to a topic such as movies, for example, a “chatbot” could have very realistic-seeming conversations.
“We want to make a chatbot that’s more sophisticated, that can identify whether something is on-topic or off-topic, attempt to answer questions, or even initiate ‘conversations’ through random sentences,” Weise explains. “It’s not our goal in the next few years to make them good enough to fool anybody, but they can be quite entertaining.”
Working on such challenging problems is one reason Weise has stayed at the company for 15 years. “I always want to work with really smart people on really interesting projects,” he says. “I could do just about anything right now, but Microsoft always keeps things interesting for me. Why would I go anywhere else?”