Method and system for programming virtual robots using a template
Summary by NHIP
Template-Based Robot Programming
The method maintains administrator responses in an autonomous request system by processing user inputs through a structured template. It identifies rules requiring data by detecting signifiers within response layers and inserts information based on these markers for a rules-based program.
Claim Score by NHIP
Abstract
Disclosed is a method for processing input entered by a user and providing at least one response maintained by an administrator in a system for autonomously processing requests. A template is provided to the administrator, wherein the template includes at least one field to elicit specific information from the administrator. The information is received from the administrator into the template. The information is saved for use in providing the at least one response in reply to a request from a user. An apparatus for performing this method is also disclosed.

Term
Term ended
Expired 10 November 2023, 2.9 years ago.
- Priority
- Filed
- Granted
- Expired
- Today
35 claims: 3 independent, 32 dependent
- 1A method for maintaining at least one response by an administrator in a system for autonomously processing requests, comprising the steps of:providing a template to the administrator, wherein the template includes a plurality of input fields to receive information in a standardized format from the administrator, and wherein each input field of the plurality of input fields corresponds to a question or label displayed on the template to elicit the information;receiving the information input by the administrator into the template;identifying rules requiring information by determining if at least one signifier is present in each rule of a plurality of rules, wherein at least one rule of the rules requiring information comprises a response layer, and wherein the at least one signifier corresponds to at least one input field of the plurality of input fields;inserting at least a portion of the information into each rule of the rules requiring information based at least partially on the at least one signifier;and making the information accessible to a rules-based program for use in providing the at least one response in reply to a request from a user, wherein the response layer of the at least one rule influences the identification or preparation of a plurality of responses comprising the at least one response.
- 22Broadest claimClaim Score 46, average(NHIP)A computer-implemented method for programming virtual robots using templates, comprising:displaying, on at least one display device, a template interface comprising a plurality of input fields each corresponding to one of a plurality of labels or questions;receiving response information in the plurality of input fields on the template interface from an administrator;determining, with at least one processor, a set of rules needing information by identifying rules comprising at least one signifier from a plurality of rules, such that each rule in the set of rules comprises at least one signifier;identifying at least a portion of the response information received in the plurality of input fields corresponding to the at least one signifier in each rule in the set of rules;inserting the at least a portion of the response information corresponding to the at least one signifier in each rule in the set of rules;and making the set of rules available to at least one virtual robot configured to receive user input and provide responses to the user input based at least partially on the set of rules.
- 27A system for programming virtual robots using templates, comprising:(a) a template interface configured to display a plurality of questions to an administrator and receive information from the administrator in a plurality of fields corresponding to the plurality of questions;and (b) an engine executed by at least one processor, the engine configured to: (i) access a plurality of rules contained in a script corresponding to the template interface, wherein each rule of the plurality of rules comprises at least one of the following: an input recognizer component, a response layer, a logic layer, or any combination thereof;(ii) determine, for each rule of the plurality of rules, if the rule needs information by identifying at least one signifier in at least one of the following: an input recognizer component, a response layer, a logic layer, or any combination thereof, wherein at least one rule needs information;(iii) identify at least one portion of the information received by the template that corresponds to the at least one signifier in the at least one rule;and (iv) insert the at least one portion of the information in the at least one rule.
Independent claims3
72 paragraphs in 4 sections, as filed
BACKGROUND OF THE INVENTION
00011. Field of the Invention
0002The present invention is directed to a method and system for the use of virtual robots (“Bots”) to autonomously process requests. More particularly, this invention is directed to a method and system for the mass customization of Bots by administrators having no specialized knowledge or experience in the art.
00032. Description of Related Art
0004For the purposes of the present invention, data maintained in a database, file, or other source of structured and/or tagged data is referred to herein as “structured data”. So called “virtual robots” (or “Bots”) are software programs that interact and/or communicate with users (human, machine, or otherwise) and take actions or make responses according to input from these users. “Bot” refers to any program which interacts with a user in some fashion and should not be assumed to refer only to physically embodied robots. “Input” refers to any description of a situation the Bot may encounter; although the most common inputs are textual inputs from users, inputs can be actions taken by users, external circumstances, or even events internal to the Bot such as an internal alarm clock.
0005A common use of a Bot is as an interface to a web site where the administrator of that site (the “administrator”) has programmed the Bot to answer simple inquiries (the “input”) that are typically asked by visitors to the site. The Bot finds a pattern, consisting of text and/or code, that best matches the input, and then takes the action that it is programmed to take in connection with that pattern (the “response”). The response can take the form of a text string that contains the information sought by the user (which text string can be transmitted to the user in text form, “read” by a text-to-speech engine, played back to the user as a wave file, or otherwise transmitted to the user in a comprehensible form) or the response can be any other action of which a program is capable, for example, opening a web page, turning a circuit on or off, initiating or ending a program, and the like.
0006It is desirable that the Bot be scripted to anticipate the inputs that it is likely to receive and the situations that it is likely to encounter. Because users may ask questions or otherwise create inputs in a wide variety of different ways, a large variety of patterns are required to comprehensively anticipate the variety of inputs that the Bot may receive. This complexity is greatly increased by the number of different ways a user may create any particular input. For example, if a user wants to know the name of the president of the Administrator's company, the user may input a text string reading “Who is your President?”, “What's the President's name?”, or even “Who's the top dog at AdminCo.?”
0007Historically, Bots have been scripted manually, by having one or more human scripters write patterns for the Bot and tie those patterns to appropriate responses. Such human scripting, although usually necessary, has a number of drawbacks. First, scripting is time-consuming. A typical Bot may contain thousands of possible patterns and responses, all of which need to be scripted. Second, the list of patterns and responses is usually incomplete. It is almost impossible for the scripters to comprehensively cover all possible patterns for a large body of information and desired responses. Third, there are many opportunities for misspellings or other errors. The greatest part of the time, expense, and difficulty of creating a Bot, therefore, is in the process of scripting it. Additionally, as the information changes or is added to over time, the time, expense, and difficulty of maintaining the patterns and responses that refer to the information are very substantial as well.
0008Scripting heretofore has been done in some form of code, either complex or simple, and has always required some level of aptitude and training. Furthermore, it takes a great deal of experience to successfully anticipate the questions that may be asked in any situation, making that task unsuited for lay people or lower pay grade workers.
0009Thus, there is a need in the art to have a method of scripting a Bot which successfully customizes the Bot to an individual application using knowledge that can be given to the Bot by any lay person or lower-level employee.
BRIEF SUMMARY OF THE INVENTION
0010It is an object of the present invention to provide a method of creating Bots according to patterns (or text strings) that are written in a very high level language that closely resembles a human natural language and are intended to anticipate the inputs that may be received from users.
0011It is a further object of the present invention to enable administrators with no specialized background, training, or expertise to enter information that will be incorporated into patterns and used by the Bot, thereby enabling the Bot to correctly respond to a multitude of different questions with the information the administrator provides.
0012The present invention meets these objectives by providing a method whereby an administrator with no special skills or knowledge can input information into a template. The information is manipulated by an editor to create a wide range of rules which are provided to an engine together with other rules of a background nature (if desired). The rules enable the engine to provide responses to a wide range of inputs without any further programming or action on the part of the administrator. In addition, the information will be saved and can be changed or edited later by the administrator.
0013The method according to the present invention includes inputting and saving the information, inserting the information into rules, and editing the information.
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
<figref idref="DRAWINGS">FIG. 1</figref> is a schematic drawing of an operating environment of the present invention;
<figref idref="DRAWINGS">FIG. 2.1</figref> is a flow chart of the processes used by an engine of the present invention;
<figref idref="DRAWINGS">FIG. 2.2</figref> is a flow chart of the processes used by a preprocess input component of an engine of the present invention;
<figref idref="DRAWINGS">FIG. 3.1</figref> is a schematic drawing of a script and associated component parts of the present invention;
<figref idref="DRAWINGS">FIG. 3.2</figref> is a flow chart of an input recognizer component of a script of the present invention;
<figref idref="DRAWINGS">FIG. 4.1</figref> is a flow chart of a statement validator of the present invention;
<figref idref="DRAWINGS">FIG. 4.2</figref> is a flow chart of another statement validator of the present invention;
<figref idref="DRAWINGS">FIG. 4.3</figref> is a flow chart of yet another statement validator of the present invention;
<figref idref="DRAWINGS">FIG. 4.4</figref> is a flow chart of yet another statement validator of the present invention;
<figref idref="DRAWINGS">FIG. 5.1</figref> is a flow chart of a logic layer component of a script of the present invention;
<figref idref="DRAWINGS">FIG. 5.2</figref> is a flow chart of a response layer component of a script of the present invention;
<figref idref="DRAWINGS">FIG. 6.1</figref> is a schematic drawing of a template of the present invention;
FIGS. <b>6</b>.<b>2</b>-<b>6</b>.<b>4</b> is a flow chart of the processes used by an information input & save component of the present invention;
<figref idref="DRAWINGS">FIG. 7.1</figref> is a flow chart of the processes used by an insert information into rules component of the present invention;
<figref idref="DRAWINGS">FIG. 7.2</figref> is a flow chart of the processes used by an edit information component of the present invention;
<figref idref="DRAWINGS">FIG. 8</figref> is a schematic drawing of a script storage of the present invention; and
FIGS. <b>9</b>.<b>1</b>-<b>9</b>.<b>3</b> are flow charts of the processes used by a get information component of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
0031A complete understanding of the present invention will be obtained from the following description when taken in connection with the accompanying drawing figures wherein like reference characters identify like elements throughout.
0032The general architecture of the present invention will now be described. Referring to <figref idref="DRAWINGS">FIG. 1</figref>, an operating environment of the present invention is depicted. The environment can be characterized generally into three sections: a front end section <b>120</b>, a Bot processor section <b>140</b>, and an administration section <b>160</b>.
0033The front end section <b>120</b> is generally an environment in which a user <b>101</b> interacts with a Bot connection interface <b>104</b>, possibly via a user interface <b>102</b> that may be connected to the Bot connection interface <b>104</b> via a network <b>103</b>. The user interface <b>102</b> can be anything capable of receiving human or machine language input, including, without limitation, a computer, a Personal Digital Assistant (PDA), a telephone, or a pager. The user interface <b>102</b> will also typically have some form of client software <b>110</b> installed to provide a text box, buttons, or other method for the entry of user <b>101</b> inputs and some method for displaying intelligible responses from the Bot. The network <b>103</b> can be any system capable of transmitting such input over any distance, including, without limitation, a local area network (LAN), the Internet, a “wifi” (wireless fidelity), cellular or other wireless data connection, a virtual private network (VPN), or simply a hard wired telephone system. The user <b>101</b> can also simply act directly upon the Bot connection interface <b>104</b>. In such circumstances (as well as in circumstances such as telephony where the user input will not support client software <b>110</b>), client software <b>110</b> will usually be resident in the Bot connection interface <b>104</b> to facilitate user <b>101</b> interaction. It will be appreciated that many other means of connection to the Bot processor section <b>140</b> are well known to those skilled in the art and that the present invention should not be limited to any particular aspects of the general operating environment as disclosed herein.
0034In a common use of Bot technology, the user <b>101</b> connects to a site where the user interface <b>102</b> includes client software <b>110</b>. The advantage for the site developer is that the user <b>101</b> may have a help or information request that is easily handled via a Bot using the client software <b>110</b>. It is not uncommon to find sites having a list of FAQs (Frequently Asked Questions) which serve the purpose of handling very low level user concerns and questions. However, where there are a substantial number of FAQ's, pointing and clicking through web pages becomes an inefficient method of finding the required information, as does searching with a conventional search engine. Bots provide a more efficient method of obtaining information and of handling more advanced questions or interactions with the site.
0035In the operating environment of this embodiment of the present invention, the Bot connection interface <b>104</b> consists of hardware, an operating system, and any application software necessary to support a Bot engine <b>210</b> and enable the Bot engine <b>210</b> to receive inputs and send responses in a chosen communications mode. Necessary application software in the Bot connection interface <b>104</b> may include an email application, an instant messaging application, an internet relay chat (IRC) application, voice recognition software, or other applications, as necessary, to support the chosen mode or modes of communication between the Bot engine <b>210</b> and the user <b>101</b>. The client software <b>110</b>, along with structured data <b>105</b> and script storage <b>106</b>, may be resident on the Bot connection interface <b>104</b>, although these may also be hosted on a remote computer and made available to the Bot engine <b>210</b> via a network <b>103</b> or other connection.
0036As the user <b>101</b> sends inputs, the Bot engine <b>210</b> receives the inputs, processes the inputs, and generates responses. Typically, where the user <b>101</b> is human, a two way communications dialogue occurs between the user <b>101</b> and the Bot engine <b>210</b> in that the user <b>101</b> may ask questions, make declarative statements, and perform other normal communications patterns that typify modes of human communications. For the purposes of the present invention, “communications” is intended to be a broad concept. Indeed, suitable communications may be in the form of written or spoken language, graphics, URLs, or the like that may be passed to and from a user and an automatic interface program, such as the present invention.
0037In turn, the Bot engine <b>210</b> accepts the inputs generated by the user <b>101</b> and generates responses by processing the inputs according to a script or scripts <b>310</b> that are stored in the script storage <b>106</b>. As will be discussed in greater detail in connection with <figref idref="DRAWINGS">FIGS. 3.1</figref> and <b>3</b>.<b>2</b>, the scripts <b>310</b> contain rules <b>311</b> and are typically created at the administration section <b>160</b> as necessary or appropriate for the specific use to which the Bot will be put. For example, if the site using the Bot engine <b>210</b> is a site for a reseller of personal computers, then the scripts <b>310</b> should be designed to handle questions and discussions concerning personal computers and their peripherals. Thus, the administration section <b>160</b> will generate the scripts <b>310</b> such that the scripts <b>310</b> will guide the discussion concerning many computer-related topics. The scripts <b>310</b> are then stored for use by the Bot engine <b>210</b>, or, alternatively, the scripts <b>310</b> may be compiled by a compiler and the compiled code incorporated into an engine (see, for example, U.S. Pat. No. 6,532,401).
0038The administration section <b>160</b> consists of an administrator <b>108</b>, an administrator interface <b>109</b>, and an editor <b>111</b>. The administrator <b>108</b> is the human being who creates the scripts <b>310</b> that govern the behavior of the Bot engine <b>210</b>. Typically, this human being accomplishes this task through the use of the administrator interface <b>109</b> that has a text box or boxes or other entry points for the input of patterns, as well as a response or responses associated with that input. The administrator interface <b>109</b> may also provide various tools to facilitate the process of inputting the patterns in an organized and efficient way. The editor <b>111</b> takes the patterns provided by the administrator <b>108</b> and associates them with the appropriate response or responses. The administrator interface <b>109</b> and the editor <b>111</b> may be created as a single unit or may be designed to reside in separate computers. It will be appreciated by those skilled in the art that the scripts <b>310</b> can be written by human administrators or by automated or partially automated script creation tools and that the present invention should not be limited to scripts written by humans or otherwise.
0039Although <figref idref="DRAWINGS">FIG. 1</figref> gives a general description of various operating environments in which Bots may exist, it will be appreciated that many other operating environments are obvious to those skilled in the art and that the scope of the present invention should not be so limited to the exemplary descriptions as given above.
0040The Bot processor section <b>140</b> will now be described. <figref idref="DRAWINGS">FIG. 2.1</figref> provides a detailed depiction of the processes used by the Bot engine <b>210</b> according to the present invention. In step <b>211</b>, inputs are brought to the Bot engine <b>210</b> via the Bot connection interface <b>104</b>, as shown <figref idref="DRAWINGS">FIG. 1</figref>. The Bot engine <b>210</b> takes the input in step <b>211</b> and then, typically, but not necessarily, preprocesses the input to some degree to enable recognition and added functionality in step <b>220</b>. Examples of some typical functions that may be contained in the preprocessing of input in step <b>220</b> are detailed below. The input is then taken to an input recognizer component <b>320</b> of each rule <b>311</b> in the script <b>310</b>, where it is determined for each rule <b>311</b> whether the input is recognized, step <b>212</b>. Step <b>212</b> is repeated for each rule <b>311</b>, for so long as the input is not recognized. Once the input recognizer component <b>320</b> of a rule <b>311</b> recognizes an input in step <b>212</b>, the process continues at step <b>213</b> to the next layer of the rule <b>311</b>, which is either a response layer (or routine) <b>340</b> or a logic layer <b>330</b>. Details of the workings of the input recognizer <b>320</b>, the logic layer <b>330</b>, and the response layer <b>340</b> are provided below in connection with <figref idref="DRAWINGS">FIGS. 3.2</figref>, <b>5</b>.<b>1</b>, and <b>5</b>.<b>2</b>
0041The preprocessing of input, step <b>220</b>, will now be described. <figref idref="DRAWINGS">FIG. 2.2</figref> provides a detailed depiction of the processes used by the preprocess input step <b>220</b>, if utilized, of the Bot engine <b>210</b> according to the present invention. The functions contained in the preprocess input step <b>220</b> can vary greatly among different Bot designs, depending upon the overall strategy employed by the designer. Typically the preprocess input step <b>220</b> is composed of processes that are intended to either: (i) standardize the inputs in some regard in order to reduce the complexity of the input faced by the engine or (ii) extract some level of structure or meaning from the input and embody this as code so that the Bot engine <b>210</b> can manipulate or manage it. Examples of the first purpose include a remove punctuation process <b>222</b>, a spell check process <b>223</b>, an expand contractions process <b>224</b>, and a standardize case <b>225</b> process. Examples of the second purpose include a lexical analysis process <b>226</b>, a semantic analysis process <b>227</b>, and other translation processes <b>228</b>.
0042In the embodiment described herein, the preprocess input step <b>220</b> begins by taking the input in step <b>221</b> and then proceeding to remove punctuation in step <b>222</b>. Removing the punctuation from a text string removes the ambiguity created by the fact that people punctuate their sentences differently and that some people forget to punctuate at all.
0043Next the input is spell checked at step <b>223</b> so that spelling errors can be removed, further minimizing text variation due to error or variant usage by the user <b>101</b>.
0044By proceeding to expand contractions in step <b>224</b>, the input is further standardized so that the Bot engine <b>210</b> can recognize contracted words, for example, “what's” as being identical to its constituent parts “what is”, further reducing the complexity of the inputs that the Bot engine <b>210</b> must be able to recognize.
0045The next step <b>225</b> standardizes case, allowing the Bot engine <b>210</b> to recognize, for example, “the”, “The”, and “THE” as being identical, and removing as a variable the scheme of capitalization that may have been employed by the user <b>101</b>.
0046The input is then passed to lexical analysis in step <b>226</b>, where processes relating to the meaning of words are performed. As an example, lexical analysis might parse or partition the input to determine those text strings that are synonymous (at least for the administrator's purposes) with other text strings, for example, “I want”, “I need”, and “Give me”, Typically these text strings would be replaced with a text or code string that stands in for them in the input, allowing a single rule <b>311</b> to recognize an input phrased in any of these different ways.
0047Next the input goes through semantic analysis in step <b>227</b>, which is useful in identifying parts of the sentence, for example, the subject of the sentence, the object of the verb, or the referent of a pronoun. Depending upon the methodologies used, this step can be useful for pattern recognition and/or for maintaining context in a “conversation” between the user <b>101</b> and the Bot.
0048Finally, the input is passed through other translations in step <b>228</b>, where the other translations are any other processes whereby strings are added to or substituted for portions of the input in order to add functionality to the Bot. These processes may include language translation, substitutions of machine language for natural language, or other methodologies.
0049Those skilled in the art will readily understand that some or all of the above exemplary processes might be included at this stage in various orders and configurations and that there are other processes of similar purpose that may be undertaken in a Bot suitable for the present invention. Similarly, some or all of these objectives may be achieved by incorporating the functionality into the rules used to recognize inputs.
0050The recognition of input, step <b>212</b>, will now be described. <figref idref="DRAWINGS">FIG. 3.1</figref> depicts the structure of an embodiment of a script <b>310</b> and its component parts, suitable for the purposes of the present invention. The script <b>310</b> contains one or more rules <b>311</b> that are in turn composed of an input recognizer <b>320</b> and one or more response layers <b>340</b>. Some rules <b>311</b> may also contain a logic layer <b>330</b>, enabling them to fire one or more responses of those that are available. The detailed processes of each of these components are described in more detail below. As those skilled in the art will readily understand, there are many different strategies and methods by which the rules <b>311</b> can be ordered, grouped, or sorted in order to enhance the speed or accuracy of the Bot engine <b>210</b> and that the present invention should not be limited to any particular method or strategy of ordering, grouping, or sorting the rules <b>311</b>.
0051The steps of the input recognizer <b>320</b> are depicted in more detail in <figref idref="DRAWINGS">FIG. 3.2</figref>. The first step <b>321</b> in input recognition is typically the matching of the preprocessed input to a pattern contained in a set of pattern matches of the input recognizer <b>320</b>. A pattern is a coded text string that represents a set of strings. A string matches a pattern if the string is in the set that the pattern represents. Pattern matching may be accomplished by, for example, regular expressions. As those skilled in the art will also be aware, there are many different languages and protocols in which such pattern matchings are commonly carried out, including, without limitation, Perl, Java, PHP, and others, and that the present invention should not be limited by the use of any particular query, language, or protocol. If there is no match found in the pattern matches, the input will not be recognized and the Bot engine <b>210</b> will continue to search for a match in other rules <b>311</b>. If a pattern match is found, for most Bot engines <b>210</b>, the rule <b>311</b> will then go into effect.
0052The administrator <b>108</b> has the option of creating one or more statement (input) validators <b>410</b><i>a</i>-<i>d </i>involving the querying of the structured data <b>105</b> which, if true, will result in the successful recognition of the input in step <b>324</b> and the effectiveness of the rule <b>311</b>, and which if false, will provide for the non-recognition of the input in step <b>322</b> by the input recognizer <b>320</b>, with the result that the Bot engine <b>210</b> will continue to seek for a matching pattern in other rules <b>311</b>. Each of these statement validators <b>410</b><i>a</i>-<i>d </i>is tested in turn in step <b>323</b>, for so long as they continue to be valid. If any statement validator <b>410</b><i>a</i>-<i>d </i>is invalid, the input is not recognized in step <b>322</b>. If all are valid, the input is recognized in step <b>324</b>.
0053There can be any number of statement validators <b>410</b><i>a</i>-<i>d </i>that work with pattern matches <b>321</b> in the input recognizer <b>320</b> or none at all. Upon completion of pattern matches <b>321</b> and validation <b>323</b> of the statement validators <b>410</b><i>a</i>-<i>d</i>, if any, contained in the input recognizer, the input is ultimately recognized <b>324</b> or not recognized <b>322</b>. If recognized <b>324</b>, the process continues to the next layer of the rule <b>311</b>, whether that is a response layer <b>340</b> that generates a response to be transmitted to the user or a logic layer <b>330</b> that chooses between the various responses to be used in the response layer <b>340</b>.
0054Those skilled in the art will readily understand that the steps of the input recognizer <b>320</b> might occur in various orders (or contemporaneously with each other) and configurations and that there are other processes of similar purpose that may be undertaken in a Bot suitable for the present invention.
0055The generation of responses will now be described. The next step in the execution of a rule <b>311</b> following recognition of an input at step <b>324</b> by the input recognizer <b>320</b> is typically to go to a response layer <b>340</b> (<figref idref="DRAWINGS">FIG. 5.2</figref>), the purpose of which is to obtain and prepare the appropriate response to the user's input. A typical data flow for a response layer <b>340</b> simply involves getting the response in step <b>521</b> and sending it to the connection interface in step <b>526</b>. A response can typically consist of (i) text, (ii) code to be run in the user interface <b>102</b>, and/or (iii) code to be extracted and run locally before sending the response to the Bot connection interface <b>104</b>. The response may consist entirely of text, where this is appropriate. However, more complexity and functionality can be provided by adding code to the response. The use of code allows for dynamic information to be added to the answer and is typically used for frequently changing information, such as the time, stock quotes, weather, or the like. Most typically, the code is non-extractable and is sent to the Bot connection interface <b>104</b> in step <b>526</b>, to be sent to and run in the user interface <b>102</b>, bringing a web page, running a java applet, or taking some other action that brings the required information to the user <b>101</b>. Where it is desirable to embed the information provided by running the code in the response, the response is determined to contain extractable code in step <b>522</b>, the code is extracted in step <b>523</b>, and the code is run locally in step <b>524</b>, so that the dynamic information required is embedded in the response in step <b>525</b> before transmission to the Bot connection interface <b>104</b> in step <b>526</b>.
0056A rule <b>311</b> can also be designed to employ a logic layer <b>330</b> as shown in <figref idref="DRAWINGS">FIG. 5.1</figref>. The purpose of the logic layer <b>330</b> is neither input recognition <b>320</b>, nor response generation, but rather the choosing of an appropriate response upon recognition of an input. This is accomplished by the use of a logical function in step <b>511</b>. The logical function step <b>511</b> may result in a random choice of responses, choosing responses in rotation, or choosing the proper response after appeal to some outside piece of information <b>107</b> (for example, the time) or after querying the structured data <b>105</b> using simple queries and/or any of the statement validators <b>410</b><i>a</i>-<i>d </i>described herein. In this case, the truth or falsity of the logical statement in step <b>414</b><i>a</i>-<i>d </i>in the statement validator <b>410</b><i>a</i>-<i>d </i>would result in a choice in step <b>511</b> between two or more different results (responses) in step <b>520</b>. It is important to distinguish between such a choice between results in step <b>511</b>, and the above-described function of the statement validator <b>410</b><i>a</i>-<i>d</i>, so as to enable an input recognizer <b>320</b> to either recognize or not recognize an input.
0057The present invention is principally located in the administration section <b>160</b> of the Bot, but posts information that may ultimately be held in the script storage <b>106</b> and/or in the structured data <b>105</b> of the Bot processor.
0058The process of inputting information <b>620</b><i>a</i>-<i>c </i>will now be described. Referring to FIGS. <b>6</b>.<b>1</b>-<b>6</b>.<b>4</b>, the administrator interface <b>109</b> contains a template <b>610</b> for the input of information in step <b>620</b><i>a</i>-<i>c</i>. The template <b>610</b> provides an opportunity for the administrator <b>108</b> to provide information in a standardized format. This is accomplished by a page, application, or other user interface containing fields <b>611</b>, for example, text boxes, check boxes, drop-down boxes, or the like, that are labeled or otherwise intended to elicit specific pieces of information from the administrator <b>108</b>. Many variations on the template <b>610</b> are possible, including, without limitation, providing a series of questions to be answered by the administrator <b>108</b> (e.g., “What is your company name?”, “What is your company address?”), providing the administrator <b>108</b> with tables to be filled in with relevant information (e.g., a corporate organization chart with names, titles, phone numbers, email addresses, or the like), and interviewing the administrator <b>108</b> via Bot or human interaction and then embodying the information in some form of template <b>610</b> or table. The process is initiated with the specific purpose of eliciting individual pieces of standardized information from the administrator <b>108</b>. At the end of the process, the administrator <b>108</b> has provided the administrator interface <b>109</b> with individual pieces of information such as names, addresses, slogans, product descriptions, or the like, that are specific to the administrator's <b>108</b> company or entity.
0059Referring again to FIGS. <b>6</b>.<b>1</b>-<b>6</b>.<b>4</b>, the process of saving information <b>620</b><i>a</i>-<i>c </i>will now be described. Following the input of information in step <b>621</b>, the editor <b>111</b> saves the information in step <b>622</b> so that it will not be lost. As those skilled in the art will know, this can be done on manual command by the administrator <b>108</b> or automatically upon the occurrence of certain events, such as the passage of time or the closing of the template <b>610</b>. There are at least three places where the information can be saved. The information can be saved: (i) as part of the template <b>610</b> in step <b>623</b>, (ii) as structured data <b>105</b> in step <b>624</b>, or (iii) into the rules <b>311</b> at step <b>710</b> without any intermediate storage steps by directly inserting the information into the rules <b>311</b>. For some embodiments it is desirable to store the information in more than one place, depending upon the purposes for which the information will be used. For example, the information stored in the structured data <b>105</b> may be used solely to refresh the template <b>610</b>, while the information stored in the rules <b>311</b> may be used to run the Bot engine <b>210</b>.
0060The ability to save the information within the template at step <b>623</b> depends upon the structure and programming of the template <b>610</b> to possess such a storage capability. Storing the information as structured data <b>105</b> in step <b>624</b> involves saving the information within each of the fields <b>611</b> to a separate field or location within the structured data <b>105</b>. In order to save the information by inserting information into the rules <b>311</b> at step <b>710</b>, a more elaborate procedure is necessary, as is described in more detail immediately below.
0061Referring to <figref idref="DRAWINGS">FIG. 7.1</figref>, the process of inserting information into the rules <b>311</b> will now be described. For most embodiments of the invention, it is necessary to insert the information entered by the administrator <b>108</b> into the rules <b>311</b> in step <b>710</b> before the Bot engine <b>210</b> will be able to access the information and use it to recognize and respond to inputs. However, it should be noted that it is also possible to have the Bot engine <b>210</b> access the information from the structured data <b>105</b> or from the template <b>610</b>, depending on where the information is saved.
0062Referring to <figref idref="DRAWINGS">FIGS. 7.1</figref> and <b>8</b>, first, the editor <b>111</b> obtains the rules <b>311</b> from script storage <b>106</b> in step <b>701</b>. The editor <b>111</b> may obtain all of the rules <b>311</b> in the script storage <b>106</b>, but in the preferred embodiment may include only those rules <b>311</b> contained in a template information script <b>310</b><i>a</i>, as these are the only rules <b>311</b> that should be affected by the information. Next, for each rule <b>311</b>, the editor <b>111</b> checks to see if the input recognizer <b>320</b> needs information in step <b>702</b>. The need for information may be signaled either by a specific tag or instruction embedded in a text string used by the input recognizer <b>320</b> or by the recognition by the editor <b>111</b> of a piece of code in the input recognizer <b>320</b> which calls for a specific piece of information (or by any such tagged text string, code, or similar instruction, that is by a “signifier”). If there is such a signifier, the editor <b>11</b> obtains the necessary information from a corresponding field in the template <b>610</b> in step <b>703</b> and inserts the information into the input recognizer <b>320</b> in step <b>704</b>. This continues at step <b>702</b> for all rules <b>311</b> until the process is done. Similarly, for each rule <b>311</b>, the editor <b>11</b> checks to see if the response layer <b>340</b> needs information in step <b>708</b>, as signaled by a signifier (described above) in the response layer <b>340</b>. If there is such a signifier, the editor <b>11</b> obtains the necessary information in step <b>709</b> and inserts it into the response layer <b>340</b> in step <b>710</b>. This continues at step <b>708</b> for all rules <b>311</b> until the process is done. Finally, for each rule <b>311</b>, the editor <b>11</b> checks to see if the logic layer <b>330</b>, if present, needs information in step <b>705</b>, as signaled by a signifier (described above) in the logic layer <b>330</b>. If there is such a signifier, the editor <b>11</b> obtains the necessary information in step <b>706</b> and inserts it into the logic layer <b>330</b> in step <b>707</b>. This continues at step <b>705</b> for all rules <b>311</b> until the process is done at step <b>711</b>.
0063In a preferred embodiment, each layer <b>330</b>, <b>340</b> is checked across all rules <b>311</b> before moving on to the next layer <b>330</b>, <b>340</b>. Variations in method are possible, such as checking all layers <b>330</b>, <b>340</b> in each rule <b>311</b> before moving on to the next rule <b>311</b>.
0064Referring to <figref idref="DRAWINGS">FIGS. 7.2</figref> and <b>9</b>.<b>1</b>-<b>9</b>.<b>3</b>, the process of editing information will now be described. Once the information has been saved in the appropriate manner and, if desired, inserted into the rules <b>311</b>, it is still desirable that the information be easily updatable within the template <b>610</b> in step <b>720</b>. In order to achieve this, the editor <b>111</b> obtains the information in step <b>721</b> from wherever it has been stored. The processes used to obtain information <b>910</b><i>a</i>-<i>c </i>depend on how the information is stored.
0065If the information has been stored as part of the template <b>610</b> itself, the information is automatically restored to the fields <b>611</b> or other points of data entry as a function of the template <b>610</b>.
0066If the information has been stored in the structured data <b>105</b>, the editor <b>111</b> follows essentially the process <b>910</b><i>a</i>. In this process, for each field <b>611</b> in the template <b>610</b>, the editor <b>111</b> obtains instructions in step <b>911</b><i>a </i>which indicate where the information for the field <b>611</b> is to be found. Next, the editor <b>111</b> executes the instructions in step <b>912</b><i>a </i>to obtain the information. The editor <b>111</b> sends the information to the appropriate field <b>611</b> in the template <b>610</b> in step <b>913</b><i>a</i>. The editor <b>111</b> then determines if there are more fields <b>611</b> for which to obtain information in step <b>914</b><i>a</i>. If the answer is yes, the editor <b>311</b> repeats the process for each field <b>611</b> until there are no more fields <b>611</b> for which to obtain information. At this point, all of the fields <b>611</b> are filled with the appropriate information and the editor <b>111</b> is finished with the get information process.
0067If the information has been stored by inserting the information into the rules <b>311</b> in step <b>710</b>, the process used has some variability as set in processes <b>910</b><i>a</i>-<i>c</i>. The process <b>910</b><i>a </i>(described above) may be used to obtain information from the rules <b>311</b>. For each field in the template, the editor <b>111</b> obtains instructions in step <b>911</b><i>a </i>as to where to find the information. The editor <b>111</b> executes the instructions to obtain the information in step <b>912</b><i>a </i>from the appropriate rule <b>311</b>, and then sends the information to the field <b>611</b> in step <b>913</b><i>a. </i>
0068Alternatively, the processes of <b>910</b><i>b </i>and <b>910</b><i>c </i>may be used. The first step is to obtain the rules <b>311</b> in step <b>921</b><i>b</i>, <b>921</b><i>c</i>. Next, the editor checks each rule <b>311</b> for a signifier in step <b>922</b><i>b</i>, <b>922</b><i>c</i>. If the rule <b>311</b> has a signifier, the editor <b>111</b> either executes instructions to obtain the information associated with that rule <b>311</b> in step <b>912</b><i>b </i>or obtains tagged information contained in that rule <b>311</b> in step <b>931</b><i>c</i>. In either instance, the information is then sent to the appropriate field in the template <b>610</b> in step <b>913</b><i>b</i>, <b>913</b><i>c</i>. The process is repeated until all of the rules <b>311</b> have been checked.
0069Once the template has been repopulated with information by the process of obtaining information <b>910</b><i>a</i>-<i>c</i>, the administrator <b>108</b> is free to use the input and save the information process <b>620</b><i>a</i>-<i>c</i>, as discussed above, thus, effectively updating the information contained in the template <b>610</b> and anywhere else that the information has been saved.
0070The present invention enables a person to successfully customize a Bot for an individual application where the person uses knowledge that can be given to the Bot by any lay person or lower-level employee. This results in several important advantages. Information can be inexpensively input, and fully effective rules formed, by administrators working at pay grades substantially below that of a skilled programmer. Cost is further reduced by the fact that little or no training is required to accomplish this task. Speed to completion is dramatically enhanced, as there is no actual scripting that needs to take place—it all takes place automatically upon completion. The opportunity for error is greatly reduced, and consistent effectiveness of the rules at responding to inputs is greatly enhanced, dramatically increasing overall quality. The invention also provides a way to easily and consistently create and manage a large number of similarly-tasked Bots.
0071It will be understood by those skilled in the art that while the foregoing description sets forth in detail preferred ordering of steps of the various processes, other ordering of the steps are contemplated by the present invention.
0072It will be understood by those skilled in the art that while the foregoing description sets forth in detail preferred embodiments of the present invention, modifications, additions, and changes might be made thereto without departing from the spirit and scope of the invention.
Contents4
15 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US10646994B2 | Cited by | United States of America | Applicant |
| US11429686B2 | Cited by | United States of America | Search report |
| US11135718B2 | Cited by | United States of America | Applicant |
| US11416785B2 | Cited by | United States of America | Search report |
| US10733004B2 | Cited by | United States of America | Applicant |
| US10402463B2 | Cited by | United States of America | Search report |
| US2001054096A1 | Cites | United States of America | Search report |
| US2002178008A1 | Cites | United States of America | Applicant |
| US2003023573A1 | Cites | United States of America | Applicant |
| US2003145281A1 | Cites | United States of America | Applicant |
| US2003163783A1 | Cites | United States of America | Search report |
| US2003220890A1 | Cites | United States of America | Applicant |
| US2004099731A1 | Cites | United States of America | Applicant |
| US2004181753A1 | Cites | United States of America | Applicant |
| US5862325A | Cites | United States of America | Applicant |
| US5870552A | Cites | United States of America | Applicant |
| US5907837A | Cites | United States of America | Search report |
| US5963940A | Cites | United States of America | Applicant |
| US6173311B1 | Cites | United States of America | Applicant |
| US6366300B1 | Cites | United States of America | Applicant |
| US6393474B1 | Cites | United States of America | Applicant |
| US6484149B1 | Cites | United States of America | Search report |
| US6529904B1 | Cites | United States of America | Applicant |
| US6532201B1 | Cites | United States of America | Applicant |
| US6532401B2 | Cites | United States of America | Applicant |
| US6775658B1 | Cites | United States of America | Applicant |
| US6834298B1 | Cites | United States of America | Applicant |
| US6980962B1 | Cites | United States of America | Applicant |
| US20010054096A1 | Cites | United States of America | Search report |
| US20020178008A1 | Cites | United States of America | Applicant |
| US20030023573A1 | Cites | United States of America | Applicant |
| US20030145281A1 | Cites | United States of America | Applicant |
| US20030163783A1 | Cites | United States of America | Search report |
| US20030220890A1 | Cites | United States of America | Applicant |
| US20040099731A1 | Cites | United States of America | Applicant |
| US20040181753A1 | Cites | United States of America | Applicant |
| Habraken, J. "Microsoft Office XP 8-in-1"-Part III: Word-Chapter 2: Working with Documents. 2001. 16 pages. | Non-patent | – | Search report |
| Androutsopoulos, I. et. al. "Natural Language Interfaces to Databases-An Introduction." arXiv:cmp-Ig/9503016v1 pp. 1-50. Mar. 14, 1995. | Non-patent | – | Search report |
| Weiskamp, K. et al. "Artificial Intelligence Programming with Turbo Prolog." pp. 7 & 129-140. 1988. | Non-patent | – | Search report |
| Wallace, R.S. "The Elements of AIML Style." Alice A.I. Foundation, Inc. pp. 1-86. Mar. 28, 2003. | Non-patent | – | Search report |
| Bhaumik et al., "Integrating Hypermedia Functionality into Database Applications", Collaborative Hypermedia Laboratory, CIS Department, New Jersey Institute of Technology, USA, 2001, 32 pages. | Non-patent | – | Applicant |
| Dorai et al., "Embedded Grammar Tags: Advancing Natural Language Interaction on the Web", IEEE Intelligent Systems, 2002, pp. 48-53. | Non-patent | – | Applicant |
| Goh et al., "Intelligent Agent Technology in E-commerce", IDEAL 2003, LNCS 2690, Mar. 2003, pp. 10-17. | Non-patent | – | Applicant |
| Ibrahim et al., "TARO: an Interactive, Object-Oriented Tool for Building Natural Language Systems", IEEE, 1989, pp. 108-113. | Non-patent | – | Applicant |
| Schwartz et al., "Applying an Information Gathering Architecture to Netfind: A White Pages Tool for a Changing and Growing Internet", IEEE/ACM Transactions on Networking, Oct. 1994, p. 426-439, vol. 2, No. 5. | Non-patent | – | Applicant |
| Thompson et al., Using a Menu-Based Natural Language Interface to Ask Map- and Graph-Valued Database Quieries, ACM, 1985, pp. 328-338. | Non-patent | – | Applicant |
| Uszkoreit et al., "DISCO-An HPSG-based NLP System and its Application for Appointment Scheduling", German Research Center for Artificial Intelligence (DFKI), 1994, pp. 436-440. | Non-patent | – | Applicant |
| Habraken, J. “Microsoft Office XP 8-in-1”—Part III: Word—Chapter 2: Working with Documents. 2001. 16 pages. | Non-patent | – | Search report |
| Androutsopoulos, I. et. al. “Natural Language Interfaces to Databases—An Introduction.” arXiv:cmp-Ig/9503016v1 pp. 1-50. Mar. 14, 1995. | Non-patent | – | Search report |
| Weiskamp, K. et al. “Artificial Intelligence Programming with Turbo Prolog.” pp. 7 & 129-140. 1988. | Non-patent | – | Search report |
| Wallace, R.S. “The Elements of AIML Style.” Alice A.I. Foundation, Inc. pp. 1-86. Mar. 28, 2003. | Non-patent | – | Search report |
| Bhaumik et al., “Integrating Hypermedia Functionality into Database Applications”, Collaborative Hypermedia Laboratory, CIS Department, New Jersey Institute of Technology, USA, 2001, 32 pages. | Non-patent | – | Applicant |
| Dorai et al., “Embedded Grammar Tags: Advancing Natural Language Interaction on the Web”, IEEE Intelligent Systems, 2002, pp. 48-53. | Non-patent | – | Applicant |
| Goh et al., “Intelligent Agent Technology in E-commerce”, IDEAL 2003, LNCS 2690, Mar. 2003, pp. 10-17. | Non-patent | – | Applicant |
| Ibrahim et al., “TARO: an Interactive, Object-Oriented Tool for Building Natural Language Systems”, IEEE, 1989, pp. 108-113. | Non-patent | – | Applicant |
| Schwartz et al., “Applying an Information Gathering Architecture to Netfind: A White Pages Tool for a Changing and Growing Internet”, IEEE/ACM Transactions on Networking, Oct. 1994, p. 426-439, vol. 2, No. 5. | Non-patent | – | Applicant |
| Thompson et al., Using a Menu-Based Natural Language Interface to Ask Map- and Graph-Valued Database Quieries, ACM, 1985, pp. 328-338. | Non-patent | – | Applicant |
| Uszkoreit et al., “DISCO—An HPSG-based NLP System and its Application for Appointment Scheduling”, German Research Center for Artificial Intelligence (DFKI), 1994, pp. 436-440. | Non-patent | – | Applicant |
5 members in 2 offices
Priority claims6
| Document | Office | Kind | Date |
|---|---|---|---|
| 70520803 | United States of America | A | |
| 70520803 | United States of America | A | |
| 201313848906 | United States of America | A | |
| 10705208 | – | – | – |
| US20030705208 | – | – | – |
| US201313848906 | – | – | – |
Members5
| Document | Office | Kind | |
|---|---|---|---|
| US2005102065A1 | United States of America | A1 | |
| WO2005048064A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO2005048064A3 | World Intellectual Property Organization (WIPO) | A3 | |
| US2014122625A1 | United States of America | A1 | |
| US8930296B2This record | United States of America | B2 |
56 transactions on the USPTO file
Allowed after 1 non-final rejection.
- Non-final rejections
- 1
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Payment of Maintenance Fee, 4th Year, Large EntityM1551 | M1551 | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Supplemental Papers - Oath or DeclarationC600 | C600 | |
| Mail PUBS Notice Requiring Inventors Oath or DeclarationMM327-O | MM327-O | |
| PUBS Notice Requiring Inventors Oath or DeclarationM327-O | M327-O | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Examiner's Amendment CommunicationEX.A | EX.A | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Response after Non-Final ActionA... | A... | |
| Oath or Declaration Filed (Including Supplemental)C602 | C602 | |
| Corrected filing receiptCFRPT | CFRPT | |
| Email NotificationEML_NTR | EML_NTR | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Mail Interview Summary - Applicant Initiated - TelephonicMEXAT | MEXAT | |
| Interview Summary- Applicant InitiatedEXIA | EXIA | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTR | EML_NTR | |
| Email NotificationEML_NTR | EML_NTR | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Pre-Exam NoticeMPEN | MPEN | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Filing Receipt - UpdatedFLRCPT.U | FLRCPT.U | |
| Application Is Now CompleteCOMP | COMP | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| FITF set to NO - revise initial settingFTFI | FTFI | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Payment of additional filing fee/PreexamFLFEE | FLFEE | |
| Applicant has submitted new drawings to correct Corrected Papers problemsCORRDRW | CORRDRW | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTR | EML_NTR | |
| Email NotificationEML_NTF | EML_NTF | |
| Notice Mailed--Application Incomplete--Filing Date AssignedINCD | INCD | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Entity status set to undiscounted (initial default setting or status change)BIG. | BIG. | |
| Initial Exam Team nnIEXX | IEXX |
42 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Maintenance fee paymentMAFP | MAFP | |
| AssignmentAS | AS | |
| Maintenance fee paymentMAFP | MAFP | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication
- 08930296
- Publication, DOCDB
- 8930296
- Publication, EPODOC
- US8930296
- Application
- 13848906
- Application, DOCDB
- 201313848906
- Application, EPODOC
- US201313848906
Titles
- English
- Method and system for programming virtual robots using a template
Patent term adjustment
- Applicant delay
- −44 days
- Net adjustment
- 0 days
Classification
- CPC, 6
- G06N5/025
- H04L51/02
- G06N20/00
- G06F17/3089
- G06F16/958
- G06N99/005
- IPC, 8
- G06N5 02
- G05B15 00
- G05B19 00
- G06F
- G06F17 30
- G06F19 00
- G06N99 00
- H04L12 58
- USPC, 1
- 706047000