`
`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