Apparatus and methods for developing conversational applications
First Claim
Patent Images
1. Apparatus for maintaining unrestricted natural language discourse with humans and interacting with third party application programs comprising:
- a plurality of user interfaces for allowing humans to input natural language phrases selected from the group consisting of speech and written text,a processor,storage means for storing data on a storage medium and having groups of executable instructions stored therein and,wherein said processor is configured to execute said groups of executable instructions stored in memory, and said groups of executable instructions further comprise;
a. program logic responsive to said natural language phrases input and configurable to determine whether said natural language is;
i. a precise request if and only if said natural language phrase successfully meets the syntactical rules of a context-free user grammar as defined by a user for a specific application orii. a fuzzy request if said natural language phrase successfully meets the syntactical rules of a context-free universal grammar for all possible natural language phrases, but does not meet the syntactical rules of a said user grammarb. program logic responsive to said fuzzy request and configured to process said fuzzy request speculatively and returning an approximated answerc. program logic responsive to said precise request and configured to process said precise request precisely and returning one of the following;
an answer that precisely answers said human'"'"'s requesta confirmationa follow up prompt for specifying further informationd. program logic responsive to said natural language phrases and configured to;
identify said natural language phrases as a unexpected spontaneous request in the context of a dialog,process said natural language phrases as a unexpected spontaneous request and,reply to said unexpected spontaneous requeste. program logic responsive to said natural language phrases and configured to identify an expected human phrase that is a reply to a prompt previously made by said system and, to request further information from said human user.
2 Assignments
0 Petitions
Accused Products
Abstract
Apparatus includes subsystems for handling different communication acts and a programming interface for configuring the apparatus into a variety of conversational systems, allowing users to communicate interactively in natural language without restrictions whatsoever, either by speech or keyboard, while at the same time the apparatus is capable to interact with external applications.
139 Citations
14 Claims
-
1. Apparatus for maintaining unrestricted natural language discourse with humans and interacting with third party application programs comprising:
-
a plurality of user interfaces for allowing humans to input natural language phrases selected from the group consisting of speech and written text, a processor, storage means for storing data on a storage medium and having groups of executable instructions stored therein and, wherein said processor is configured to execute said groups of executable instructions stored in memory, and said groups of executable instructions further comprise; a. program logic responsive to said natural language phrases input and configurable to determine whether said natural language is; i. a precise request if and only if said natural language phrase successfully meets the syntactical rules of a context-free user grammar as defined by a user for a specific application or ii. a fuzzy request if said natural language phrase successfully meets the syntactical rules of a context-free universal grammar for all possible natural language phrases, but does not meet the syntactical rules of a said user grammar b. program logic responsive to said fuzzy request and configured to process said fuzzy request speculatively and returning an approximated answer c. program logic responsive to said precise request and configured to process said precise request precisely and returning one of the following; an answer that precisely answers said human'"'"'s request a confirmation a follow up prompt for specifying further information d. program logic responsive to said natural language phrases and configured to; identify said natural language phrases as a unexpected spontaneous request in the context of a dialog, process said natural language phrases as a unexpected spontaneous request and, reply to said unexpected spontaneous request e. program logic responsive to said natural language phrases and configured to identify an expected human phrase that is a reply to a prompt previously made by said system and, to request further information from said human user. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. Method for distinguishing and categorizing a plurality of natural language requests from a human being, depending on whether or not said human being is demanding precise specific actions, into:
- exact queries selected from the group of specific instructions and fuzzy queries selected from the group of fuzzy requests comprising the steps of;
a. receiving a natural language phrase from a plurality of user interfaces b. sending requests to a parser generator, which takes as input a context free grammar and a natural language phrase c. parsing said natural language phrase with said parser generator and a user grammar that contains production rules for requests specific to the functions available in a third party application d. parsing said natural language phrase with said parser generator and a predefined universal grammar that contains a comprehensive set of syntactical rules for a specific natural language and said syntactical rule are independent of third party applications e. determining whether said parser generator successfully parses the natural language phrase with said user grammar, or said parser generator successfully parses the natural language phrase with said universal grammar f. producing a semantic representation of said phrase g. sending said semantic representation to be interpreted as a precise transaction if said parser generator successfully parses said natural language phrase with said user grammar h. sending said semantic representation to be interpreted as a precise query if said parser generator successfully parses said natural language phrase with said user grammar i. sending said semantic representation to be interpreted as a fuzzy query to a heuristic search engine if the parsing with said user grammar is not successful, but the parsing with said universal grammar is successful. - View Dependent Claims (12)
- exact queries selected from the group of specific instructions and fuzzy queries selected from the group of fuzzy requests comprising the steps of;
-
13. A method for reducing the development time of conversational dialogs by dividing user requirements into,
exact requests that can meet the syntactical rules of a user grammar as defined for a specific user application and that can be satisfied with precisions, and fuzzy requests that can be parsed with the syntactical rules of a universal grammar, but not with said user grammar and that can be satisfied with approximated answers, the method further comprising the steps of: -
a. creating a template of answers, that map to said requests that can be satisfied with approximated answers, with reference calls to a plurality of third party software applications and value placeholders for holding returned data values from said software applications embedded in the narrative of said answers, b. creating a grammar for said requests that must be satisfied with precision, and including ontological categories in the grammar rules of said grammar c. creating a plurality of rule base systems, such that each rule base system corresponds to a transaction which in term corresponds to a plurality of said requests that must be satisfied with precision and such that each rule is tagged with the same ontological categories as in said grammar, and each said rule base system makes reference to an third party application program and each rule in said rule base system is a state, which corresponds to a piece of information necessary to complete said third application program.
-
-
14. Apparatus for managing a multiplicity of types of communicative acts in a natural language discourse comprising:
-
a plurality of user interfaces for allowing humans to input natural language phrases selected from the group consisting of speech and written text, a processor, storage means for storing data on a storage medium and having groups of executable instructions stored therein and, wherein said processor is configured to execute said groups of executable instructions stored in memory, and said groups of executable instructions further comprise; a. a multiplicity of context free grammars stored in said storage means wherein each grammar comprises syntactical rules for breaking down syntactically a natural language phrases that express one type of communicative act b. program logic responsive to said natural language phrases input configured with said multiplicity of context free grammars in order to break down the syntactical structure of said natural language input, such that only one context free grammar is used successfully for breaking down the syntactical structure of one natural language phrase whenever said natural language phrase meets the syntactical rules of said context free grammar whereby, depending on which context free grammar is used successfully said program logic determines the type of communication act c. program logic responsive to said natural language phrases input and to said multiplicity of context free grammars, is further configured to utilize said context free grammars according to priorities, such that once a type communication act has been identified, no other context free grammars are utilized d. program logic responsive to the context free grammars that can process successfully said natural language phrase configured to traverse the grammar hierarchically and recursively and produce a hierarchical semantic structure containing semantic information including ontological categories, functions, lexicons and synonyms e. program logic responsive to said semantic structure and said Boolean indicator and configured to determine the type of communicative act and to process said semantic structure depending on said type of communicative act unstructured data source.
-
Specification