throbber
[I2] INTERNATIONAL aPPLlCATlON PUBLISHED UNDER THE PATENT COOPER.-KTION TREATY {PCT}
`
`I W an
`‘”’
`
`IP
`ll
`“,‘,:c:€;:?,m:*;*:f,:‘:u
`
`0
`
`'
`'
`“g““‘”*'°“
`
`'
`
`Illlll|l|||||||Il||||||||ll||l||||||||||||
`
`(43) International Pnb|i.:a1inn Date
`14 February 2002 (14.02.2002)
`
`PCT
`
`(I9) lI1temationalPubIicalion Number
`wo 02/12932 A2
`
`luterulalimial Palenl Classification’:
`
`G06?
`
`Illlenlaliollal Applicalioil Number:
`
`PC'lTl]S(}1.f3503(i
`
`International Filing Date:
`
`3 m1gu.~‘t2Dfll [U3.|.'i3.'200i!
`
`Filing Language:
`
`P“b|i(-ntion Language:
`
`Iinglish
`
`Priority Data:
`U9.I'fi34.|[l?§
`
`8 August 2I)(J(}l[l8.l]8.2ll0U}
`
`US
`
`Applicant: OBJECT SERVICES A ND CONSULTING.
`INC. |USIUS|: ‘.‘T.‘5 Deep Valley '[‘r:u'1, I’luno_. TX 75203
`
`l"-I. GB,(‘vI). (iii. Gil,
`ES.
`CZ. DIE. DK. DM. DZ. EC. [Eli
`UM. HR,ll1].lD.[l..lN.IS.JI’. Kli. KG. KI’. KR. KZ. |.{I.
`LK‘ LR} L3, |;|'_ |‘[_[_ |‘\.r‘ MA‘ MD‘ |\,1(;. MK: MN‘ Mwl
`MX. M2, N0, N1/., ]’I._. I71‘. RO. RU, SI), Sli. SG, 51. SK.
`5]__ TL '[‘M_ '['R_ T1" '1‘; L13‘.
`'[_;G' U?" \.rN' YU_ gm zw_
`
`_
`Designated States irczgionab:
`3]-.
`
`.='\R|P() pmcm (UH. GM,
`ll?"
`iiL)]'“(I5i&l['l
`M D. RU. TJ. TM). liuropcam
`pun.-nl (AM. AZ. BY. KG.
`peucnl Ml‘. l-‘Eli. (‘||.('Y. DIE. IJK. lib‘. l-"I. FR.€}B.GR.
`IIE.
`IT. U]. ]\-l(I. NL. VI‘. SE, TR}. OAPI palcnl {Bli B1. CI‘.
`(10. (21. CM. (EA, GN. GQ. GW. ML. MR. NE, SN. ‘I'D.
`Tm,
`
`‘-US"
`
`Published-
`
`Age“ 1: LANGLEY‘ H“ Dale’ Jr‘: The Law Uffiw 01. H
`1301.: |.0ngicy. .Tr.. P.(.‘.. am Wcril Lynn.
`."\Lt!i1in.TX "arms
`fl.l.‘a‘).
`
`wu'.-hoax! irriematioriaf Search risport and to be repaabhshm‘
`’‘‘’°’’ ’‘’°“'‘’‘ “"""“” ""*“”"
`
`Nor two-fetter codes and other abbrm-:'an'o::s. !'E.f.|'i'r' to the "Gum'-
`Designaled States rha.':'om;-I): Al-E, AG, .»\I._ AM. AT. AU, mice .N'ars.*.-: an Codes and.—fbbrwia.*i0ns"appearing at the begin-
`.=\'/., BA. BB, BG, BR, BY, B1/., (I.-’\, (TI l. (TN, (10, CR, (TU.
`Jiing nfeach rcgufar mac ojlrins P{.‘1“{Ia:em>_
`
`(54) Title: {IIJIDIED N:"\'|'lIR;'\l. |.AN(ili.'\(iI‘I |N'I'|iR]-‘.-'\(?|‘. SYSTIEM AND ]\-'II']’|‘IIOI)
`
`...-..\_\.........--.....
`
`WO02/12982A2
`
`(57) Abslracl: A Iriclilud ul‘ guialcd nuluru] language ititcrfacc includus inputling lo :2 thin ciicnl 1| query. cuniliiullicalling Iu an in-
`Icrlidcc iE‘IlI;l‘mCi.iii11'}'. communicating to an inicrlhcc descriptor dale: snurrc. gcncniling am ililclfacc :.lc.~:u1'ip:or. cunimuiiicalling the
`inlcrfacc :_icsu::|'i]1Lur to the inlcrfacc inlcnncdiary. communicaling ihc inlc1'I‘:m: dcscliplur lo :1 parser Farm, rL:qL1c.»4li:i_g an approiirialc
`purse!‘ currcsp0ndin_s_z Lu [he 10 [he interface descfi plur. assigning an apprupriale parser. paming. communicating a lrdlislalinan from
`Ihn: slap oI‘par5ing.1uIhcin1cr|”accinlcrnl:x|iury.aIi(|communicating the lrunslulinn to ihi: Ihin client. Tht.‘ thin client can ht: geo-
`graphically rcniutc Iinm any or all of the slope: nllicr than Ihc step of inputting. sucii Iiint the niclhn-:1 is pcrforrnztd nvcr a disparalc
`enterprise. such as a nclwnrk, for example. the |nlcrm:l_
`
`MICROSOFT CORP. ET AL.
`
`EXHIBIT 1014
`
`Page 1 of 85
`
`

`

`WO 02/12982
`
`PCT/USOl/25036
`
`GUIDED NATURAL LANGUAGE INTERFACE SYSTEM AND METHOD
`
`Background of the Invention
`The present invention generally relates to computers and computing and, more
`
`particularly, to natural language interfaces (NLI) for user interfacing with computing devices to
`
`interact with computer applications, for example, database programs, on such devices or
`
`5
`
`interconnected devices, by inputting stated questions or commands in natural language, such as
`
`English language and grammar, to which the devices and applications respond.
`
`Computational linguistics and natural language processing are rather specialized
`
`computing disciplines
`
`that relate to the computer user and his ability and mode of
`
`communication with computing devices. In the sub-area of natural language processing, more
`
`10
`
`specific areas of research and development include information retrieval from text (for example,
`
`using keywords as in conventional search engines, such as Google™); question answering from
`
`databases, knowledgebases, or text (for example, linguistically motivatec;l techniques using
`
`grammars and lexicons but also pattern-based techniques); natural language generation; natural
`
`language translation; text-to-speech; speaker recognition; ontologies (such as, for example,
`
`15 Wordnet™), and conversational analysis. A natural language interface (NLI), as the name
`
`implies, is a particular mode or method of user interaction with a computing device or devices in
`
`which the user employs natural language, such as the English language and grammar, to
`
`communicate inputs, for example, queries and commands, to the devices and applications of the
`
`devices. NLis can often be desired modes for communicating with computing devices, software
`
`20
`
`applications, and related hardware and software components, depending on the particular
`
`application or discipline for the devices and in the case of experienced as well as less(cid:173)
`
`sophisticated users.
`
`Certain types of natural language interfaces are conventional. In the conventional NLls,
`
`the user types or speaks unconstrained commands (including queries) with the expectation that
`
`25
`
`the system will understand the speech acts and take the desired action (e.g., return an answer).
`
`As can be understood, there are limitations to the capabilities of the conventional NLis. For
`
`example, computing power and features have not previously been adequate to encompass all
`
`possible variations and uses of language and grammar. Moreover, the tremendously large
`
`numbers and variables of words, contexts, and meanings with any natural language are nearly
`
`30
`
`impossible to accurately process under all applicable language rules and variations.
`
`Because of the limitations of computing and NLis in the past, computing users who
`
`interface using NLis have typically not fully understood the limited scope and capabilities, or
`
`"coverage", of the particular NLis (such as, in terms of the subset of natural language a system
`
`Page 2 of 85
`
`

`

`WO 02/12982
`
`PCT/USOl/25036
`
`2
`
`understands, typically delimited by lexical, semantic, grammatical, and domain coverage
`
`boundaries). Consequently, NLI commands and language are often not fully or properly
`
`interpreted or understood by the NLI or computing system having such interface, and the user
`
`likely will not have sufficient command of the natural language subset and limitations of the NLI
`
`5
`
`and extensive training or learning can be required in order to make appropriate and desired use
`
`of capabilities of the NLI and related system. The NLis have not necessarily made interfacing
`
`more inherently understandable or easier to the user. In other words, the typical user of natural
`
`language commands and NLls for interfacing with computing devices can risk overshooting or
`
`undershooting the underlying application system's capabilities, because of the limitations of
`
`10
`
`those capabilities with the present states of computing capacity and technologies and because of
`
`the limits of the user's knowledge and understanding.
`In addition to the implications to computing users who interface via NLis, computer and
`
`software developers of NLis for applications have the overwhelming and virtually impossible
`
`task of defining a large number of all possible words, grammar rules, and domain translations
`
`15
`
`necessary in efforts to increase NLI coverage. Because of the magnitude of the efforts in such
`
`development, NLI creation is an expensive process, even to retarget from one database to
`another. All conventional NLis have limited and mismatch of coverage problems. In the past,
`
`this has often caused users who experience the coverage problems to grow frustrated, and fail to
`
`make full use or entirely discontinue use of conventional NLis.
`
`20
`
`Previously, NLis have generally been delivered with a set of limited form or "canned"
`
`example queries. Users of the NLis have been encouraged to use these examples or only slight
`
`variations thereof to obtain satisfactory results. Nonetheless, these example queries, even if only
`
`slightly varied, often tend to interfacing failures or unexpected or incorrect results. Several
`
`conventional NLI products include: Microsoft Easy Query™, ELF™, and iPhrase™. No doubt,
`
`25
`
`there are other conventional NLis and other NLI products. All such known NLI technologies
`
`have been limited, however, in acceptability to few useful applications and to very narrow and
`
`simple applications in any event, and none have become pervasively used or available in the
`
`industry. This is the result of the problems of the conventional NLis.
`
`Of particular note in the early 1980's, Texas fustruments developed the so-called
`
`30
`
`"NLMenu" system, a natural language interface technology that sought to address certain of the
`
`foregoing problems of NLis. NLMenu employed substantially the same grammar, lexicon, and
`
`parsing found in all other NLI systems at the time and even those conventional to date. One
`
`nuance at the time of the NLMenu system was that the typical parser was modified in the system
`
`to parse a partial sentence and, then, predictively find all next legal completions (i.e., the
`
`Page 3 of 85
`
`

`

`WO 02/12982
`
`PCT/USOl/25036
`
`3
`acceptable next words or phrases under the NLMenu interface lexicon and grammar) and display
`
`these legal completions in a constellation menu (i.e., a menu displayed to the user that lists all
`
`next lexical choices organized by grammatical category). The user was then able to select from
`
`the constellation menu a next word or phrase in the menu, which word or phrase was an
`
`5
`
`appropriate legal completion of the particular natural language input sentence, query, command
`
`or other sequence. The NLMenu system is described in U.S. Patent No. 4,829,423, and certain
`
`additional aspects are described in U.S. Patents Nos. 4,688,195 and 5,083,268.
`
`As with the other conventional NLls, the NLMenu system presented many of the
`
`problems previously described. Moreover, the NLMenu system is quite limited in that it is a
`
`10
`
`single-user system in which constellation menus are displayed on the user's computing device
`
`and interact with a single, complex full-featured parser. The constellation menus show a single
`
`screen-shot of the user's display of the entire lexicon useable by the user to interface in the
`
`natural language, but this is a disadvantage because the menus occupy considerable screen area
`
`of the user's display and often obscure other entities or features displayed on the screen that can
`
`15
`
`be the subject of the user's efforts in lodging a natural language query. Switching among and
`
`moving features around on the screen of the display can be inconvenient for the user.
`
`Furthermore, the parser of the NLMenu system is full-featured and so useful for various
`
`situations, but in many instances the parser is excessive in features and cumbersome (i.e.,
`
`overkill) where alternative and simpler kinds of parsers are more useful and practical.
`
`In
`
`20
`
`general, the NLMenu system has been useable for certain applications, but not others.
`
`Particularly, the system is not particularly effective for use in present computing environments,
`
`in which scalability, multi-user capability, wide area and remote geographic networking, and
`
`reduced or "thin client" hardware and software is desired.
`
`The present invention overcomes these and other problems of the prior technology.
`
`25
`
`Summary of the Invention
`Embodiments of the present invention include systems and methods for
`
`light-weight
`
`guided NLI client interfaces and supporting parser farms on servers, available concurrently and
`
`in real time to a plurality of users, over disperse and geographically disparate networks, such as
`
`the Internet.
`
`30
`
`An embodiment is a system for a natural language interface. The system includes a client
`
`device, a server device, and a communications network interconnecting the client device and the
`
`server device.
`
`Another embodiment is a system for a natural language interface. The system includes a
`
`thin client, a parser farm, a parser, a first communications network for communicatively
`
`Page 4 of 85
`
`

`

`WO 02/12982
`
`PCT/USOl/25036
`
`4
`
`connecting the thin client and the parser farm, and a second communications network for
`
`communicatively connecting another element selected from the group consisting of the parser
`
`farm and the parser.
`
`Yet another embodiment is a system for a natural language interface. The system
`
`5
`
`includes a thin client, an interface intermediary, a first communications network connecting the
`
`thin client and the interface intermediary, an interface descriptor data source, a second
`
`communications network connecting the interface descriptor data source and the interface
`
`intermediary, a command intermediary, a third communications network connecting the
`
`command intermediary and the interface intermediary, a parser farm, a fourth communications
`
`10
`
`network connecting the parser farm and the interface intermediary, a parser, a fifth
`
`communications network communicatively connecting the parser to the parser farm, and a sixth
`
`communications network for communicatively connecting the parser and the interface
`
`intermediary.
`
`Another embodiment of the system is a method of a natural language interface. The
`
`15 method includes inputting to a thin client a query, requesting an appropriate parser for the query,
`
`assigning an appropriate parser, parsing the query, and retmning a parsed translation.
`
`Yet another embodiment is a method of parsing. The method includes inputting a query
`
`at a first location and parsing the query at a second location.
`
`Another embodiment is a method of a natural language interface. The method includes
`
`20
`
`inputting to a thin client a query, communicating to an interface intermediary, communicating to
`
`an interface descriptor data source, generating an interface descriptor, communicating the
`
`interface descriptor to the interface intermediary, communicating the interface descriptor to a
`
`parser farm, requesting an appropriate parser corresponding to the interface descriptor, assigning
`
`an appropriate parser, parsing, communicating a translation from the step of parsing, to the
`
`25
`
`interface intem1ediary, and communicating the translation to the thin client.
`
`Brief Description of the Drawing
`The present invention may be better understood, and its numerous objects, features, and
`
`advantages made apparent to those skilled in the art by referencing the accompanying drawings.
`
`Fig 1 illustrates embodiments of a client-server system, including a client device and a
`
`30
`
`server device, communicatively connected by a network, such as the futemet, for serving as a
`
`natural language interface system.
`
`Page 5 of 85
`
`

`

`WO 02/12982
`
`PCT/USOl/25036
`
`5
`
`Fig. 2 illustrates embodiments of a method of operation of the clientwserver system of
`
`Fig. 1, providing a multi-user, multi-device, geographically disparate communications system
`
`having a natural language interface.
`
`Fig. 3 illustrates embodiments of a system for a natural language interface over a network
`
`5
`
`of multiple and geographically disparate users and devices, such as the Internet.
`
`Fig. 4 illustrates embodiments of a method of a natural language interface over a network
`
`of multiple and geographically disparate users and devices, such as the Internet.
`
`Fig. 5 illustrates embodiments of a natural language interface system, as found in one
`
`such exemplary system referred to as the LingoLogic (LL) system.
`
`10
`
`Fig. 6 illustrates embodiments of a distinctive avatar employed to initiate a query or
`
`command of the natural language interface system of Fig. 5.
`
`Fig. 7 illustrates embodiments of a sequence of web-links and a popup menu used to
`
`specify a query or command of the natural language interface system of Fig. 5.
`
`Fig. 8 illustrates embodiments of a cascading menu used to specify a query or command
`
`15
`
`of the natural language interface system of Fig. 5.
`
`Fig. 9 illustrates embodiments of phrase buttons used to specify a query or command of
`
`the natural language interface system of Fig. 5.
`
`Fig. 10 illustrates embodiments of a type-in display used to specify a query or command
`
`of the natural language interface system of Fig. 5.
`
`20
`
`Fig. 11 illustrates embodiments of a drop down menu used to specify a query or
`
`command of the natural language interface system of Fig. 5.
`
`Fig. 12 illustrates embodiments of inputs and outputs of a Portable Specification Editor.
`
`Fig. 13 illustrates embodiments of methods of importing an ODBC database schema into
`
`the Portable Specification Editor.
`
`25
`
`Fig. 14 illustrates embodiments of a screen-shot of the Portable Specification Editor,
`
`illustrating how an interface designer can create a portable specification from a database schema
`
`that can then be used to auto-generate a guided natural language interface.
`
`Fig. 15 illustrates embodiments of a simple expert used to specify a value in a query or
`
`command of a natural language interface system.
`
`Page 6 of 85
`
`

`

`WO 02/12982
`
`PCT/USOl/25036
`
`6
`Fig. 16 illustrates embodiments of a data source expert used to specify a value in a query
`
`or command of a natural language interface system, wherein the value is shown during and after
`
`invocation of the expert.
`
`Fig. 17 illustrates embodiments of a translation of a sample query into SQL, in
`
`5
`
`accordance with a natural language interface system, such as the LingoLogic system.
`
`Fig. 18 illustrates embodiments of execution results of a sample query in a tabular format
`
`for a natural language interface system, such as the LingoLogic system.
`
`The use of the same reference symbols in different drawings indicates similar or identical
`
`items.
`
`10
`
`Detailed Description
`In computing, communications and processing devices, embodiments provide guided
`
`interfaces to such devices and their applications, which guided interfaces are operable as
`
`distributed parts of a guided language processor to client devices and server devices, such as in a
`
`computer or communications network. Particularly, completion-based interfaces, such as
`
`15
`
`grammar-driven menu-based restricted language interfaces (or so-called "natural language
`
`interfaces" (NLI)), and also other interfaces such as guided navigation of categories, path
`
`expressions, and languages other than natural languages, as well as speech interfaces to such
`
`guided interfaces, are operable distributed among client and server elements. This distribution
`
`enables predictive parsing, as well as translation and execution, concurrently and in real time,
`
`20
`
`supporting pluralities of users to simultaneously specify pluralities of queries or commands
`
`interfaced to pluralities of devices and applications, including over a network or other distributed
`
`computing environment. The embodiments are operable, for example, on the Internet and World
`
`Wide Web network. Additionally, embodiments are operable in local area networks and even on
`
`a single computer or device.
`
`25
`
`Referring to Fig. 1, a system 100 for a communicative network includes a server element
`
`102 and a client eleme:qt 104. The client element 104 is communicatively connected . to the
`
`server element 102 by a communicative connector 106. The server element 102 is any of a wide
`
`variety of processing or communications devices, such as, for example, a computer, a processor,
`
`a circuit, memory or other element within a processor or processing device, or any device
`
`30
`
`including any such matter, which server element 102 is capable of functioning to receive a
`
`communicated request and appropriately respond. The client element 104 is also any of a wide
`
`variety of processing or communications devices, such as, for example, those previously
`
`mentioned, which client element 104 is capable of sending or causing the sending of a request
`
`Page 7 of 85
`
`

`

`WO 02/12982
`
`PCT/USOl/25036
`
`7
`and receiving a communicated response. The communicative connector 106 is any of a wide
`
`variety of communication channels and elements therefor, including, for example, a wire, a
`
`circuit, a bus, a cable, a wired or wireless communications network, or any other device or
`
`component that allows for communications, electrical or otherwise, between elements
`
`5
`
`functioning to communicate in a client-server manner. For purposes hereof, a client-server
`
`system or function is to be broadly construed to include any and all communicative arrangements
`
`in which elements, devices, or components intercommunicate, directly or through intermediary
`
`systems, by generation of a request, receipt of the request, generation of a response, and
`
`occurrence of the response. The client-server system and function, as so construed, includes
`
`10
`
`client-server operations over a network, such as the Internet or World Wide Web, another wide
`
`area network, a local area network, and even within a device among elements, components, or
`
`peripherals of the device, such as within a single computer or other processing device.
`
`In operation, the system 100 operates, at least in part, in a client-server manner, such that
`
`the client element 104 delivers a request over the communicative connector 106 to the server
`
`15
`
`element 102. The server element 102 receives the request and directly or indirectly processes it.
`
`The server element 102 then appropriately responds to
`
`the request, for example, by
`
`communicating a response signal back to the client element 104 over the communicative
`
`connector 106. Although the communicative connector 106 is illustrated in Fig. 1 as a simple
`
`line connection between the client element 104 and the server element 102, it is to be understood
`
`20
`
`that the communicative connector 106 can be any of a wide variety of communicating
`
`intermediate devices, connections, and elements of a network or system
`
`that are
`
`communicatively connected to enable inter-communications in the client-server manner just
`
`described. For example, the communicative connector 104 in certain embodiments is the
`
`Internet and each of the client element 104 and the server element 102 is a separate, disparate
`
`25
`
`processing device connected to the Internet. Of course, as has been more fully described, all
`
`other network or interconnection of devices or components is possible and included within the
`
`scope of the embodiments.
`
`Referring to Fig. 2, a method 200 operable on the system 100 of Fig. 1 includes a step
`
`202 of inputting a query or command to a client. In the step 202, for example, a human user
`
`30
`
`inputs, via input components such as a keyboard to a computing device as the client, a database
`
`or other application query in a natural language, such as English grammar and lexicon, through a
`
`natural language interface (NLI). In a step 204, a request is made, such as via the client to
`
`another device, for example, a server, for an appropriate parser for parsing the particular NLI
`
`input of the step 202.
`
`Page 8 of 85
`
`

`

`WO 02/12982
`
`PCT/USOl/25036
`
`8
`
`Referring to Figs. 1 and 2, in conjunction, if, for example, the method 200 operates on a
`
`system 100 that includes the Internet as the communicative connector 106 between a client
`
`element 104 and the server element 102, the step 202 of inputting is performed at the client
`
`element 104 and the step 204 of requesting an appropriate parser is communicated over the
`
`5
`
`communicative connector 106 to the server element 102. The server element 102 can maintain
`
`or make accessible a selection of parser from among one or more parsers of a so-called "parser
`
`farm". In this manner, an appropriate parser for the particular input from the client element 104
`
`is useable, and the parser need not (although it may be) available in or at the client element 104
`
`itself. In the trade, the term "thin client" is sometimes used to refer to a client in a client-server
`
`10
`
`system which does not itself have substantial processing or operative capability within the client,
`
`and such thin client relies on other units, such as a server, for processing and operative
`
`capabilities available on the client's request. The method 200 is particularly applicable to such
`
`thin client environments, as those skilled in the art will understand and appreciate.
`
`Continuing to refer to Fig. 2, a step 206 of the method 200 assigns the appropriate parser
`
`15
`
`for parsing the input of the step 202. The appropriate parser, in any instance, will depend on
`
`several variables, including, for example, the numbers and types of parsers available for the
`
`application and the particular system 100 and method 200 capabilities and operations. Selection
`
`of parsers among several choices is subject to many possibilities. On selection of the parser in
`
`the step 206, the parser in a step 208 performs a parse of the query or command input in the step
`
`20
`
`202. The step 208 is repeated until a well formed grammar constituent is specified. Once the
`
`parse in the step 208 is completed, a step 210 returns a translation from the parser of the parsed
`
`query or command.
`
`Referring to Figs. 1 and 2, in conjunction, in a possible example in which the method 200
`
`operates on a system 100 that includes the Internet as the communicative connector 106 as
`
`Page 9 of 85
`
`

`

`WO 02/12982
`
`PCT/USOl/25036
`
`9
`
`smart phone, a set top box, a Palm™ device,· a toy controller, a remote control and any other
`
`device having functions of input and request communication. The user of the thin client 302 is
`
`most likely a human user, however, it can alternatively be a software or hardware agent which
`
`interacts with the thin client 302 to input and receive responses.
`
`5
`
`Maintained on the thin client 302 can be a host application (not shown), such as a
`
`software program, embedded program, or hardware functional unit, which initiates a
`
`communicative interaction by the thin client 302 with other elements of the implementation 300.
`
`Examples of host applications are a web browser, Microsoft Word™, or a specialized or other
`
`stand-alone application.
`
`10
`
`In addition, the thin client 302 can include a target application (not shown) that receives a
`
`translation (as hereafter described) of a query or command con-esponding to the input to the thin
`
`client 302 and returns results (as hereafter described), including status messages, for example,
`
`for display on the thin client 302. The target application can be included in or the same as, or
`
`different or distinct from, the host application of the thin client 302. Several exemplary types of
`
`15
`
`target applications include database management system (DBMS) systems, word processors,
`
`game programs, robots with sensors and feedback, toys, video cassette recorders (VCRs),
`
`military equipment, and other machines and devices with software interfaces.
`
`The thin client 302 can include various elements, including, for example, an input/output
`
`display that the user can use to construct queries and commands and view results. The thin client
`
`20
`
`302 can be any of a variety of presently available and even future applications and devices, for
`
`example, as simple as a web page with no onboard processing, where the query or command
`
`then-input by the user plus choices for next inputs are displayed, or the thin client 302 can be
`
`implemented using compiled, interpreted, or scripted languages such as CIC++, Java, or
`
`Javascript. The thin client 302 can even be generated on-the-fly, such as by an interface
`
`25
`
`intermediary 312 hereafter discussed. Moreover, depending on the particulars of the
`
`implementation 300, the thin client 302 can run or operate as an independent process or within
`
`another environment (not shown), such as a web browser, or as a plug-in or extension within
`
`another application (not shown).
`
`The implementation 300 also includes an interface descriptor data source 304. The
`
`30
`
`interface descriptor data source is software or hardware that performs logical operations and
`
`memory for locating and accessing one or more interface descriptors 306. Each interface
`
`descriptor 306 is a data structure that describes a guided interface, such as a NLI, of the
`
`Page 10 of 85
`
`

`

`WO 02/12982
`
`PCT/USOl/25036
`
`10
`
`implementation 300. For example, the interface descriptor for the particular guided interface can
`
`have the format:
`
`<LL properties, grammar, lexicon, portable specification, experts, translations>.
`
`Of course, other formats are possible to achieve the same objective of describing the particular
`
`5
`
`guided interface .that is appropriate to the implementation 300, for the particular user and thin
`
`client 302.
`
`In operation of the implementation 300, the interface descriptor 306 (or a reference,
`
`direct or indirect, to the interface descriptor) is found, located, derived, or otherwise presented or
`
`obtained by the interface descriptor data source 304. For example, the interface descriptor data
`
`10
`
`source 304 can obtain the interface descriptor 306 on a web page or possibly from the interface
`
`descriptor data source 304, itself. The interface descriptor data source 304, upon locating or
`
`otherwise obtaining the relevant interface descriptor 306 makes the interface descriptor 306
`
`available to the implementation 300, such as by sending the interface descriptor 306 (or a
`
`reference or handle to it) to a parser farm 308 in order to initialize an appropriate parser 310, as
`
`15
`
`hereinafter further detailed. Exemplary types of the interface descriptor data source include
`
`traders, databases, search engines, and other logical operators and applications.
`
`An interface intermediary 312 also is included in the implementation 300. The interface
`
`intermediary 312 interacts with the thin client 302, the interface descriptor data source 304, and
`
`the parser farm 308 and parser 310. The interface intermediary 312 functions to directly interact
`
`20 with the parser 310, including by receiving next items to display as dictated by the parser 310
`
`and preparing displays dictated by the parser 310 for the thin client 302. The interface
`
`intermediary also receives selections from the thin client 302 based on input thereto and
`
`generations by the thin client 302, and delivers or returns these to the parser 310. The interface
`
`intermediary 312 can be part of or inherent in the thin client 302 and its operations or,
`
`25
`
`alternatively, separate from the thin client 302 at the location of the thin client 302 (such as a
`
`peripheral or application to the thin client 302), on a separate, disparate server device, or
`
`otherwise. Location of the interface intermediary separate and distinct from the thin client 302
`
`lessens download burdens and processing requirements of the thin client 302.
`
`The parser farm 308 of the implementation 300 serves to manage one or more of the
`
`30
`
`parsers 310 available to the thin client 302 via the interface descriptor data source 304 and
`
`interface intermediary 312. Th~ parser fam1 308 manages the parsers 310 as a database or other
`
`access source, either by assigning or dictating use of an existing parser 310 of or available to the
`
`parser farm 308 or by creating or generating a new parser 310 and assigning or dictating use of
`
`Page 11 of 85
`
`

`

`WO 02/12982
`
`PCT/USOl/25036
`
`11
`
`the new parser 310 for the implementation 300 and its operation. The parser farm 308 can, for
`
`example, make available for use the new parser 310, by returning to the implementation 300 an
`
`applicable handle or other locater for the parser 310.
`
`The parser 310 of the implementation is a program or other sequence of steps or logical
`
`5
`
`operations that receives input in the form of sequential source program instructions, interactive
`
`online commands, markup tags, or some other defined interface and breaks them into parts (for
`
`example, the nouns (objects), verbs (methods), and their attributes or options) that can then be
`
`managed by other programming or elements (for example, other components of an application or
`
`device). The parser 310 can also check to see that all input has been provided that is necessary.
`
`10
`
`fu the implementation 300, the parser 310 is initialized based on the interface descriptor 306
`
`from the interface descriptor data source 304. Once the parser 310 is so initialized, the parser
`
`310 generates a choice list, accepts a choice, and iterates. The parser 310 can, but need not
`
`necessarily, operate by creating a parse tree, as is common. fu

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