throbber
llllll|||||||||||lllllllllllllllliilliilllllllllllll||||||l|ll|||ll||li||ll
`US005625814A
`
`United States Patent
`[19]
`[11] Patent Number:
`5,625,814
`
`Luciw
`[45] Date of Patent:
`Apr. 29, 1997
`
`[54] METHOD AND APPARATUS FOR
`PROCESSING NATURAL LANGUAGE WITH
`A HIERARCHY OF MAPPING ROUTINES
`Inventor: William W. Luciw, Morgan Hill, Calif.
`
`[75]
`
`FOREIGN PATENT DOCUMENTS
`0441039742
`3/1991 European Pat. on.
`..................... 3/23
`932164 of 1989
`Japan I
`OTHER PUBLICAHONS
`
`[73] Assignee: Apple Computer, Inc., Cupertino,
`Calif.
`
`[21] Appl. No.2 441,225
`.
`[22] Ffled:
`
`May 15’ 1995
`’
`Related US. Application Data
`[60] Division of Ser. No. 215,064, Mar. 18, 1994, Pat. No.
`
`Aahmed et a1, “Intelligent Natural Language Query Proces-
`501i”, TENCON ’89, Fourth lEEE Region 10 International
`Conference 22—24 Nov. 89, pp. 47—49.
`Beck et al, “Integratiang Natural Language. Query Process—
`ing, and Semantic Data Models”, COMCON Spring ’90.
`[SEE Computer Society International Conference, 1990. PP.
`538—543’ 26 Bah—2 Man 1990'
`(List continued on next page.)
`
`
`
`.................... G06F 17/30
`__ 395/605; 364/1316 1;
`364/282.1
`,
`[58] Field of Search .............................. 395/600; 364/419
`7
`References Cited
`
`[56]
`
`Primary Emminer_wayne Amsbury
`5,434,777, which is a continuation-in-part of Sen No.
`.
`.
`99,361, Jul. 30, 1993, Pat. No. 5,477,447, and a coutiuua—
`tion—in-part of Ser. No. 889,225, May 27, 1992, Pat No. Mame» Agent, 0' Firm—11101911811 Beyer & Weaver
`543902“:
`[57]
`ABSTRACT
`......
`[51]
`Int. Cl.
`.
`[52] U.S.C1. .......
`A method and apparatus for processmg natural language and
`deducing meaning from a natural language input character—
`.
`.
`.
`.
`ized by the ste s of (a)rece1v1ng an ordered stung of word
`objects having, mm language meaning. 0,) selecting a
`word window length, and (c) successively moving the word
`window along the ordered string and analyzing the meaning
`of a substring of word objects that fall within the word
`window. The substring is removed from the ordered string if
`the substring has a recognized meaning, until all substrings
`of the ordered string that fit within the window have been
`analyzed In a step (d), the word window length is reduced
`and step (c) is repeated until only an unrecognized residual
`of the ordered string remains. The meaning of the substn'ng
`is analyzed by mapping the substring against a database
`using one or more mapping routines. The mapping routines
`are preferably arranged in a hierarchy, wherein a successive
`mapping routine is used to analyze the subslring when a
`previous mapping routine in the hierarchy cannot map the
`substring. A computer—implemented task is determined from
`the recognized substrings and performed by the computer
`system. The apparatus of the present invention implements
`the method on a pen—based computer system, and the
`ordered string is preferably received from strokes entered by
`\
`.
`_
`a stylus on a display screen of the pen based computer or
`395/68
`395/600 mm a “’wml’hone “9697198 SPEC?“ HIP“?
`20 Claims, 12 Drawing Sheets
`
`U-S- Pm DOCUMENTS
`6/1987 Schmmm ...............
`4,670,848
`364,513
`
`8/1987 Thompson et a1.
`4,688,195
`395/12
`4,713,775 12/1987 Scott et 91
`. 354/513
`
`. 364/419
`.
`4,736,296
`4/1988 Kalayama et a1.
`4,750,122
`6/1988 Kaji et al.
`..
`. 354/419
`
`4,785,413
`11/1988 Atsumi
`_ 364/900
`4,875,187
`10/1989 Smith .........
`. 364/900
`4,887,212 12/1989 Zamora et a1.
`. 364/419
`4,918,723
`4/1990 Iggulden et 31.
`. 379/100
`4,945,504
`7/1990 Nakama et a1.
`- 364/709
`4,953,106
`8/1990 Gansner et :11.
`364/521
`4,965,763 10/1990 Zamora ..........
`364/41919
`4,974,191
`11/1990 Amirghodsi
`364/900
`4,994,966
`2/1991 Hut/chins
`' 364,419
`gflemvephm[get
`'
`.
`rbe
`......
`4,1992 Lamar et 31. "
`..
`4/1992 Kayatama et a1.
`(List continued on next page.)
`
`
`
`
`
`,
`,
`5,103,498
`5,109,509
`
`
`
` mama: mmums muss
`m mewcw
`
`96
`0mm
`
`summu uNmes m
`
`
`
`
`as
`
`
`
`
`Na
`unxumwr
`(imam mstas'm'
`
`[.1
`
`1 mum5
`
`
`
`
` suasmns
`we. was my
`
`‘ mamu:05K
`same wan
`mvans
`
`10,
`
` six-lemme AND
`STORE vamc
`
`
`MICROSOFT CORP. EX. 1014
`
`Page 1 of 25
`
`MICROSOFT CORP. EX. 1014
`Page 1 of 25
`
`

`

`5,625,814
`Page 2
`
`Elofson, G. et 31.. “Delegation Technologies: Environmental
`Scanning with Intelligent Agents,” Jour. of Management
`Info. Systems, Summer 1991. V. 8, issue 1, pp. 37—62.
`Nadoli, Gajanana et al., “Intelligent Agents in the Simula-
`tion of Manufacturing Systems,” Proceedings of the SCS
`Multiconference on AI and Simulation. 1989.
`Sharif Heger et al., “KNOWBOT: An Adaptive Data Base
`Interface,” Nuclear Science and Engineering, Feb. 1991, V.
`107, No. 2, pp. 142—157.
`Ohsawa, I. et al., “A Computational Model of an Intelligent
`Agent Who Talks with a Person,” Research Reports on
`Information Sciences, Series C, Apr. 1989, No. 92, pp. 1—18.
`Ratclifi‘e, Mitch et al., “Intelligent Agents Take U.S. Bows,”
`MacWeek, Mar. 2, 1992, V. 6, No. 9. p. 1.
`Boy, Guy A., Intelligent Assistant Systems, Harcourt Brace
`Jovanovicy, 1991.
`“Microsoft Windows User’s Guide for the Wmdows Graphi—
`cal Environment,” version 3.0, Microsoft Press, copyright
`1985—1990, pp. 33—41 & 70—74.
`R. Wilensky et al., "Talking to UNIX in English: an Over-
`view of UC,” Communications of the ACM, Jun. 1984. Vol.
`27, No. 6.
`Tello, Ernest R., “Natural—Language Systems,” Mastering
`AI Tools and Techniques, Howard W. Sams & Company,
`1988.
`Knight, Kevin, & Rich, Elaine, “Heuristic Search,” Produc—
`tion Systems, Artificial Intelligence, 2nd ed., McGraw—Hill,
`Inc., 1983—1991.
`Miastkowski. Stan, “PaperWorks Makes Paper Intelligent,”
`Byte Magazine, Jun. 1992.
`Dickinson et al., “Palmtips: Tiny Containers for All Your
`Data,” PC Magazine, Mar. 1990, Vol. 9, p. 218(3).
`Bajarin, Tirn, “With Low End Launched, Apple Turns to
`Portable Future”, PC Week, Oct. 1990, Vol. 7, p. 153(1).
`Corporate Ladder, BLOC Pulishing Corp., 1991.
`Diagrammaker, Action Software, 1989.
`Diagram—Master. Ashton—Tate, 1989.
`Microsoft MS—DOS Operating System User’s Guide,
`Microsoft Corporation, 1982. pp. 4—1 to 4—16, 5—1 to 5—19.
`
`U.S. PATENT DOCUMENTS
`..
`6/1992 Ohtaki et a1.
`5,123,103
`395/161
`5,175,814 12/1992 Anick et a1.
`364/419.01
`5,237,502
`8/1993 White et al.
`395/600
`5,278,980
`1/1994 Pedetsen
`395/12
`5,282,265
`1/1994 Suda etal
`..... 364/419
`5,327,342
`7/1994 Roy ............
`364/419.13
`..
`5,357,431
`10/1994 Nakada et a].
`364/419.08
`5,369,575
`11/1994 Lamberti et al.
`.. 364/419.19
`5,369,577
`11/1994 Kadashevich et a1.
`364/419.13
`5,434,777
`7/1995 Luciw ................
`395/600
`5,442,780
`8/1995 Takanashi et a1
`
`364/419.08
`.
`5,477,451
`12/1995 Brown et a1.
`.......
`O’Connor, Rory J., “Apple Banking on Newton’s Brain”,
`San Jose Mercury News, Apr. 22, 1991.
`Hendrix, Gary G. and Walter. Brett A., "The Intelligent
`Assistant: Technical Considerations Involved in Designing
`Q&A’s Natural—Language Interface.” Byte Magazine, Dec.
`1987, Issue 14, p. 25.
`Edwards, John R., “Q&A: Integrated Software with Macros
`and an Intelligent Assistant,” Byte Magazine, Jan. 1986, V.
`11. Issue 1, pp. 120—122.
`Goldberg, Cheryl, “IBM Drawing Assistant: Graphics for
`the EGA”, PC Magazine, Dec. 24, 1985, V01. 4, Issue 26. p.
`255.
`Garretson, R.. “IBM Adds ‘Drawing Assistant’ Design Tool
`to Graphic Series,” PC Week, Aug. 13, 1985. V. 2, Issue 32,
`p. 8.
`G1inerhStevens. Susan. “Microsoft Publisher: Desktop
`Wizardry,” PC Sources, Feb. 1992. V. 3, Issue 2, p. 357.
`Nilsson, B.A., “Microsoft Publisher is an Honorable Start
`for DTP Beginners,” Computer Shopper, Feb. 1992, V. 12,
`Issue 2, p. 416.
`Poor. Alfred, “Microsoft Publisher.” PC Magazine, Nov. 26,
`1991, V. 10. Issue 20, p. 40.
`Rampe, Dan et al.. Jan. 9, 1989 news release, Claris Corp.
`(announced “SmartForm Designer” and SmartForm Assis-
`tant).
`Berry, Deanne et al., Apr. 10, 1990 news release, Symantec,
`(announced new version of MORETM).
`
`
`
`MICROSOFT CORP. EX. 1014
`
`Page 2 of 25
`
`MICROSOFT CORP. EX. 1014
`Page 2 of 25
`
`

`

`US. Patent
`
`Apr. 29, 1997
`
`Sheet 1 of 12
`
`5,625,814
`
`OKON
`
`.vN
`
`Fan—Z.w><._mm_n_
`
`>4m2mmm<
`
`NNMESH—Ohm
`
`0V
`
`NZOIn—OEQE
`
`mm_n=u_n=2<
`
`D<n_>mv_
`
`.3,
`
`
`
`hEOn.._<_m_mw
`
`mmhmOmm5
`
`mu¥<mam
`
`mm_n=.._n=>_<
`
`NV
`
`WV
`
`9»
`
`Eu
`
`Ox_
`
`mm.
`
`ms
`
`Nu
`
`x0040
`
`Om.
`
`
`
`Wm.NM.
`
`m“3
`
`MICROSOFT CORP. EX. 1014
`
`Page 3 of 25
`
`MICROSOFT CORP. EX. 1014
`Page 3 of 25
`
`
`
`
`

`

`US. Patent
`
`Apr. 29, 1997
`
`Sheet 2 of 12
`
`5,625,814
`
`_|=ungn_w1tl_1_|31||_medal/lam p_m_a.t__
`
`'m I
`
`Chez Sovan
`
`MICROSOFT CORP. EX. 1014
`
`Page 4 of 25
`
`MICROSOFT CORP. EX. 1014
`Page 4 of 25
`
`

`

`US. Patent
`
`Apr. 29, 1997
`
`Sheet 3 of 12
`
`5,625,814
`
`72\
`
`/
`SUBSTRING
`Lunch with Bill Monday 12:30 pm at Chez Sovan
`
`73
`
`75
`
`LOCATION 2
`
`LENGTH=9, POS=1
`
`Lunch with Bill Monday 12:30 pm at Chez r
`
`LENGTH=8, POS=1
`
`with Bill Monday 12:30 pm at Chez Sovan
`
`LENGTH=8, POS=2
`
`Lunch with Bill Monday 12:30 pm at
`
`with Bill Monday 12:30 pm at Chez
`
`LENGTH=7, POS=1
`
`LENGTH=7, POS=2
`
`F
`
`73
`
`Bill Monday 12:30 pm at Chez Sovan
`
`LENGTH=7, POS=3
`
`Lunch with Bill Monday 12:30 pm
`
`with Bill Monday 12:30 pm at
`
`Bill Monday 12:30 pm at Chez
`
`LENGTH=6, POS=1
`
`LENGTH=6, POS=2
`
`LENGTH=6, POS=3
`
`Monday 12:30 pm at Chez Sovan
`
`LENGTH=6, POS=4
`
`Lunch with Bill
`
`with Bill Monday
`Bill Monday 12:30 /
`[Monday 12:30 pm]
`
`74
`
`[Lunch with]
`f Bill
`/
`[Bilfl
`
`76
`
`78
`
`at Chez Sovan
`
`at
`at Chez
`[Chez Sovan]
`\
`
`at
`
`78
`
`80}
`
`{figure 3
`
`LENGTH=3, POS=1
`
`LENGTH=3, POS=2
`
`LENGTH=3, POS=3
`LENGTH=3, POS=4
`
`LENGTH=3, POS=4
`
`LENGTH=2, POS=1
`
`LENGTH=2, POS=1
`
`LENGTH=2, POS=2
`
`LENGTH=2, POS=3
`
`LENGTH=1, POS=1
`
`LENGTH=1, POS=1
`
`MICROSOFT CORP. EX. 1014
`
`Page 5 of 25
`
`MICROSOFT CORP. EX. 1014
`Page 5 of 25
`
`

`

`US. Patent
`
`Apr. 29, 1997
`
`Sheet 4 of 12
`
`5,625,814
`
`80
`
`\ ® 7151‘” 4
`
`82
`
`‘
`
`STRING
`
`NWORDS
`
`90
`
`ARRANGE NMAP
`MAPPING ROUTINES
`
`IN HIERARCHY
`
`is NWORDS?
`
`N)
`
`ANALYZED?
`
`2 TRING FULLY
`
`
`MARK HITARRAY
`
`(LENGTH, POS) AS "HIT"
`
`
`
`
`
` SUBSTRING
`
`102
`
`MAPS USING MAP
`
`ROUTINE(J)?
`
`104
`
` REMOVE
`SUBSTRING AND
`STORE MAPPING
`
`DETERMINE TASK
`BASED UPON
`MAPPINGS
`
`108
`
`PERFORM TASK
`
`110
`
`® 1 12
`
`MICROSOFT CORP. EX. 1014
`
`Page 6 of 25
`
`MICROSOFT CORP. EX. 1014
`Page 6 of 25
`
`

`

`US. Patent
`
`Apr. 29, 1997
`
`Sheet 5 of 12
`
`5,625,814
`
`118
`
`figure 5
`
`120
`
`VINPUT
`
`DELINEATE A
`STRING FROM
`RECOGNIZED
`
`122
`
`126
`
`\A
`
`128
`
`A/
`
`/
`MAPPING R
`
`130
`
`TIN
`
`LEVE
`
`132
`
`'
`
`/
`*
`COMPUTATIONAL
`w
`
`1
`
`2
`
`3
`
`PHRASAL PROCESSOR
`
`LOW
`
`PATTERN PROCESSING
`
`MEDIUM
`
`DATABASE PROCESSING
`
`HIGH
`
`figure 6
`
`MICROSOFT CORP. EX. 1014
`
`Page 7 of 25
`
`MICROSOFT CORP. EX. 1014
`Page 7 of 25
`
`

`

`US. Patent
`
`Apr. 29, 1997
`
`Sheet 6 of 12
`
`5,625,814
`
`(96
`

`
`1 38
`YES
`
`1 40
`
`LENGTH =
`N ULL
`
`N0
`
`CHECK HITARRAY
`MATRIX FOR POS
`AND SUBPHRASE
`
`142
`
`
`
`
`156
`
`POS=P08+1
`
`
`
`
`
`POS+LENGTH
`> NWORDS+1?
`
`
`
`NO
`
`1
`
`YES
`
`NO
`
`158
`
`YES
`
`POS = 1
`LENGTH =
`
`160 LENGTH - 1
`
`‘
`
`'
`
`1 54
`
`SUBSTRING = STRING (POS,
`LENGTH)
`-
`
`figure 7
`
`MICROSOFT CORP. EX. 1014
`
`Page 8 of 25
`
`MICROSOFT CORP. EX. 1014
`Page 8 of 25
`
`

`

`US. Patent
`
`Apr. 29, 1997
`
`Sheet 7 of 12
`
`5,625,814
`
`147\
`
`148
`
`HITARRAY 15o
`
`152
`
`POSITION
`
`LENGTH
`
`
`VALUE
`
`\lmm-hmm-nooxloamhwm—ncomxxmm-bwma
`
`AN—‘OJN—k-P-CON—l-
`
`WWwCOOJOJCDNNNNNNNN—L—L—l—l—L—L—L—b—h
`
`mmmxlxlxlcnouovo:
`
`OOOOOOOOOOOOOOOOOOOOOOOO
`OOOOOOOOOO°.'
`
`figure 7a
`
`MICROSOFT CORP. EX. 1014
`
`Page 9 of 25
`
`MICROSOFT CORP. EX. 1014
`Page 9 of 25
`
`

`

`US. Patent
`
`Apr. 29, 1997
`
`Sheet 8 of 12
`
`5,625,814
`
`104
`
`STORE MAPPING, MAPPED
`SUBSTRING OBJECT AND
`REMOVE SUBSTRING
`
`164
`
`figure 8
`
`NWORDS = NWORDS - #
`WORDS IN REMOVED
`SUBSTHING
`
`166
`
`MARK
`
`HITARRAY(LENGTH,POS)
`AS "POSSIBLE"
`
`168
`
`220
`222
`
`FILL IN TASK
`TEMPLATE
`
`figure 13
`
`
`
`
`
`
`
`CAN TASK BE
`EXECUTED?
`
`EXECUTE TASK
`
`226
`
`MICROSOFT CORP. EX. 1014
`
`Page 10 of 25
`
`MICROSOFT CORP. EX. 1014
`Page 10 of 25
`
`

`

`US. Patent
`
`Apr. 29, 1997
`
`Sheet 9 of 12
`
`5,625,814
`
`172
`
`\
`
`figureB
`
`PHRASE LOOK—UP TABLE
`
`PHRASES
`
`INSTANCES
`
`
`
`
`
`1 74
`
`<COMPANY— 1>
`
`< FOOD-1>
`
`
`176
`<COUNTRY— 1 > "ICELAND"
`"ISAAC"
`<PERSON~1>
`<PERSON-2>
`
`
`<PERSON-3>
`
`
`
` "ITALY" <COUNTRY-2>
`
`
`
`
`
`<MEET— 1>
`<MEET—2>
`
`"LUNCH WITH"
`"SCHEDULE
`LUNCH WITH"
`
`
`
`
`
`180
`
` "ZORRO"
`<HERO— 1 >
`
`178
`
`<MEET— 1 >
`
`
`
`
`"LUNCH WITH"
`
`MICROSOFT CORP. EX. 1014
`
`Page 11 of 25
`
`MICROSOFT CORP. EX. 1014
`Page 11 of 25
`
`

`

`US. Patent
`
`Apr. 29, 1997
`
`Sheet 10 of 12
`
`5,625,814
`
`figure 10
`
`PATFERN LOOK—UP TABLE
`PATTERN
`INSTANCE /
`
`184
`
`
`
`ll
`
`
`<Timeslot>
`
`<I‘imeslot>
`
`186
`
`
`
`<num>
`pm
`
`<num> .
`"°" <num>
`
`
`
`(1‘IMESLOT>
`
`1
`
`
`
`"12:30 pm"
`12:30:00
`
` TIME = 1015
`LOCATION (12,7-12)
`
`MICROSOFT CORP. EX. 1014
`
`Page 12 of 25
`
`MICROSOFT CORP. EX. 1014
`Page 12 of 25
`
`

`

`US. Patent
`
`Apr. 29, 1997
`
`Sheet 11 of 12
`
`5,625,814
`
`<PERSON>
`
`
`
`
`
`
`
`NAME:
`BIRTHDAY:
`TELEPHONE:
`FAX:
`ADDRES S :
`HEIGHT:
`WEIGHT:
`
`192
`
`‘K/’
`
`
`
`INSTANCES: <PERSON-1> <PERS ON—2> <PERS ON-3>
`
`
`
`1946
`
`\
`
`
`
`NAME: BILL JONES
`
`1941N
`
`
`<PERSON—2> <BILL-2>
`NAME: BILL RIKER
`
`<PERSON- l > <BILL-1>
`
`NAME: BILL SETAG
`BIRTHDAY: NULL
`TELEPHONE: 408-555-1212
`FAX: NULL
`
`
`
`196
`
`194a
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ADDRESS: 123 MAIN STREET,
`CUPERTINO, CA
`HEIGHT: NULL
`WEIGHT: NULL
`
`
`
`<RESTAURANT— 1 >
`
`
`
`{Figure 11
`
`200
`
`/
`
`RESTAURANT: CI-IEZ SOVAN
`ADDRESS: 436 STEVENS CREEK BLVD.
`CUPERTINO, CA.
`
`RATING: 4 STAR
`
`MICROSOFT CORP. EX. 1014
`
`Page13of25
`
`MICROSOFT CORP. EX. 1014
`Page 13 of 25
`
`

`

`US. Patent
`
`Apr. 29, 1997
`
`Sheet 12 0f 12
`
`5,625,814
`
`208
`
`\
`
`210
`
`212
`
`214
`
`
`
`
`
`
`
`Scheduling
`
`Meet
`
`
`
`
`
`
`
`
`
`
` a
`
`6 7 3
`
`10
`
`
`
`
`
`
`
`
`Fax#
`Place
`Fax
` Print
`
`
`
`Calling
`
`Call
`
`
`
`
`
`
`
`
`
`(figure 12
`
`MICROSOFT CORP. EX. 1014
`
`Page14of25
`
`MICROSOFT CORP. EX. 1014
`Page 14 of 25
`
`

`

`5,625,814
`
`1
`METHOD AND APPARATUS FOR
`PROCESSING NATURAL LANGUAGE WITH
`. A HIERARCHY 0F MAPPING ROUTINES
`
`CROSS REFERENCE TO RELATED
`APPLICATIONS
`
`This application is a divisional of application Ser. No.
`08/215,064 filed on Mar. 18, 1994, now U.S. Pat. No.
`S.434,777, which is a continuation—in—part of parent patent
`applications Ser. No. 07/889,225, filed May 27, 1992 on
`behalf of Luciw et al., entitled. “Method and Apparatus for
`Deducing User Intent and Providing Computer Implemented
`Services,” now U.S. Pat. No. 5,390,281, and Ser. No.
`08/099,861, filed Jul. 30, 1993 on behalf of Luciw et al.,
`entitled, “Method and Apparatus for Providing Computer-
`Implemented Assistance,” now U.S. Pat. No. 5.477.477
`which are hereby incorporated by reference herein.
`BACKGROUND OF THE INVENTION
`
`invention relates generally to computer
`The present
`systems, and more particularly to methods for processing
`natural language input from users of computer systems.
`Computerized personal organizers are becoming increas-
`ineg popular. They perform such functions as keeping a
`calendar, an address book, a to-do list, etc. While these
`functions can be provided by conventional computer
`systems, they are more conveniently provided by personal
`organizers which are relatively inexpensive, small, and
`lightweight (i.e. portable). Personal organizers are available
`from such companies as Sharp and Casio of Japan.
`A relativer new form of computer, the pen-based com-
`puter system, holds forth the promise of a marriage of the
`power of a general purpose computer with the functionality
`and small size of a personal organizer. A pen-based com-
`puter system is typically a small, hand-held computer where
`the primary method for inputting data includes a “pen” or
`stylus. Apen-based computer system is commonly housed in
`a generally rectangular enclosure, and has a dual-function
`display assembly providing a viewing screen along one of
`the planar sides of the enclosure. The dual-function display
`assembly serves as both an input device and an output
`device. When operating as an input device,
`the display
`assembly senses the position of the tip of a stylus on the
`viewing screen and provides this positional information to
`the computer’s central processing unit (CPU). Some display
`assemblies can also sense the pressure of the stylus on the
`screen to provide further information to the CPU. When
`operating as an output device, the display assembly presents
`computer-generated images on the screen.
`The dual-function displays of pen-based computer sys-
`tems permit users to operate the computers as computerized
`notepads. For example, graphical images can be input into
`the pen-based computer by merely moving the stylus across
`the surface of the screen. As the CPU senses the position and
`movement of the stylus, it generates a corresponding image
`on the screen to create the illusion that the stylus is drawing
`the image directly upon the screen, i.e. that the stylus is
`“inking” an image on the screen. With suitable recognition
`software, the “ink” can be identified as text and numeric
`information.
`including pen-based computer
`Computer systems,
`systems, can also incorporate speech recognition. Although
`still mostly in the developmental stage, speech recognition
`has many potential uses in computer systems. For example,
`in a portable pen—based computer, speech input and recog—
`nition can be used to conveniently record dictated mes sages
`
`2
`or other spoken documents and to present the dictated words
`as an electronic text document for editing, printing, faxing,
`etc. or to input commands into the computer system.
`Stylus, speech. keyboard, and other forms of input can
`take the form of “natural language,” i.c. an “utterance.”
`Natural language is written or spoken input that is in a
`natural form that a person would use as if speaking or
`writing to another person. Non—natural language would be
`language, such as computer commands or programs, which
`is constrained by a limited syntax, structure, and/or scope.
`Natural language input permits a user to easily interface
`with a computer system using well—known language. One
`area in computer systems which is particularly well—adapted
`for natural language input is computerized assistance. Com—
`puters systems that use computerized assistance deduce or
`hypothesize a user’s intent and automatically provide a
`service based on the deduced intent. For example, a tasks
`such as printing a document or scheduling an appointment
`can be implemented by a computer system by deducing
`information from a user’s inputs or preferences. Natural
`language input allows a user to quickly specify a service or
`task to be implemented using a complex form and thus is
`well suited for use with computerized assistance.
`The recognition of natural language by computer systems
`has been ditficult due to the complex and shifting “rules” of
`human natural language. A user may input a natural lan-
`guage phrase, such as, “meeting with Bill on Tuesday at
`lunch” to instruct the computer system to schedule the
`meeting in a calendar application program. The computer
`system typically recognizes the individual words to recog-
`nize the meaning of the entire phrase. However, by recog—
`nizing small portions of the input phrase separately, a
`complete, overall meaning for the phrase is often incorrect,
`inaccurate, or incomplete.
`Natural language input has been typically processed using
`one of several methods. A natural phrase or string can be
`matched to a known phrase in a phrase lexicon used by the
`computer. Along command is typically processed by match—
`ing individual words or smaller phrases to items in the
`lexicon. Another method used to process natural language is
`to examine parts of the input phrase for a standard pattern.
`For example, a number including a colon and followed by
`“am” or “pm” fits the pattern of a phrase indicating time. A
`different method used to process natural language is to query
`a database that stores a large number of phrases and match
`a phrase to one or more items stored in the database.
`The abovementioned processes have typically been used
`with a fixed set of rules to interpret natural language. An a
`priori specification of known linguistic structures and their
`meaning is used to perform semantic interpretation. Each of
`the abovementioned processes has limitations in versatility
`and the time required to match a phrase. Natural language
`processing of the prior art has thus been inefiicient and rigid
`in its ability to recognize the meaning of natural language
`utterances.
`
`What is needed is a natural language processor that will
`quickly and accurately identify and map natural language
`input phrases. What is further needed is a natural language
`processor that identifies phrases according to a dynamic set
`of rules and data.
`
`SUMMARY OF THE INVENTION
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`65
`
`The present invention provides a natural language pro-
`cessor for the user of a computer system. The method of the
`present invention analyzes portions or substrings of a natural
`language input string to determine the meaning of the input
`
`MICROSOFT CORP. EX. 1014
`
`Page 15 of 25
`
`MICROSOFT CORP. EX. 1014
`Page 15 of 25
`
`

`

`5,625,814
`
`3
`string. Large substrings are analyzed and reduced in size
`until the substrings can be mapped into a database using
`mapping routines. Three dynamic mapping routines are
`preferably used in sequence in the present invention: a
`phrasal processor, a pattern processor. and a database query
`processor. These processors provide a robust method of
`identifying the meaning of natural language input
`More particularly. a method for deducing meaning from a
`natural language input comprises the steps of (a) receiving
`an ordered string of word objects having length and a natural
`language meaning. (b) selecting a word window length that
`is no greater than the length of the ordered string. and (c)
`successively moving the word window along the ordered
`string and analyzing the meaning of a substring of word
`objects that fall within the word window. The substring is
`removed from the ordered string if the substring has a
`recognized meaning. until all substrings of the ordered string
`that fit within the window have been analyzed. In a step (d).
`the word window length is reduced and step (c) is repeated
`until only an unrecognized residual of the ordered string
`remains. The ordered string is preferably received from
`strokes entered by a stylus on a display screen of apen-based
`computer or from a microphone receiving audible speech
`input. The step of analyzing the meaning of the substring
`preferably includes mapping the substring against a database
`using one or more mapping routines. The mapping routines
`are preferably arranged in a hierarchy. wherein a successive
`mapping routine is used to analyze the substring when a
`previous mapping routine in the hierarchy cannot map the
`substring. The method preferably further includes a step of
`determining a computer-implemented task specified by the
`ordered string using the recognized substrings and perform-
`ing the computer-implemented task.
`A method for recognizing meanings of natural language
`phrases comprises the steps of attempting to map at least a
`portion of an ordered string of word objects into a database
`according to a phrasal mapping routine. If the string portion
`does not map into the database using the phrasal mapping
`routine. 3 step of attempting to map the portion into a
`database according to a pattern mapping routine is accom-
`plished. If the pattern mapping routine is unable to map the
`string portion.
`then a database query mapping routine
`attempts to map the string portion. The mapping routines are
`preferably dynamic mapping routines referencing dynamic
`data structures. Remaining portions of the ordered string are
`preferably mapped according to the mapping routines until
`all word objects of the string have been analyzed.
`A preferred apparatus in accordance with the present
`invention implements the natural language processor on a
`computer system, and more preferably on a small, handheld
`computer system such as a personal digital assistant (PDA).
`The natural language can be input into the PDA by a variety
`of methods including a tablet-and-stylus. an input
`microphone, a keypad. etc.
`Because the natural
`language processor first analyzes
`larger substrings of an input string and then reduces the size
`of the substrings, natural language input is more quickly and
`reliably processed and its meaning determined. In addition.
`the present invention uses three dynamic natural language
`processors in succession to allow greatly increased sensi-
`tivity to the context of natural language input and enhanced
`capability in interpreting the input.
`These and other advantages of the present invention will
`become apparent to those skilled in the art upon a reading of
`the following specification of the invention and a study of
`the several figures of the drawing.
`
`4
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a block diagram of a pen-based computer system
`in accordance with the present invention;
`FIG. 2 is a top plan View of the pen-based computer
`system of FIG. 1;
`FIG. 3 Is a table illustrating the method of examining
`substrings of the present invention:
`FIG. 4 is a flow diagram illustrating the method of
`processing natural language of the present invention;
`FIG. 5 is a flow diagram illustrating the step of developing
`a string of FIG. 4;
`FIG. 6 is a table illustrating a hierarchy of mapping
`routines used in the present invention;
`FIG. 7A is a flow diagram illustrating the step of obtaining
`a substring of FIG. 4;
`FIG. 7B is a table showing the contents of the matrix
`HITARRAY;
`FIG. 8 is a flow diagram illustrating the step of removing
`a substring and storing a mapping of FIG. 4;
`FIG. 9 is a phrase look—up table used for the phrasal
`processor of the present invention;
`FIG. 10 is a pattern look-up table used for the pattern
`processor of the present invention;
`FIG. 11 is a type frame illustrating a database query
`processor of the present invention;
`FIG. 12 is a task template used for determining a task in
`the present invention; and
`FIG. 13 is a flow diagram illustrating the determine task
`and perform task steps of FIG. 4.
`DETAILED DESCRIPTION OF THE
`PREFERRED ENIBODIMENT
`
`The present invention is well suited‘for pointer—based
`computer systems such as the pen-based, pen-aware and
`mouse Controlled systems that are currently popular. The
`present invention is also well suited for computer systems
`implementing voice input and speech recognition. For the
`purposes of illustration. the invention will be described in
`connection with a pen—based system incorporating voice
`input However, the present invention is also suitable for
`other types of computer systems, such as mainframe
`systems. keyboard based systems. etc.
`As shown in FIG. 1. a pen-based computer system 10 in
`accordance with the present invention includes a central
`processing unit (CPU) 12. read only memory (ROM) 14.
`random access memory (RAM) 16. input/output (IIO) cir—
`cuitry 18. and a display assembly 20. The pen-based com-
`puter system 10 may also optionally include a mass storage
`unit 22, a microphone amplifier 23. a microphone 25. a
`keypad (or keyboard) 24, a serial port 26. an infrared (I/R)
`port 28. a speaker amplifier 27, a speaker 29. and a clock 30.
`The CPU 12 is preferably a commercially available.
`single chip microprocessor. While CPU 12 can be a complex
`instruction set computer (CISC) chip. it is preferable that
`CPU 12 be one of the commercially available, reduced
`instruction set computer (RISC) chips which are known to
`be of generally higher performance than CISC chips. CPU
`12 is coupled to ROM 14 by a unidirectional data bus 32.
`ROM 14 preferably contains the basic operating system for
`the pen—based computer system 10. CPU 12 is connected to
`RAM 16 by a bi-directional data bus 34 to permit the use of
`RAM 16 as scratch pad memory. ROM 14 and RAM 16 are
`also coupled to CPU 12 by appropriate control and address
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`45
`
`50
`
`55
`
`65
`
`MICROSOFT CORP. EX. 1014
`
`Page 16 of 25
`
`MICROSOFT CORP. EX. 1014
`Page 16 of 25
`
`

`

`5,625,814
`
`5
`busses, as is well known to those skilled in the art. CPU 12
`is coupled to the I/O circuitry 18 by bi—directional data bus
`36 to permit data transfers with peripheral devices.
`I/O circuitry 18 preferably includes a number of latches,
`registers and direct memory access (DMA) controllers. The
`purpose of I/O circuin 18 is to provide an interface between
`CPU 12 and such peripheral devices as display assembly 20,
`mass storage 22, amplifier 23, keypad 24, serial port 26, I/R
`port 28. and amplifier 27.
`Display assembly 20 of pen-based computer system 10 is
`both an input and an output device. Accordingly,
`it
`is
`coupled to I/O circuitry 18 by a bi-directional data bus 38.
`When operating as an output device, the display assembly 20
`receives data from I/O circuitry 18 via bus 38 and displays
`that data on a suitable screen. The screen for display
`assembly 20 is preferably a liquid crystal display (LCD) of
`the type commercially available from a variety of vendors.
`The input device of display assembly 20 is preferably a thin,
`clear membrane which covers the LCD display and which is
`sensitive to the position of a stylus 38 on its surface. With
`such a structure, the membrane of the display assembly 20
`can serve as an input “tablet.” These position sensitive
`membranes are also readily available on the commercial
`market. Alternatively, other types of tablets can be used,
`such as inductively coupled tablets. Combination display
`assemblies such as display assembly 20 which include both
`the LCD and the input membrane are commercially avail-
`able from such vendors as Scriptel Corporation of
`Columbus, Ohio.
`Some type of mass storage 22 is generally considered
`desirable. Mass storage 22 can be coupled to I/O circuitry 18
`by a bi-directional data bus 40. However, the mass storage
`22 can be eliminated by providing a sufficient amount of
`RAM 16 to store user application programs and data. In that
`case. the RAM 16 can be provided with a backup battery to
`prevent the loss of data even when the pen—based computer
`system 10 is turned off. However, it is generally desirable to
`have some type of long term mass storage 22 such as a
`commercially available miniature hard disk drive, nonvola-
`tile memory such as flash memory, battery backed RAM, a
`PCMCIA card, or the like.
`Microphone amplifier 23 is coupled to I/O circuitry by
`bus 41 and includes well-known components which convert
`a speech signal input in microphone 25 to an analog signal,
`such as amplifiers, preamplifiers, etc. Amplifier block 23 can
`also include components which convert the analog signal to
`digital signals that can be used with CPU 12, such as analog
`to digital converters (ADC’s). The recognition of words
`spoken by a user can be implemented in software executed
`by CPU 12, and is well known to those skilled in the art.
`The keypad 24 can comprise an array of mechanical
`buttons or switches coupled to I/O circuitry 18 by a data bus
`42. Alternatively, keypad 24 can comprise an entire, stan—
`dard QWERTY keyboard In the present embodiment, a
`separate keypad 24 is not used in favor of a “pseudo” keypad
`24'. This “pseudo” keypad 24' comprises “button” areas
`which are associated with a bottom edge of the tablet
`membrane that extends beyond the lower edge of the LCD
`display. These button areas are defined by a printed or
`silk-screened icons which can be seen through the transpar-
`ent membrane of the input tablet. When the “buttons” are
`selected by engaging the stylus 38 with the membrane over
`these printed icons, the membrane senses the pressure and
`communicates that fact to the CPU 12 via data bus 38 and
`I/O 18. An example of pseudo keypad 24' is shown in FIG. 2.
`Serial port 26 is coupled to I/O circuitry by a
`bi—directional bus 44. The serial port 26 can be used to
`couple the CPU to external devices and networks.
`
`6
`Infrared (I/R) port 28 is coupled to I/O circuitry by a
`bi-directional bus 46. The HR port can be used for outgoing
`information (e.g. to control a printer or some other external
`device, or to communicate with other computer systems) or
`for incoming information from other computers or devices.
`Speaker amplifier 27 is coupled to I/Opircuitry by a bus
`47. Amplifier 27 is used to drive a speaker 29 with signals
`output by CPU 12 and can also include components such as
`filters, specialized sound chips, etc. Speaker 29 can be used
`for audio output such as sound effects, synthesized voice,
`and other user feedback
`
`Clock 30 preferably comprises a real-time clock to pro-
`vide real-time information to the system 10. Alternatively.
`clock 30 can simply provide regular clock pulses to, for
`example, an interrupt port of the CPU 12 which can count
`the clock pulses to provide the time function. However, this
`alternative clock embodiment tends to be wasteful of CPU
`processing power. Clock 30 is coupled to CPU 12 by a data
`bus 48.
`
`In operation. information is input into the pen-based
`computer system 10 by “writing” on the screen of display
`assembly 20 with the stylus 38. Information concerning the
`location of the stylus 38 on the screen of the display
`assembly 20 is input into the CPU 12 via data bus 38 and I/O
`circuitry 18. Typically, this information comprises the Car-
`tesian (i.e. x & y) coordinates of a pixel of the screen of
`display assembly 20 over which th

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket